21
Programmare OB1 in KOP Come programmare la funzione di memoria in Kop Inseriamo un nuovo segmento utilizzando il tasto destro

Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Embed Size (px)

Citation preview

Page 1: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare OB1 in KOPCome programmare la funzione di memoria in Kop

Inseriamo un nuovo segmento utilizzando il tasto destro

Page 2: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare FB in KOPIl blocco funzionale (FB) è subordinato al blocco organizzativo. Esso contiene una parte del programma che può essere richiamata all’interno dell‘OB1 ogni volta che lo si desidera. Tutti i parametri formali e i dati statici del blocco funzionale vengono memorizzati in un blocco dati DB separato che è assegnato al blocco funzionale. Il blocco funzionale (FB1) viene programmato nella già nota finestra del programma KOP/AWL/FUP.

Nella finestra di dialogo "Proprietà –Blocco funzionale" selezionare il linguaggio di programmazione, attivare la Proprietà multiistanza e con OK acquisire le altre preimpostazioni.

Facendo doppio clic sul FB1 si accede alla finestra del programma KOP/AWL/FUP.

Page 3: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare FB in KOPVediamo come programmare un blocco funzionale che per es. comanda e controlla un motore a benzina e un motore diesel con un blocco dati ciascuno. Tutti i segnali specifici del motore vengono trasferiti come parametri di blocco dal blocco organizzativo al blocco funzionale e devono perciò essere riportati nella tabella di dichiarazione delle variabili come parametri di ingresso e di uscita (dichiarazione "in" e "out").

Come dichiarare / definire le variabili

Page 4: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare FB in KOPVediamo come programmare un blocco funzionale che per esempio comanda e controlla un motore a benzina e un motore diesel con un blocco dati ciascuno. Tutti i segnali specifici del motore vengono trasferiti come parametri di blocco dal blocco organizzativo al blocco funzionale e devono perciò essere riportati nella tabella di dichiarazione delle variabili come parametri di ingresso e di uscita (dichiarazione "in" e "out").

Si noti il contatto (normalmente chiuso) - Parallelo al contatto normalmente aperto.

I nomi introdotti, relativi alle variabili di input definite per l’FB, vengono automaticamente evidenziate con uno #all’inizio. Le variabili locali di blocco vengono identificate con # e sono valide solo nel blocco.

Le variabili locali di blocco vengono identificate con # e sono valide solo nel blocco. Le variabili globali sono racchiuse tra virgolette. Vengono definite nella tabella dei simboli e sono valide nell’intero programma.

Lo stato di segnale "Funzionamento automatico" viene definito nell‘OB1 con un elemento SR ed interrogato ora nell‘FB1.

Come programmare l‘inserzione e la disinserzione di un motore

Quando viene inserito e disinserito il motore ?

Se la variabile #Switch_on ha lo stato di segnale "1" e (AND) la variabile "Funzionamento automatico " ha lo stato di segnale "0", il motore viene inserito. Solo la negazione (contatto normalmente chiuso) di "Funzionamento automatico" permette questa funzionalità.Se la variabile #Switch_on ha lo stato di segnale "1" o (OR) la variabile #Failure ha lo stato di segnale "0", il motore viene disinserito. La funzionalita desiderata viene di nuovo conseguita con la negazione di #Failure (#Failure è un segnale "zeroattivo" e in caso normale ha valore "1", in caso di guasto ha valore "0").

Page 5: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare FB in KOPInseriamo un nuovo segmento e selezioniamo il montante. Nel catalogo degli elementi del programma navigare a Op. di confronto ed inserire un CMP>=I. Nel montante inserire inoltre una bobina.

Come programmare il controllo del numero di giri

Come controlla l’operazione di confronto il numero di giri del motore?

Mediante l’operazione di confronto vengono confrontate le variabili #Actual_Speed e #Preset_Speede viene assegnato il risultato delle variabili #Preset_Speed_Reached (stato di segnale 1).

Page 6: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Programmare FB1 in AWL/FUPNel seguito mostriamo i prg equivalenti scritti in AWL/FUP

Inserzione e disinserzione del motore

Controlla il numero di giri

Tutti i segnali specifici del motore vengono trasferiti come parametri di blocco dal blocco organizzativo al blocco funzionale e devono perciò essere riportati nella tabella di dichiarazione delle variabili come parametri di ingresso e di uscita (dichiarazione "in" e "out").

Page 7: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Creare il blocco dati di istanzaAbbiamo appena programmato il blocco funzionale FB1 ("Motore") e definito, tra lealtre cose, i parametri specifici del motore nella tabella di dichiarazione delle variabili locali.

Per poter programmare successivamente il richiamo (CALL) dell‘FB nell‘OB1, ènecessario creare il relativo blocco dati. Ad un FB è sempre assegnato un bloccodati di istanza (DB).

L‘FB deve comandare e controllare un motore a benzina o un motore diesel. I diversi numeri di giri prefissati dei motori vengono memorizzati in due DB separati modificando il valore attuale corrispondente (#Numero giri_prefissato).

Programmando solo una volta in modo centrale il blocco funzionale, si riducono i tempi di programmazione.

Page 8: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Creare il blocco dati di istanza

Nella finestra di dialogo "Proprietà – Blocco dati" acquisire il nome DB1, scegliere nella casella di riepilogo la voce "DB di istanza " ed acquisire il nome del blocco funzionale "FB1" assegnato. Confermare le preimpostazioni con OK. Il blocco dati DB1 viene aggiunto nel Progetto.

Page 9: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Creare il blocco dati di istanzaAprire il DB1 con doppio clic. Confermare la finestra di dialogo visualizzatacon Sì per parametrizzare il blocco dati di istanza.

Introdurre ora per il motore a benzina nella colonna Valore attuale il valore "1500” (nella riga "Numero giri_prefissato”). In tal modo èstato definito il numero di giri massimo per questo motore. Salvare il DB1, e chiudere la finestra del programma.

A questo punto creare analogamente al DB1un altro blocco dati DB2 mediante il copia ed incolla. Introdurre ora per il motore diesel il valore attuale "1200”. Salvare il DB2, e chiudere la finestra del programma.

Page 10: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Come programmare un richiamo di blocco in KOP

Adesso è necessario richiamare dentro l’OB il programma inserito nell’FB. Per ciascun richiamo dell‘FB viene utilizzato un blocco dati; vengono così comandati i due motori.

Richiamare la cartella Blocchi , ed aprire l’OB1. Nella finestra di programmazione KOP/AWL/FUP occorre selezionare l’ultimo segmento e con il tasto destro inserire in fondo un nuovo segmento

Nel catalogo degli elementi del programma navigare infine all’FB1 ed inserirlo.

Page 11: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Come programmare un richiamo di blocco in KOP

Programmare due segmenti per richiamare il blocco funzionale "Motore“ (FB1) con i blocchi dati “Diesel" (DB2) e “Benzina” (DB1)

Nella tabella dei simboli si possono anche assegnare nomi simbolici a diversi blocchi (p.es.FB1 ha il nome "Motore" e DB1 il nome "Benzina").

Page 12: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Come programmare un richiamo di blocco in AWL/FUP

Page 13: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Configurare l’HW

Aprire la cartella Stazione SIMATIC 300, e fare doppio clic sul simbolo Hardware.

L’hardware viene configurato con STEP 7. I dati di configurazione vengono trasferiti al sistema di automazione successivamente durante il "Caricamento“

Si apre la finestra “Configurazione HW" e viene visualizzata la CPU scelta durante la creazione del progetto (si tratta della CPU314).

Page 14: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

Configurare l’HWE‘ necessario inserire prima di tutto un alimentatore. Navigando nel catalogo, posizionarsi su PS307 2A ed inserire l’alimentatore sul posto connettore 1mediante Drag & Drop.

Per un‘unità di ingresso (DI, Digital Input) navigare a SM321 DI32xDC24V ed inserirla sul posto connettore 4. Il posto connettore 3 rimane libero.

Analogamente inserire sul posto connettore 5 l’unitàdi uscita SM322 DO32xDC24V/0.5A.

Con il comando di menu Stazione > Verifica coerenza è inoltre possibile controllare se vi sono errori nella configurazione. Mediante Salva e compila i dati vengono preparati per il trasferimento nella CPU.Una volta chiusa la "Configurazione HW”, nella cartella Blocchi viene visualizzato il simbolo Dati di sistema

Page 15: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - ProgrammazioneIl programma può essere organizzato in due forme diverse: quella lineare e quella strutturata.

�La programmazione lineare utilizza un solo blocco all'interno del quale è contenuto tutto il programma. E’ comodo quando il programma è breve e semplice.

�La programmazione strutturata suddivide il programma in più parti, con la possibilità di saltare da una parte all'altra in diversi modi. Tale metodo di programmazione è il più utilizzato in quanto permette una larga flessibilità, una facile rilettura e quindi immediata individuazione dei guasti. Permette, inoltre, la separazione di varie funzioni all'interno del programma stesso e, potendo decidere quando richiamare tali funzioni si riduce il tempo necessario per l'esecuzione del programma. Il programma utente nell'OB1 è costruito in termini di chiamate a blocchi (Programmazione Procedurale)

Page 16: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - ProgrammazioneL'esecuzione ciclica può essere interrotta. Es. allarmi, errori o interrupt

I programmi di gestione degli errori possono rendere variabile la durata del ciclo di esecuzione.

Page 17: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - Programmazione

Per risolvere compiti complessi si suddivide opportunamente il programma in varie parti distinte (Blocchi). Nel linguaggio di programmazione step 7 esistono cinque tipi di blocchi a loro volta suddivisibili in segmenti:

- blocchi organizzativi (OB), che servono per gestire il programma applicativo; - blocchi di programma (PB) e blocchi di passo (SB), sono due tipi di blocchi

analoghi utili per strutturare il programma e per la programmazione di comandi sequenziali

- blocchi funzionali (FB), sono blocchi di programma speciali. Parti di programma frequentemente ricorrenti o particolarmente complessi (p.es. funzioni di segnalazione o di calcolo) vengono programmate entro blocchi funzionali; essi sono parametrizzabili e possiedono un repertorio di istruzioni piùesteso (p.es. operazioni di salto all’interno dello stesso segmento);

- blocchi dati (DB), dove l’utente memorizza i dati necessari per l’elaborazione del programma applicativo; sono dati, per esempio, i valori reali, i valori limite oppure i testi

Page 18: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - Programmazione

Comandano l'esecuzione dei blocchi di programma utente. Sono contraddistinti da numeri e priorità { OB da 1(Low) a 28 (High) }. Dentro ogni OB viene scritto un programma (eventualmente con chiamate a SFB, SFC, FB, FC)

I BLOCCHI ORGANIZZATIVI

OB10 – ALLARME OROLOGIO

Questo blocco priorità 2 (invece OB1 ha priorità 1)

�Viene Parametrizzato:�Esecuzione: una volta, ogni minuto, ogni giorno, ogni settimana, ogni mese, etc.�Data di Avvio�Ora di Avvio

OB20 – ALLARME DI RITARDO

Questo blocco ha priorità 3

�Permette di eseguire con ritardo alcune parti del programma utente�Esiste una particolare funzione di sistema (SFC 32) attraverso cui è possibile settare il tempo di ritardo di esecuzione dell'OB20 (che deve contenere il codice)

Page 19: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - ProgrammazioneOB35 – SCHEDULAZIONE OROLOGIO

Questo blocco ha priorità 12

�Permette l'esecuzione periodica di una porzione di codice�Viene Parametrizzato (per default 100 ms). Nel caso di più processi ciclici (non nella CPU314C-2DP) è possibile impostare un offset (per evitare avviamento simultaneo).

OB40 – INTERRUPT DI PROCESSO

Questo blocco ha priorità 16

�Il codice viene eseguito in reazione ad un segnale di Ingresso�E' necessario disporre di una unità di I/O che supporti l'interrupt di processo�Nell'unità di I/O vengono settati gli ingressi che determinano l'attivazione dell'OB40

Nella configurazione hardware degli ingressi DIGITALI, selezionare:�gli ingressi che determinano l'interrupt di processo { utilizzare le variabili locali L8.xx-L11.x Ad esempio L11.x corrisponde a I124.x }�Il fronte di salita o di discesa (anche entrambi)�Il ritardo di ingresso (stabilizzazione del segnale)

Page 20: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - ProgrammazioneOB VARIE TIPOLOGIE

Esistono degli OB che, se definiti, permettono di eseguire azioni in caso di eventi:�OB 82, Priorità 26: allarme diagnostica (es.cortocircuito unità di ingresso)�OB 85, Priorità 26: errore di esecuzione programma (es.OB non caricato)�OB 86, Priorità 26: guasto al telaio di montaggio�OB 87, Priorità 26: errore di comunicazione�OB 100, Warm Start

Nella CPU 314C-2DP è consentito il solo Avviamento Warm (Nuovo Avviamento)L'avviamento Warm diviene Cold, se non vi sono aree di memoria ritentive definite o utilizzate. La CPU esegue un avviamento a caldo:�Dopo RETE ON�Da STOP a RUN

OB 100 viene eseguito all'avviamento Warm (nessun limite sulla durata). Può essere utilizzato per l'inizializzazione di variabili. Per i Merker si utilizza il comando SET. La sintassi è SET = variabile (nome o indirizzo). Ad esempio:SET= "home_robot"= "home1"= "home2"

OB 100

Page 21: Come programmare la funzione di memoria in Kop Programmare ... · PLC - Programmazione OB35 – SCHEDULAZIONE OROLOGIO Questo blocco ha priorità 12 Permette l'esecuzione periodica

PLC - Programmazione

Sono importantissimi per semplificare il codice e per renderlo riutilizzabile. Essenzialmente la creazione consiste nella definizione di un Blocco Funzionale e di un Blocco Dati per ogni istanza. Per ciascun Blocco Funzionale si possono definire i parametri formali e le variabili:�IN, OUT, IN_OUT, STAT, TEMP�Vengono richiamati premettendo il simbolo #

I BLOCCHI FUNZIONALI