S5-100U
PC-Sim per S5 100U
E’ uno dei simulatori di PLC compresi nel pacchetto AW-SYS. Esso simula il PLC modello S5 100U della Siemens.
PLC
Questa finestra mostra l’immagine del PLC e, ovviamente, il suo contenuto varia in funzione del modello che state utilizzando. Essa è stata studiata e realizzata per rappresentare una apparecchiatura quanto più possibile simile nelle forme esteriori al PLC reale. Questo, anche se inutile dal punto di vista funzionale, vi fornirà un passaggio più facile verso il PLC reale, quando decidiate di farlo. In tutte le finestre sono state riproposte le segnalazioni luminose a led dello stato degli ingressi e delle uscite digitali. Come nel PLC reale l’accensione di un LED d’ingresso indica la chiusura del contatto ad esso collegato; l’accensione di un LED d’uscita indica l’attivazione dell’uscita corrispondente.
Nella finestra sono presenti 16 pulsanti/interruttori. Essi vengono utilizzati per il comando degli ingressi digitali quando usate il PLC senza impianto o quando non tutti gli ingressi del PLC sono collegati all’impianto.
Questi pulsanti/interruttori possono essere impostati sia come pulsanti che come interruttori. L’aspetto ne indicherà la funzione:
interruttore | ||
pulsante |
dove la doppia freccia indica la funzione bistabile, quella singola la funzione monostabile.
Editor di programma ladder
Il Ladder diagram o Schema a contatti è sicuramente il più diffuso linguaggio di programmazione di PLC. E’ una metodologia di programmazione grafica. Tra due linee verticali, che rappresentano l’alimentazione, viene disegnato un schema elettrico composto da diversi circuiti disposti in successione. Il PLC esegue nell’ordine ognuno di essi durante l’elaborazione del programma utente.
L’editor ladder di PC-Sim vi offre la possibilità di scrivere comodamente e rapidamente il programma, unendo alla velocità delle azioni con il mouse, la potenza dei comandi tipici di editor avanzati: per esempio comandi taglia, copia e incolla.
Il disegno dello schema avviene utilizzando gli strumenti della Casella strumenti ed i Menu di scelta rapida attivabili con il pulsante destro del mouse. La verifica della correttezza sintattica degli operandi, che potranno essere introdotti anche sotto forma di simbolo, viene effettuata alla fine di ogni digitazione. Lo stesso editor permetterà, durante l’esecuzione del programma realizzato, la visualizzazione del debug. Verranno mostrati, con variazioni di colore, contatti chiusi, bobine attive e circolazione della corrente. La colorazione sarà aggiornata in tempo reale ed in conseguenza dei risultati dell’elaborazione e delle variazioni dei segnali a campo.
Editor di programma AWL
Il linguaggio AWL o STL o Lista istruzioni è una delle modalità più diffuse di programmazione dei PLC. Scrivere un programma AWL vuol dire digitare una serie di istruzioni, ognuna delle quali rappresenta un compito elementare, che la CPU del PLC eseguirà in sequenza. Ogni istruzione occupa un solo rigo di programma ed ogni rigo contiene una sola istruzione.
Ognuna di esse è composta da un’operazione e, generalmente, da un operando. L’operazione specifica l’azione che la CPU deve compiere e l’operando specifica l’oggetto su cui tale azione deve essere compiuta.
L’editor AWL di PC-Sim per S5 100U consente una comoda e rapida introduzione delle istruzioni, anche grazie alla possibilità di utilizzare comandi di taglia, copia ed incolla. La sintassi di ognuna di esse viene controllata immediatamente ed il programmatore viene avvisato in caso di errore. Il programma, inoltre, pùo essere semplicemente corredato di testi di commento.
Lo stesso editor permetterà, durante l’esecuzione del programma realizzato, la visualizzazione del debug. In corrispondenza di ogni rigo, verranno visualizzate informazioni sui registri principali del PLC e sullo stato degli operandi. Queste saranno aggiornate in tempo reale ed in conseguenza dei risultati dell’elaborazione e delle variazioni dei segnali a campo.
Lista blocchi
Riporta la lista dei blocchi presente nel progetto corrente specificandone sigla, il tipo editor e lo stato. Consente l’accesso agli editor di programma ed alle funzioni di debug, nonché la crezione, l’eliminazione e la rinominazione di blocchi.
Le altre finestre che compongono il programma sono comuni a tutti i PLC e vengono descritte nella pagina PC-Sim: il simulatore di PLC.
Elenco operazioni fondamentali supportate
Operazione AWL |
Operandi ammessi |
Descrizione |
Operazioni logiche | ||
U | E, A, M, T, Z | Combinazione AND o test sullo stato “1” |
UN | E, A, M, T, Z | Combinazione AND o test sullo stato “0” |
O | E, A, M, T, Z | Combinazione OR o test sullo stato “1” |
ON | E, A, M, T, Z | Combinazione OR o test sullo stato “0” |
O | Combinazione OR di funzioni AND | |
U( | Combinazione AND di espressione tra parentesi | |
O( | Combinazione OR di espressione tra parentesi | |
) | Fine di un’espressione tra parentesi | |
Operazioni di memorizzazione | ||
S | E, A, M | Attivazione dell’operando su RLC=1 |
R | E, A, M | Disattivazione dell’operando su RLC=1 |
= | E, A, M | Assegnazione dell’operando al valore di RLC |
Operazioni di caricamento | ||
L | EB | Caricamento di un byte dell’IPI in ACCU1 |
L | AB | Caricamento di un byte dell’IPU in ACCU1 |
L | EW | Caricamento di una word dell’IPI in ACCU1 |
L | AW | Caricamento di una word dell’IPU in ACCU1 |
L | MB | Caricamento di un merker byte in ACCU1 |
L | MW | Caricamento di un merker byte in ACCU1 |
L | DL | Caricamento di una parola dati (byte di sinistra) del blocco attuale in ACCU1 |
L | DR | Caricamento di una parola dati (byte di destra) del blocco attuale in ACCU1 |
L | DW | Caricamento di una parola dati del blocco attuale in ACCU1 |
L | KB | Caricamento di una costante di byte in ACCU1 |
L | KF | Caricamento di una costante in virgola fissa in ACCU1 |
L | KH | Caricamento di una costante esadecimale in ACCU1 |
L | KM | Caricamento di una costante binaria in ACCU1 |
L | KY | Caricamento di una costante a doppio byte in ACCU1 |
L | KT | Caricamento di una costante di tempo in ACCU1 |
L | KZ | Caricamento di una costante di conteggio in ACCU1 |
L | T,Z | Caricamento di un valore di tempo o di conteggio in ACCU1 |
LC | T,Z | Caricamento di un valore di tempo o di conteggio, codificato BCD, in ACCU1 |
Operazioni di trasferimento | ||
T | EB | Trasferimento del contenuto di ACCU1 in un byte dell’IPI |
T | AB | Trasferimento del contenuto di ACCU1 in un byte dell’IPU |
T | EW | Trasferimento del contenuto di ACCU1 in una word dell’IPI |
T | AW | Trasferimento del contenuto di ACCU1 in una word dell’IPU |
T | MB | Trasferimento del contenuto di ACCU1 in un merker byte |
T | MW | Trasferimento del contenuto di ACCU1 in una merker word |
T | DL | Trasferimento del contenuto di ACCU1 in una parola dati (byte di sinistra) |
T | DR | Trasferimento del contenuto di ACCU1 in una parola dati (byte di destra) |
T | DW | Trasferimento del contenuto di ACCU1 in una parola dati |
Operazioni di temporizzazione | ||
SI | T | Attivazione di un temporizzatore ad impulso |
SV | T | Attivazione di un temporizzatore ad impulso prolungato |
SE | T | Attivazione di un temporizzatore con ritardo all’inserzione |
SS | T | Attivazione di un temporizzatore con ritardo all’inserzione con memoria |
SA | T | Attivazione di un temporizzatore con ritardo alla disinserzione |
R | T | Reset di un temporizzatore |
Operazioni di conteggio | ||
ZV | Z | Incremento di conteggio |
ZR | Z | Decremento di conteggio |
S | Z | Impostazione di un contatore |
R | Z | Reset di un contatore |
Operazioni aritmetiche | ||
+F | Addizione di due numeri in virgola fissa (ACCU2 + ACCU1) | |
-F | Sottrazione di due numeri in virgola fissa (ACCU2 – ACCU1) | |
Operazioni di confronto | ||
!=F | Confronto di uguaglianza di due numeri in virgola fissa (ACCU2 = ACCU1) | |
><F | Confronto di disuguaglianza di due numeri in virgola fissa (ACCU2 ¹ ACCU1) | |
>F | Confronto di maggioranza di due numeri in virgola fissa (ACCU2 > ACCU1) | |
>=F | Confronto di maggioranza o uguaglianza di due numeri in virgola fissa (ACCU2 ³ ACCU1) | |
<F | Confronto di minoranza di due numeri in virgola fissa (ACCU2 < ACCU1) | |
<=F | Confronto di minoranza o uguaglianza di due numeri in virgola fissa (ACCU2 £ ACCU1) | |
Operazioni di richiamo di blocchi | ||
SPA | PB | Salto assoluto ad un blocco di programma |
SPA | FB | Salto assoluto ad un blocco funzionale |
SPB | PB | Salto condizionato ad un blocco di programma |
SPB | FB | Salto condizionato ad un blocco funzionale |
A | DB | Apertura di un blocco dati |
Operazioni di salto di ritorno | ||
BE | Fine blocco | |
BEB | Fine blocco condizionata | |
BEA | Fine blocco assoluta | |
Operazioni nulle | ||
NOP0 | Nessuna operazione | |
NOP1 | Nessuna operazione | |
Operazioni di stop | ||
STP | Stop dell’elaborazione. La CPU viene portata in stop alla fine del ciclo |
Elenco operazioni integrative supportate
Operazione AWL |
Operandi ammessi |
Descrizione |
Operazioni logiche su operando formale | ||
U= | Operando formale E, A, M, T, Z | Combinazione AND o test sullo stato “1” |
UN= | Operando formale E, A, M, T, Z | Combinazione AND o test sullo stato “0” |
O= | Operando formale E, A, M, T, Z | Combinazione OR o test sullo stato “1” |
ON= | Operando formale E, A, M, T, Z | Combinazione OR test sullo stato “0” |
Operazioni logiche su word | ||
UW | Combinazione AND (bit a bit) tra ACCU1 e ACCU2 con risultato in ACCU1 | |
OW | Combinazione OR (bit a bit) tra ACCU1 e ACCU2 con risultato in ACCU1 | |
XOW | Combinazione XOR (bit a bit) tra ACCU1 e ACCU2 con risultato in ACCU1 | |
Operazioni di memorizzazione su operando formale | ||
S = | Operando formale E, A, M | Attivazione dell’operando formale su RLC=1 |
RB = | Operando formale E, A, M | Disattivazione dell’operando formale su RLC=1 |
RD = | Operando formale T, Z | Disattivazione dell’operando formale su RLC=1 |
= = | Operando formale E, A, M | Assegnazione dell’operando formando al valore di RLC |
Operazioni di caricamento e trasferimento di operando formale | ||
L = | Operando formale E, A, M, T, Z | Caricamento in ACCU1 del valore dell’operando formale |
LC = | Operando formale T, Z | Caricamento in ACCU1 del valore codificato BCD dell’operando formale |
LW = | Operando formale | Caricamento in ACCU1 del valore dell’operando formale costante |
T = | Operando formale E, A, M | Trasferimento del valore in ACCU1 all’operando formale |
Operazioni di temporizzazione e conteggio con operando formale | ||
SI = | Operando formale T | Attivazione di un temporizzatore ad impulso |
SE = | Operando formale T | Attivazione di un temporizzatore con ritardo all’inserzione |
SVZ = | Operando formale T, Z | Attivazione di un temporizzatore ad impulso prolungato oppure impostazione di un contatore |
SSV = | Operando formale T, Z | Attivazione di un temporizzatore con ritardo all’inserzione con memoria oppure conteggio in avanti di un contatore |
SAR = | Operando formale T, Z | Attivazione di un temporizzatore con ritardo alla disinserzione oppure conteggio all’indietro di un contatore |
Operazioni aritmetiche | ||
ADD | BF | Somma ad ACCU1 la costante a byte con segno (-128…+127), risultato in ACCU1 |
ADD | KF | Somma ad ACCU1 la costante a word con segno (-32768…+32767), risultato in ACCU1 |
Operazioni di conversione | ||
KEW | Complemento a 1 di ACCU1 | |
KZW | Complemento a 2 di ACCU1 | |
Operazioni di scorrimento | ||
SLW | n = 0…15 | Scorrimento verso sinistra del contenuto di ACCU1 per il numero di bit indicato nel parametro. I posti liberi vengono riempiti con 0. |
SRW | n = 0…15 | Scorrimento verso destra del contenuto di ACCU1 per il numero di bit indicato nel parametro. I posti liberi vengono riempiti con 0. |
Operazioni di salto | ||
SPA = | Etichetta | Salto assoluto all’etichetta |
SPB = | Etichetta | Salto condizionato all’etichetta (se RLC=0) |
SPZ = | Etichetta | Salto se risultato nullo |
SPN = | Etichetta | Salto de risultato non nullo |
SPP = | Etichetta | Salto se positivo |
SPM = | Etichetta | Salto se negativo |
SPO = | Etichetta | Salto per overflow |
Operazioni di stop | ||
STS | Stop dell’elaborazione. La CPU viene portata in stop immediatamente | |
Operazioni speciali | ||
D | n = 0…255 | Decremento del byte inferiore di ACCU1 di n |
I | n = 0…255 | Incremento del byte inferiore di ACCU1 di n |
TAK | Scambio del contenuto di ACCU1 ed ACCU2 | |
Operazioni di elaborazione | ||
B | DW | Elaborazione di parola dati: l’istruzione successiva viene combinata con il parametro ed eseguita |
B | MW | Elaborazione di parola merker: l’istruzione successiva viene combinata con il parametro ed eseguita |
B= | Operando formale B | Elaborazione del blocco per OB, PB e FB; apertura del blocco per DB |