fig.1 S7 -200 fig.2 configurazione...

22
La serie S7-200 della Siemens La serie S7-200 è una linea di controllori programmabili di dimensioni ridotte (Micro PLC), in grado di controllare un’ampia varietà di compiti di automazione. La figura 1-1 rappresenta un micro PLC S7-200. La compattezza del design, l’ampliabilità, i bassi costi ed il vasto set di operazioni fanno dei controllori S7-200 una soluzione ottimale per la gestione di piccoli compiti di automazione. Inoltre, l’ampia gamma di modelli di CPU con diverse tensioni di alimentazione garantisce la flessibilità necessaria per affrontare e risolvere i più svariati problemi di automazione. La figura 1-2 illustra un sistema base Micro PLC S7-200, costituito da una CPU S7-200, da un personal computer, dal software di programmazione STEP 7-Micro/WIN 32, versione 3.1 e da un cavo di comunicazione. Per poter usare un personal computer (PC) si deve disporre di uno dei seguenti set: • cavo PC/PPI • unità per processore di comunicazione (CP) e cavo per interfaccia multipoint (MPI) • scheda per interfaccia multipoint (MPI). La scheda viene fornita con l’apposito cavo MPI. La serie dispone di differenti CPU ciascuna in grado di soddisfare le esigenze del piccolo controllo. La CPU 224 ad esempio può essere programmata fino a 4096 parole, ha sull’unità base 14 ingressi e 10 uscite e può essere espansa fino a 7 moduli aggiuntivi. La Velocità di esecuzione delle operazioni booleane a 33 MHz è di 0,37ms/ operazione. Il registro dell’immagine degli I/O contiene 128 Ingressi e 128 Q uscite, i Contatori / temporizzatori sono 256/256 . Può eseguire operazioni matematiche con numeri interi (+ - * /) e operazioni matematiche con numeri reali (+ - * /) Funzioni avanzate ÁÁÁÁÁÁÁÁÁÁ Contatore veloce integrato 6 H/W (20 KHz), 2 Potenziometri analogici, 2 Uscite impulsi (20 KHz), gestisce gli Interrupt di comunicazione: 1 in trasmissione/2 in ricezione; due gli Interrupt a tempo (da 1 ms a 255 ms), fino a 4 interrupt di ingresso hardware, possiede un Orologio hardware. fig.1 S7-200 fig.2 configurazione serieS7-200

Transcript of fig.1 S7 -200 fig.2 configurazione...

Page 1: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

La serie S7-200 della Siemens La serie S7-200 è una linea di controllori programmabili di dimensioni ridotte (Micro PLC), in grado di controllare un’ampia varietà di compiti di automazione. La figura 1-1 rappresenta un micro PLC S7-200. La compattezza del design, l’ampliabilità, i bassi costi ed il vasto set di operazioni fanno dei controllori S7-200 una soluzione ottimale per la gestione di piccoli compiti di automazione.

Inoltre, l’ampia gamma di modelli di CPU con diverse tensioni di alimentazione garantisce la flessibilità necessaria per affrontare e risolvere i più svariati problemi di automazione. La figura 1-2 illustra un sistema base Micro PLC S7-200, costituito da una CPU S7-200, da un personal computer, dal software di programmazione STEP 7-Micro/WIN 32, versione 3.1 e da un cavo di comunicazione.

Per poter usare un personal computer (PC) si deve disporre di uno dei seguenti set: • cavo PC/PPI • unità per processore di comunicazione (CP) e cavo per interfaccia multipoint (MPI) • scheda per interfaccia multipoint (MPI). La scheda viene fornita con l’apposito cavo MPI. La serie dispone di differenti CPU ciascuna in grado di soddisfare le esigenze del piccolo controllo. La CPU 224 ad esempio può essere programmata fino a 4096 parole, ha sull’unità base 14 ingressi e 10 uscite e può essere espansa fino a 7 moduli aggiuntivi. La Velocità di esecuzione delle operazioni booleane a 33 MHz è di 0,37ms/ operazione. Il registro dell’immagine degli I/O contiene 128 Ingressi e 128 Q uscite, i Contatori / temporizzatori sono 256/256 . Può eseguire operazioni matematiche con numeri interi (+ - * /) e operazioni matematiche con numeri reali (+ - * /) Funzioni avanzate ÁÁÁÁÁÁÁÁÁÁ Contatore veloce integrato 6 H/W (20 KHz), 2 Potenziometri analogici, 2 Uscite impulsi (20 KHz), gestisce gli Interrupt di comunicazione: 1 in trasmissione/2 in ricezione; due gli Interrupt a tempo (da 1 ms a 255 ms), fino a 4 interrupt di ingresso hardware, possiede un Orologio hardware.

fig.1 S7-200

fig.2 configurazione serieS7-200

Page 2: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Sull’unità base del 224 sono presenti i seguenti ingressi ed uscite: I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 I1.1 I1.2 I1.3 I1.4 I1.5 Q0.0 Q0.1 Q0.2 Q0.3 Q0.4 Q0.5 Q0.6 Q0.7 Q1.0 Q1.1

E’ possibile programmare un certo numero di merker (M)ossia di registri, di leggere di Merker speciali (SM), di attivare dei contatori e dei timer: M 0.0 - 31.7 SM 0.0 - 549.7 S 0.0 - 31.7 T 0-255 C 0 - 255 L 0.0 - 59.7 AIW 0-30 AQW 0-30 AC 0-3

Page 3: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Aree di memoria dell’s7-200 Tipo di

accesso

Tipo di

memoria

CPU 221 CPU 222 CPU 224 -226 CPU 226XM

Bit(byte.bit) V 0.0 -2047.7 0.0 -2047.7 0.0 -5119.7 0.0 -10239.7

I 0.0-15.7 0.0-15.7 0.0-15.7 0.0-15.7

Q 0.0-15.7 0.0-15.7 0.0-15.7 0.0-15.7

M 0.0-31.7 0.0-31.7 0.0-31.7 0.0-31.7

SM 0.0-179.7 0.0-179.7 0.0-549.7 0.0-549.7

S 0.0-31.7 0.0-31.7 0.0-31.7 0.0-31.7

T 0.0-255 0.0-255 0.0-255 0.0-255

C 0.0-255 0.0-255 0.0-255 0.0-255

L 0.0-59.7 0.0-59.7 0.0-59.7 0.0-59.7

Byte VB 0 -2047 0 -2047 0 -5119 0 -10239

IB 0-15 0-15 0-15 0-15

QB 0-15 0-15 0-15 0-15

MB 0-31 0-31 0-31 0-31

SMB 0-179 0-179 0-549 0-549

SB 0-31 0-31 0-31 0-31

LB 0-59 0-59 0-59 0-59

AC 0-3 0-3 0-3 0-3

PAROLA VW 0- 2046 0- 2046 0- 5118 0- 10238

IW 0-14 0-14 0-14 0-14

QW 0-14 0-14 0-14 0-14

MW 0-30 0-30 0-30 0-30

SMW 0-178 0-178 0-548 0-548

SW 0-30 0-30 0-30 0-30

T 0-255 0-255 0-255 0-255

C 0-255 0-255 0-255 0-255

LW 0-58 0-58 0-58 0-58

AC 0-3 0-3 0-3 0-3

AIW 0-30 0-30 0-30 0-30

AQW 0-30 0-30 0-30 0-30

Doppia parola VD 0-2044 0- 2044 0- 5116 0- 10236

ID 0-12 0-12 0-12 0-12

QD 0-12 0-12 0-12 0-12

MD 0-28 0-28 0-28 0-28

SMD 0-176 0-176 0-546 0- 546

SD 0-28 0-28 0- 28 0- 28

LD 0-56 0-56 0-56 0- 56

AC 0-3 0-3 0-3 0- 3

HC 0-5 0-5 0-5 0-5

Page 4: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Accesso allo stesso indirizzo in byte , parola e doppia parola

Page 5: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Si riportano alcuni dei merker speciali della CPU 224: SM0.0 Questo bit è sempre ON (impostato su 1). SM0.1 Questo bit è sempre ON per il primo ciclo di scansione. Viene utilizzato, ad esempio, per richiamare un sottoprogramma di inizializzazione. SM0.2 Questo bit è on per 1 ciclo di scansione in caso di perdita dei dati a ritenzione. SM0.3 Questo bit viene attivato per un ciclo se si passa allo stato RUN da una condizione di Avvio. Può essere utilizzato per fornire un tempo di riscaldamento del sistema prima di avviare delle operazioni. SM0.4 Questo bit mette a disposizione un impulso di clock di 60 secondi (on per 30 secondi, off per altri 30). Viene così fornito un ritardo facile da programmare o un impulso di clock di un minuto. SM0.5 Questo bit mette a disposizione un impulso di clock di 1 secondo (on per 0,5 secondi, off per altri 0,5 secondi). Viene così fornito un tempo di ritardo facile da programmare o un impulso di clock di un secondo. SM0.6 Questo bit è un clock di ciclo di scansione che è attivo per un ciclo e disattivato per il ciclo successivo. SM0.7 Questo bit rispecchia la posizione dell’interruttore degli stati di funzionamento (off=TERM; on=RUN). Se viene utilizzato per attivare il modo freeport quando l’interruttore è in RUN, esso consente di abilitare la comunicazione con il PG commutando l’interruttore su TERM.

MB28 e SMB29 SMB28 contiene il valore digitale corrispondente alla posizione del potenziometro analogico 0, SMB29 contiene il valore digitale corrispondente alla

posizione del potenziometro analogico 1. Il potenziometro analogico ha un campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. Il potenziomentro analogico può essere impostato con un piccolo cacciavite: ruotandolo in senso orario (verso destra) si incrementa il valore, ruotandolo in senso antiorario (verso sinistra) lo si decrementa.

Gli altri merker speciali svolgono funzioni particolari e si rimanda al manuale per approfondimenti. Concetti base della programmazione Gli esempi riportati fanno riferimento al set d’istruzioni SIMATIC con linguaggio internazionale: L’esempio riportato sia in simbologia a contatti che in lista istruzione, attiva l’uscita Q0.0 quando è attivo l’ingresso cablato all’indirizzo I0.0.

LD I0.0 // se premo il pulsante di marcia = Q0.0 // allora attiva l’uscita

Nel secondo esempio è riportata una struttura base della programmazione di un PLC, ossia una marcia arresto, si noti inoltre l’utilizzo della OR (O) per la messa in parallelo del contatto Q0.0 e la nand per il contatto I0.1

LD I0.0 //se premo il pulsante di marcia O Q0.0 // autoritenuta AN I0.1 // finchè non premo lo stop = Q0.0 // attiva l’uscita

S

Page 6: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

OPERAZIONI SULLO STACK LOGICO

Una parte della memoria può essere organizzata a stack ( pila ) ossia

in una forma che consente di gestire la memoria in modo LIFO

(Last In First Out). L’ultimo dato immesso è il primo ad uscire dallo

stack. I dati entrano ed escono sempre dal registro 0. Ad ogni

operazione di scrittura i bit scorrono verso l’alto, verso il basso ad

ogni operazione di lettura.

ALD e OLD prelevano i bit presenti nel reg0 e nel reg1 e ne fanno

la and e la or rispettivamente, il risultato logico è salvato sullo stack

nel reg0.

LPS duplica il valore presente nel reg0 nel reg1, tutti

gli altri dati scorrono verso l’alto, quello presente sulla

sommità va perso.

LPP preleva il valore dal reg0 il valore presente in

reg1 ne prende il posto e cosi via scorrendo verso il

basso

LRD copia il contenuto del reg1 in reg0

sovrascrivendolo al valore precedentemente

contenuto. Non c’è alcuna lettura del dato.

Esempio

NETWORK 1 //TITOLO DEL SEGMENTO

LD M0.0 LPS // si duplica il valore di M0.0 A I0.0 = Q0.1 LPP // il valore salvato è assegnato a Q0.2 = Q0.2 //COMMENTI DEL SEGMENTO

Reg7

Reg6

Reg5

Reg4

Reg3

Reg2

Reg1

Reg0

stack

1 Reg7 0 Reg7

0 Reg6 0 Reg6

0 Reg5 0 Reg5

0 Reg4 0 Reg4

0 Reg3 1 Reg3

1 Reg2 0 Reg2

0 Reg1 1 Reg1

1 Reg0 1 Reg0

Effetto di LPS

…. …. …. …..

1 Reg2 0 Reg2

0 Reg1 1 Reg1

1 Reg0 0 Reg0

Effetto di LPP

Il valore 1 esce in lettura dallo stack

…. …. …. …..

1 Reg2 1 Reg2

0 Reg1 0 Reg1

1 Reg0 0 Reg0

Page 7: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

LD M0.0 LPS // si duplica il valore di M0.0 A I0.0 = Q0.1 LRD //copia il contenuto del reg1 in reg0 = Q0.2 LPP A I0.3 = Q0.5 Uso dello stack in linguaggio a contatti per la descrizione di strutture complesse

LD I0.0 LD M0.1 A M0.0 OLD // mette in OR I risultati //intermedi salvati sullo stack AN I0.1 A Q0.1

= M0.0 LD I0.0 LD Q0.1 ON M0.0 ALD //mette in and i risultati messi sullo stack = M0.0 //il risultato è posto in memoria ne //merker 0.0

NETWORK 1

LD I0.0

O M0.0

LD T0

ON M0.1

ALD

= Q0.1

L’istruzione L o LD carica nello stack del PLC il risultato dell’istruzione logica; le successive istruzioni OLD e ALD eseguono la OR e la AND degli ultimi due valori immessi nello stack.

Page 8: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Si simuli con simulplc il seguente programma LD I0.0 LPS LPS LPP = Q0.0 Uso di set e reset

NETWORK 1 LD I0.0 S Q0.0, 1 // l’istruzione pone a uno il numero di bit indicati a partire dall’indirizzo Q0.0 in questo caso un solo bit. NETWORK 2 LD I0.1 R Q0.0, 1

I contatori L'operazione Conta in avanti CTU conta in avanti fino al valore massimo sui fronti di salita dell'ingresso di conteggio in avanti (CU). Quando il valore corrente (Cxxx) è >= al valore preimpostato (PV), il bit di conteggio (Cxxx) viene attivato e tutti i contatti associati al contatore cambiano stato. Il contatore viene resettato quando si attiva l'ingresso di reset (R). Il contatore smette di contare quando raggiunge il PV. Gli indirizzi sono Cxxx=da C0 a C255.

Page 9: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

esempio NETWORK 1 LD I0.0 LD I0.1 CTU C0, +10 NETWORK 2 LD C0 = Q0.0

Il contatore Conta indietro CTD conta all'indietro da un valore predefinito sui fronti di salita dell'ingresso di conteggio all'indietro (CD). Quando il valore corrente diventa uguale a zero, il bit di conteggio (Cxxx) viene attivato. Il contatore resetta il bit di conteggio (Cxxx) e carica il valore corrente con il valore preimpostato (PV) quando l'ingresso di caricamento (LD) diventa attivo. Il contatore si arresta al raggiungimento del valore massimo (32.767). Aree dei contatori: Cxxx=da C0 a C255

L'operazione Conta in avanti/indietro CTUD, conta in avanti sui fronti di salita dell'ingresso di conteggio in avanti (CU) e conta all'indietro sui fronti di salita dell'ingresso di conteggio all'indietro (CD). Quando il valore corrente (Cxxx) è >= al valore preimpostato (PV), il bit di conteggio (Cxxx) viene attivato. Il contatore viene resettato quando si attiva l'ingresso di reset (R). Aree dei contatori: Cxxx=da C0 a C255 Al raggiungimento del valore massimo (32.767), il fronte di salita successivo dell'ingresso di conteggio in avanti farà sì che il valore corrente si raccolga intorno al valore minimo (-32.768).

Il contatore Conta indietro CTD conta all'indietro da un valore predefinito sui fronti di salita dell'ingresso di conteggio all'indietro (CD).

LE ISTRUZIONI DI CONFRONTO La serie 200 dispone di una ampia disponibilità di istruzioni di confronto: contatto di byte B uguale, diverso, maggiore o uguale, minore o uguale, maggiore, minore Contatto per il confronto di numeri interi I uguale, diverso, maggiore o uguale, minore o uguale, maggiore, minore

Page 10: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Contatto per il confronto di numeri interi D(a 32 bit) Contatto per il confronto di numeri reali R.

LDB<= 45, 4 AW<> T5, +4 AD<= +3, +3 AR<= 4.0, 44.0 = Q0.0 L'operazione Confronto di byte consente di confrontare i valori IN1 e IN2. Si possono effettuare i seguenti tipi di confronto: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 o IN1 <> IN2.

L'operazione Confronto di numeri interi consente di confrontare due valori: IN1 e IN2. Si possono effettuare i seguenti tipi di confronto: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 o IN1 <> IN2. I confronti di numeri interi non hanno segno (16#7FFF > 16#8000).

L'operazione Confronto di doppi numeri interi consente di confrontare due valori: IN1 e IN2. Si possono effettuare i seguenti tipi di confronto: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 o IN1 <> IN2. I confronti di doppi numeri interi non hanno segno (16#7FFFFFFF > 16#80000000).

L'operazione Confronto di numeri reali consente di confrontare due valori: IN1 e IN2. Si possono effettuare i seguenti tipi di confronto: IN1 = IN2, IN1 >= IN2, IN1 <= IN2, IN1 > IN2, IN1 < IN2 o IN1 <> IN2. Il confronto di numeri reali è senza segno.

Esempi Esempi Esempi Esempi LDB<= IN1,IN2 LDW<= IN1,IN2 LDD<= IN1,IN2 LDR<= IN1,IN2 AB = IN1,IN2 AW = IN1,IN2 AD = IN1,IN2 AR = IN1,IN2 OB <> IN1,IN2 OW <> IN1,IN2 OD <> IN1,IN2 OR <> IN1,IN2 Riportiamo con un esempio per la realizzazione di un sequenziatore. Storicamente realizzati con motorini che mettevano in rotazione eccentrici che attivando i contatti con un certo ordine, consentivano l’inserzione e la disinserzione di carichi in un certo ordine. La realizzazione con plc, prevede la programmazione di un contatore up. Gli stati interni del contatore sono accessibili con le istruzioni di confronto. L’uscita Q0.0 si ecciterà al quinto impulso ossia quando il contatore C0 avrà il valore 5 come corrente. La diseccitazione dell’uscita avverrà al 20 impulso quando la condizione di disuguaglianza non sarà più verificata. I sequenziatori sono alla base di strutture come i semafori.

Page 11: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

I timer Esistono tre timer TON, TONR e TOF. La prima è detta temporizzazione come ritardo all’inserzione, la seconda temporizzazione come ritardo all’inserzione con memoria. Entrambe contano il tempo quando l’ingresso di abilitazione è attivo (ON). I contatti del temporizzatore vengono attivati quando il valore corrente (Txxx) diventa maggiore o uguale al tempo preimpostato (PT). Quando l’ingresso di abilitazione è disattivato (OFF), il valore corrente del temporizzatore di ritardo all’inserzione viene resettato, mentre quello del temporizzatore di ritardo all’inserzione con memoria viene mantenuto. Quest’ultimo consente di accumulare il tempo per più periodi di attivazione dell’ingresso. Il valore corrente del temporizzatore può essere resettato con l’operazione Resetta R Sia il temporizzatore di ritardo all’inserzione, che il temporizzatore di ritardo all’inserzione con memoria continuano a contare una volta raggiunto il valore preimpostato e si arrestano al raggiungimento del valore massimo 32767. Il temporizzatore ritardo alla disinserzione consente di ritardare la disattivazione di un’uscita per un dato periodo di tempo dopo che l’ingresso è stato disattivato. Quando l’ingresso di abilitazione si attiva, il bit di temporizzazione viene immediatamente attivato e il valore corrente viene impostato a 0. Alla disattivazione dell’ingresso, il temporizzatore conta finché il tempo trascorso diventa pari a quello preimpostato. Una volta raggiunto il tempo preimpostato, il bit di temporizzazione si disattiva e il valore corrente non viene più incrementato. Se l’ingresso resta disattivato per un tempo inferiore a quello preimpostato, il bit di temporizzazione resta attivo. Per iniziare il conteggio, l’operazione TOF deve rilevare una transizione da attivo a disattivato (ON - OFF). I temporizzatori TON, TONR e TOF sono disponibili in tre risoluzioni indicate dal numero del temporizzatore, come indicato nella tabella 9-1. Ogni conteggio del valore corrente è un multiplo della base di tempo. Ad esempio, un conteggio di 50 in un temporizzatore da 10 ms corrisponde a 500 ms.

Tipo Risoluzione in millisecondi (ms)

Valore massimo in secondi (s)

Numero del temporizzatore

TONR ( a ritenzione)

1 ms 32,767 s T0, T64 10 ms 327,67 s da T1 a T4, da T65 a T68 100 ms 3276,7 s da T5 a T31, da T69 a T95

TON, TOF (non a ritenzione)

1 ms 32,767 s T32, T96 10 ms 327,67 s da T33 a T36, da T97 a

T100 100 ms 3276,7 s da T37 a T63, da T101 a

T255 Non è possibile utilizzare gli stessi numeri per i TOF e i TON. Ad esempio, non si possono impostare contemporaneamente i temporizzatori TON T32 e TOF T32. Esempio Tof

Page 12: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Esempio Il seguente esempio è riferito ad un arresto temporizzato dell’uscita Q0.0.

// definizione del timer LD Q0.0 TON T38, +100 // marcia arresto temporizzata LD I0.0 O Q0.0 AN T38 = Q0.0

Una funzione simile può essere svolta da un timer ritardato alla diseccitazione TOF. Ricorda che se l’ingresso va basso prima che il valore di preset venga raggiunto, l’uscita rimane alta come mostra il diagramma temporale in figura. LD I0.0 TOF T38, +100 LD T38 = Q0.0

I relè di controllo sequenziale forniscono alle applicazioni una tecnica per organizzare delle operazioni macchina o dei passi in segmenti di programma equivalenti. NETWORK 1

LD I0.0 AN I0.1 = S0.0 NETWORK 2

LSCR S0.0 // inizio segmento

di controllo sequenziale

NETWORK 3

LD I0.2 = Q0.0 NETWORK 4

LD I0.3 = Q0.1 NETWORK 5

SCRE // fine segmento di

controllo sequenziale

Contatti di transizione

Page 13: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Il contatto Transizione positiva attiva il flusso di corrente per un ciclo di scansione ad ogni transizione da off a on. Il contatto Transizione negativa attiva il flusso di corrente per un ciclo di scansione ad ogni transizione da on a off. In KOP le operazioni Transizione positiva e Transizione negativa vengono rappresentate mediante contatti.

NETWORK 1 LD C0 EU S Q0.0, 1 NETWORK 2 LD I0.1 ED R Q0.0, 1

Le istruzioni matematiche I microprocessori della serie S7-22X possono svolgere alcune delle operazioni di una calcolatrice scientifica in particolare: la funzione sen, cos, tan, ln, exp. Inoltre implementano il calcolo di un regolatore PID. Sono disponibili alcune istruzioni aritmetiche quali somma, sottrazione, moltiplicazione e divisione tra interi. Le istruzioni sono gestibili in modo sia immediato che diretto con le variabili della CPU. La serie S7-22X presenta un numero elevato di istruzioni per il controllo del programma, gestione dell’interrupt, la comunicazione.

Esempio sull’uso delle istruzioni di somma e conversione. Si voglia attivare un’uscita Q0.0 se il potenziometro 0 piu un offset di 2 è uguale o maggiore di 200. L’operazione di somma ha come operando le Word, è necessario convertire il valore del potenziometro contenuto in SMB28 da byte in word ed il risultato è salvato nella variabile VW4. Successivamente a questa si somma la costante 2 e la si salva in VW0. L’ultimo segmento attribuisce all’uscita Q0.0 il risultato del confronto >=200.

Le istruzioni di trasferimento

Page 14: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Le istruzioni MOV consentono di trasferire il dato presente in IN all’indirizzo OUT. Nell’esempio si trasferisce il valore dell’ingresso analogico AIW0 all’uscita analogica AQW0. APPLICAZIONE

SOTTOPROGRAMMI L'operazione Sottoprogramma o l'operazione CALL di AWL trasferiscono il controllo al sottoprogramma(n). L'operazione Sottoprogramma può essere utilizzata con o senza parametri. Note:* Il limite massimo di parametri di I/O per ciascun richiamo di sottoprogramma è 16.

Page 15: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Per la definizione dei parametri è necessario entrare nel codice del sottoprogramma ( SBR0) e inserire nella tabella delle variabili locali il nome e il tipo dei parametri.

Solo dopo aver definito i parametri inserire nel main il blocco sottoprogramma

avendo cura di mantenere la corrispondenza di tipo tra parametri passati e definiti. Non è possibile utilizzare l'operazione END in un sottoprogramma. Le operazioni non condizionali di conclusione dell'unità di programma ( RET per SBR e RETI per INT) vengono inserite automaticamente dagli editor.

Page 16: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Interrupt Gli interrupt consentono di reagire rapidamente a particolari eventi interni e esterni. È consigliabile ottimizzare le routine di interrupt per l'esecuzione di task specifici e quindi restituire il controllo al programma principale. Limitando il più possibile le dimensioni e l'azione delle routine di interrupt, è possibile ridurne i tempi di esecuzione a vantaggio di altri processi che in tal modo non resteranno bloccati troppo a lungo.

L'operazione Assegna interrupt associa un evento di interrupt (EVNT) al numero di una routine di interrupt (INT) e abilita l'evento. L'operazione Separa evento separa un evento di interrupt (EVNT) dalle routine di interrupt e disabilita l'evento. L'operazione Fine condizionata della routine di interrupt può essere utilizzata per tornare da un interrupt, in base ad una condizione della combinazione logica precedente ENI L'operazione Abilita tutti gli interrupt abilita l'elaborazione di tutti gli eventi di interrupt assegnati. DISI L'operazione Inibisci tutti gli interrupt inibisce l'elaborazione di tutti gli eventi di interrupt. Nella transizione allo stato RUN l'utente disattiva gli interrupt. Una volta nello stato RUN si possono abilitare tutti gli interrupt con l'operazione ENI. L'operazione Inibisci tutti gli interrupt permette di mettere in coda gli interrupt, ma non di richiamare le routine di interrupt.

Page 17: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Tabella eventi associabili 0 I0.0 fronte di salita 1 I0.0 Fronte di discesa 2 I0.1 Fronte di salita 3 I0.1 Fronte di discesa 4 I0.2 Fronte di salita 5 I0.2 Fronte di discesa 6 I0.3 Fronte di salita 7 I0.3 Fronte di discesa 8 Porta 0 Ricezione carattere 9 Porta 0 Trasmissione conclusa 10 Interrupt a tempo 0 SMB34 11 Interrupt a tempo 1 SMB35 12 HSC0 CV=PV (valore attuale = valore di preimpostazione) 13 HSC1 CV=PV (valore attuale = valore di preimpostazione) 14 HSC1 Cambiamento di direzione 15 HSC1 Reset esterno 16 HSC2 CV=PV (valore attuale = valore di preimpostazione) 17 HSC2 Cambiamento di direzione 18 HSC2 Reset esterno 19 PLS0 Interrupt di conteggio impulsi PTO completo 20 PLS1 Interrupt di conteggio impulsi PTOcompleto 21 Temporizzatore T32 Interrupt CT = PT 22 Temporizzatore T96 Interrupt CT = PT 23 Porta 0 Ricezione messaggio conclusa 24 Porta 1 Ricezione messaggio conclusa 25 Porta 1 Ricezione carattere 26 Porta 1 Trasmissione conclusa 27 HSC0 Cambiamento di direzione 28 HSC0 Reset esterno 29 HSC4 CV=PV(valore attuale = valore di preimpostazione) 30 HSC4 Cambiamento di direzione 31 HSC4 Reset esterno 32 HSC3 CV=PV(valore attuale = valore dipreimpostazione) 33 HSC5 CV=PV Gli interrupt vengono elaborati uno dopo l'altro in base al rispettivo livello di priorità, per cui in qualsiasi momento può essere attiva una sola routine di interrupt. Se è attivo un interrupt a tempo, esso avrà la priorità sull'eventuale successivo interrupt di bit o di comunicazione. Tali interrupt vengono messi in attesa per essere elaborati in seguito.

Page 18: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

PROGRAMMA GESTIONE INTERRUPT EVENTO 0

MAIN

LD SM0.1 ATCH INT_0, 0 ENI È consigliabile non usare le bobine di uscita negli interrupt ma passare attraverso marker !!! LD I0.1 R M0.0, 1 LD M0.0 = Q0.0

INTERRUPT INT0 RICHIAMATO FRONTE DI SALITA I0.0

LD SM0.0 S M0.0, 1 LD SM0.0 CRETI

Page 19: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

PROGRAMMA GESTIONE INTERRUPT EVENTO 4 MAIN

LD I0.0 ATCH INT_0, 4 ENI LD I0.1 EU DTCH 4 LD SM0.1 MOVW +0, VW0

LD SM0.0 INCW VW0

AWL

MAIN

INT_0

Page 20: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

PROGRAMMA GESTIONE EVENTO 10 INTERRUPT TEMPORIZZATO MAIN

attach int_0 all'evento 10 ossia TEMPORIZZAZIONE SMB34 LD I0.0 ATCH INT_0, 10 ENI STACCO L'EVENTO 10 DA INT_0

LD I0.1 EU DTCH 10 INIZIALIZZO LA VARIABILE VW0 IMPOSTO L'INTERVALLO TEMPORALE A 250 ms IL VALORE MAX 255. INTERRUPT A TEMPO 0 -------> SMB34

LD SM0.1 MOVW +0, VW0 MOVB 250, SMB34

LD SM0.0 INCW VW0

AWL

Page 21: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

PROGRAMMA GESTIONE EVENTO 21 INTERRUPT TEMPORIZZATO T32

LD I0.0 ATCH INT_0, 21 S M0.0, 1 ENI LD I0.1 EU DTCH 21 R M0.0, 1 LD SM0.1 MOVW +20, VW0 LD SM0.0 A M0.0 TON T32, +1000

LD SM0.0 DECW VW0 R T32, 1 IL T32 DEVE ESSERE RESETTATO per evitare che continui a contare da 1000 in su!

Page 22: fig.1 S7 -200 fig.2 configurazione serieS7-200magistri.altervista.org/SISTEMI/quarta/La_serie_S7.pdf · campo nominale compreso fra 0 a 255 e una ripetibilità di ± 2 conteggi. ...

Il cablaggio delle uscite e degli ingressi Le uscite in AC sono cablabili in gruppi di tre con tre differenti comuni per ciascun gruppo. Gli ingressi sono invece alimentate a 24 V in c.c. con due distinti comuni come mostrato in figura.

Le uscite possono alimentare fino a 2 A.