Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
fig.1 S7-200
Spotenziometro
MB28 e SMB29 SMB28 contiene il valore digitale corrispondente alla posizione del
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.
Una parte della memoria può essere organizzata a stack ( pila ) ossia
Reg7 in una forma che consente di gestire la memoria in modo LIFO
Reg6 (Last In First Out). L’ultimo dato immesso è il primo ad uscire dallo
Reg5 stack. I dati entrano ed escono sempre dal registro 0. Ad ogni
Reg4 operazione di scrittura i bit scorrono verso l’alto, verso il basso ad
Reg3 ogni operazione di lettura.
Reg2
Reg1 ALD e OLD prelevano i bit presenti nel reg0 e nel reg1 e ne fanno
Reg0 la and e la or rispettivamente, il risultato logico è salvato sullo stack
stack nel reg0.
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
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.
Si simuli con simulplc il seguente programma
LD I0.0
LPS
LPS
LPP
= Q0.0
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.
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).
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
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
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.
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
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
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
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.
Le istruzioni di trasferimento
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
Solo dopo aver definito i parametri inserire nel main il blocco sottoprogramma
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.
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
PROGRAMMA GESTIONE INTERRUPT EVENTO 4
MAIN
AWL
MAIN
LD I0.0
ATCH INT_0, 4
ENI
LD I0.1
EU
DTCH 4
LD SM0.1
MOVW +0, VW0
INT_0
LD SM0.0
INCW VW0
PROGRAMMA GESTIONE EVENTO 10 INTERRUPT TEMPORIZZATO
MAIN
AWL
STACCO L'EVENTO 10 DA
INT_0
LD I0.1
EU
DTCH 10
LD SM0.1
MOVW +0, VW0
MOVB 250,
SMB34
LD SM0.0
INCW VW0
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
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.