Questo corso è dedicato a chi si affaccia al mondo del PLC per la prima volta.
PREFAZIONE
STORIA DEL PLC Il nostro intento è quello di spiegare al lettore i rudimenti del controllore programmabile,partendo dalla nascita
del PLC, illustrando poi la struttura fisica e il concetto di funzionamento, per poi arrivare ai linguaggi di
DOVE E QUANDO
programmazione all'indirizzamento ed infine alla programmazione vera e propia.
HARDWARE
CICLO DI SCANSIONE il seguente corso è stato redatto da Massimo Vergani prendendo spunto da vari file trovati in rete, tra i quali
citiamo "APPUNTI PLC" redatto da Claudio Ferrari, e gentilmente messo a disposizione degli utenti del forum
LINGUAGGI DI PROGRAMMAZIONE nella sezione UP DOWNLOAD .
ZONE E FORMATI
INDIRIZZAMENTI
PROCEDURE
DIDATTICA
http://www.plcforum.info/didattica/CORSO/master.htm21/06/2004 18.18.15
http://www.plcforum.info/didattica/CORSO/pagina5.htm
CICLO DI SCANSIONE
Da questo diagramma di flusso possiamo vedere e sopratutto capire come funziona o (passatemi il
termine) come ragiona un PLC
una cosa scontata ma fondamentale è che il plc esegue il ciclo di scansione solo quando il suo modo di
funzionamento è su RUN o su PROGRAM, mai quando è su STOP. questi stati , a seconda del plc ,
sono selezionati da un selettore fisico posto sulò plc o da un comando impartito tramite il computer
direttamente collegato al PLC per la programmazione.
la prima operazione che compie è la lettura degli ingressi, e con questo intendiamo propio tutti , digitali ,
analogici, on board o su bus di campo (su schede remotate ovvero collegate al plc tramite una rete di
comunicazione).
Dopo aver letto tutti gli ingressi , il loro stato viene memorizzato in una memoria definita REGISTRO
IMMAGINE DEGLI INGRESSI.
A questo punto viene elaborato il programma. Le istruzioni di comando vengono elaborate in Sequenza
dalla cpu.
in fine , il contenuto dell'immagine delle uscite viene scritto sulle uscite fisiche ovvero le uscite vengono
attivate.
Poichè l'elaborazione delle istruzioni si ripete continuamente, si parla di elaborazione ciclica, Il tempo
che il controllore impiega per una singola elaborazione delle istruzioni del programma, è denominato
tempo di ciclo .
INDIETRO
LINGUAGGI DI PROGRAMMAZIONE
TIPOLOGIE
LADDER
INSTRUCTION LIST
STRUCTURED TEXT
GRAFCET
http://www.plcforum.info/didattica/CORSO/indice2.htm21/06/2004 18.18.36
http://www.plcforum.info/didattica/CORSO/pagina6.htm
LINGUAGGI DI PROGRAMMAZIONE
Normativa IEC1131-3:
LINGUAGGI DI PROGRAMMAZIONE:
● GRAFICI :
● LETTERALI :
http://www.plcforum.info/didattica/CORSO/pagina6.htm21/06/2004 18.18.40
http://www.plcforum.info/didattica/CORSO/pagina7.htm
LINGUAGGI DI PROGRAMMAZIONE
LADDER
Normativa IEC1131-3:
● Contatto normalmente aperto. Lo stato della linea alla sinistra viene preso dalla linea alla destra solamente se lo stato della
variabile booleana del contatto è ON.
● Contatto normalmente chiuso. Lo stato della linea alla sinistra viene preso dalla linea alla destra solamente se lo stato della
variabile booleana del contatto è OFF. /1Normativa IEC1131-3
Il linguaggio Ladder Permette una rappresentazione della logica di comando simile allo schema eletromeccanico, poiché utilizza la stessa
simbologia.
1. I segni grafici sono strutturati in reti delimitate da barre a sinistra e a destra, dette barre di alimentazione.
2. Le linee di collegamento dei segni grafici possono essere orizzontali o verticali e il loro stato di
LINGUAGGI DI PROGRAMMAZIONE
INSTRUCTION LIST
Normativa IEC1131-3:
Questo linguaggio di programmazione è composto da una sequenza di istruzioni scritte in linguaggio mnemonico.
Ogniiistruzione comprende un indirizzo, un codice, seguito da un eventuale modificatore, e uno o più operandi, separati da
virgole. Nel confronto con gli altri linguaggi trova una corrispondenza diretta con diagramma ladder.
Esempio di programma scritto il lista istruzioni e sua corrispondenza con diagramma ladder
http://www.plcforum.info/didattica/CORSO/pagina8.htm21/06/2004 18.19.00
http://www.plcforum.info/didattica/CORSO/pagina9.htm
LINGUAGGI DI PROGRAMMAZIONE
STRUCTURED TEXT
Normativa IEC1131-3:
http://www.plcforum.info/didattica/CORSO/pagina9.htm21/06/2004 18.19.10
http://www.plcforum.info/didattica/CORSO/pagina10.htm
LINGUAGGI DI PROGRAMMAZIONE
GRAFCET
Normativa IEC1131-3:
ZONE E FORMATI
Normativa IEC1131-3:
Nel PLC sono presenti 5 zone che identificano tipologie di dispositivi o aree di memoria
con funzione assegnata.
Bit (X)
http://www.plcforum.info/didattica/CORSO/pagina11.htm21/06/2004 18.19.43
http://www.plcforum.info/didattica/CORSO/pagina12.htm
E' necessario fare molta attenzione agli indirizzi di memoria utilizzati. infatti come si vede dalla tabella seguente a volte
i vari formati si sovrappongono. Se ad esempio utilizziamo la %MW0 o la %MW1, non potremo usare anche la %MD0
o la %MD1 , altrimenti avremmo dei valori non reali. Attenzione sopratutto alle Dword, ad esempio se usiamo la %
MD0, non possiamo usare la MD1, la prima libera sarà %MD2, infatti sia %MD0 che %MD1 utilizzano la %MW1
http://www.plcforum.info/didattica/CORSO/pagina12.htm21/06/2004 18.20.00
PLC Forum - Didattica
DIDATTICA
HOME
Le immagini grafiche, i bottoni e i testi contenuti in questo sito Web sono di proprietà
di Associazione PLC FORUM e non possono essere copiati, utilizzati o distribuiti senza il
consenso esplicito di Associazione PLC FORUM, eccetto che con un browser HTML.
HOME
www.plcforum.it
.
N.B.: Questo corso è tuttora in fase di sviluppo, infatti troverete alcuni capitoli ancora vuoti, scusateci,
verranno pubblicati al più presto.
INDICE :
Algebra booleana
Teorema di De Morgan
Seconda parte
Sistemi di numerazione
PLC Siemens
PLC Omron
PLC Telemecanique
PLC Hitachi
Altri PLC
Bibbliografia
Link
PRIMA PARTE
Il PLC (Programmable Logic Controller) nasce intorno agli anni '70 come sistema di controllo nelle
fabbriche produttrici di materiali pesanti, in sostituzione dei sistemi che utilizzano relè.
Oggigiorno il PLC ha in gran parte soppiantato i quadri a logica cablata a relè, esso è considerato il
punto di intermediazione tra elettromeccanica ed elettronica.
● Unità alimentatore
Alcuni modelli di PLC hanno l'alimentatore direttamente dalla rete 230V, altri modelli
invece usano un'ingresso a 24VDC, il quale viene solitamente poi ridotto a 5V per la
CPU.
CPU dall'inglese Central Processing Unit è il cuore del sistema, le sue funzioni sono:
● Unità di memoria
L'unità di memoria dei PLC può essere di diversi tipi: RAM, ROM, PROM, EPROM,
EEPROM.
In genere le memorie di tipo RAM vengono utilizzate per la memoria dati e la memoria
programma in esecuzione, esse sono di tipo volatile, cioè perdono il contenuto se viene
a mancare tensione, quindi devono essere tamponate da batteria.
Esistono tante tipologie di unità ingresso e uscita in seguito trovate un breve riassunto,
per informazioni dettagliate potete fare riferimento ai manuali hardware dei rispettivi
PLC, oppure richiedermeli via e-mail.
in tensione 0-10V
in corrente 4-20mA
PNP (transistor)
NPN (transistor)
a relè
a triac
conteggio veloce
posizionamento assi
comunicazione
PID
seriali
AVANTI >
SECONDA PARTE
Algebra booleana
Teorema di De Morgan
Sistemi di numerazione
Algebra booleana
L'algebra di Boole (1815/1864) venne sviluppata come modello matematico da applicarsi alle
operazioni sugli insiemi formati da due soli valori (0,1).
CONCETTI FONDAMENTALI:
POSTULATI:
Proprietà commutativa:
A+B=B+A
A*B=B*A
Proprietà distributiva:
A+(B*C)=(A+B)*(A+C)
A*(B+C)=A*B+A*C
Elementi identità:
0+A=A
1*A=A
Uguaglianze:
A+A/=1
A*A/=0
TEOREMI:
Teorema di idempotenza:
A+A=A
A*A=A
Teorema dell'assorbimento:
A+A*B=A
A*(A+B)=A
A+1=1
A*0=0
Teorema dell'associazione:
A+(B+C)=(A+B)+C
A*(B*C)=(A*B)*C
Teorema di De Morgan
A+B(tutto negato)=A/*B/
A*B(tutto negato)=A/+B/
quindi:
Sistemi di numerazione
Numerico decimale:
0,1,2,3,4,5,6,7,8,9
Ottale:
0,1,2,3,4,5,6,7
Esadecimale:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Binario:
0,1
bit 0
bit 1
In un circuito di tipo a relè (od a logica cablata) l'attivazione delle uscite avviene in modo
parallelo e quindi il rinfresco delle stesse avviene con tempi legati alla sola risposta delle
singole apparecchiature.
< INDIETRO
AVANTI >
TERZA PARTE
Esempi di programmazione
I linguaggi di programmazione dei PLC sono svariati e soddisfano in genere le necessità dell'operatore che si
avvicina a tale ambiente.
Anche in questo settore, si è sentita l'esigenza di uniformare i linguaggi utilizzati; è infatti nata la norma IEC
1131 la quale, partendo da un'analisi dei linguaggi impiegati dalle varie ditte produttrici, indica quali sono gli
standard.
● Ladder diagram
● Linguaggio booleano (mnemonico o lista istruzioni)
● Linguaggio letterale
● Linguaggio grafcet
Ladder diagram
Il ladder diagram è il primogenito tra i linguaggi utilizzati per la programmazione dei PLC.
Questo si deve al fatto che inizialmente il PLC andava a sostituire la logica cablata che utilizzava i relè.
Il ladder (chiamato anche schema a contatti o diagramma a relè) è tuttora il linguaggio più diffuso, poiché
permette l'avvicinamento al PLC in modo immediato.
E' un linguaggio molto assomigliante ad una elaborazione di tipo elettromeccanico, dove il programma è
scritto all'interno di due barre verticali che indicano le alimentazioni (la barra di destra alcuni software la
omettono).
Ogni riga circuitale è divisa in due parti: zona di test (con le variabili d'ingresso o interne) e zona delle azioni
(comprende le bobine d'uscita ed interne oltre a determinati blocchi funzione).
Nella lettura del programma la CPU esegue una scansione ciclica, che compie il suo percorso segmento per
segmento, da sinistra verso destra e dall'alto verso il basso. Questa differenza tra logica cablata è molto
importante da comprendere prima di iniziare a programmare un PLC. (Per approfondimenti postate nella
sezione PLC didattica del PLCforum).
Linguaggio booleano
Esso è il metodo di programmazione che più si avvicina alla logica con cui lavora il microprocessore.
Tale linguaggio è usato anche dalle console di programmazione. La programmazione assume la sembianza di
una lista istruzioni, dove compare il passo di programma associato al codice della funzione logica e l'indirizzo
a cui si riferisce l'operazione.
Le istruzioni variano da marca a marca. In particolare Siemens utilizza un linguaggio un po' diverso chiamato
AWL.
Linguaggio letterale
Sono quei linguaggi di base informatica, evoluzioni del Basic, C, Fortran o Pascal.
Questo è senza dubbio il linguaggio più potente per la programmazione dei PLC che però non è supportata da
tutti i PLC.
Linguaggio grafcet
Il linguaggio grafcet (Graphe de Commande Etape/Transition) nasce in Francia con l'obbiettivo di creare una
rappresentazione grafica delle funzioni che un ciclo automatico compie.
E' un'insieme di simboli grafici che descrivono delle fasi e delle transizioni che rispettano determinate regole di
sintassi.
Il grafcet è stato normalizzato con la normativa NF C03-190 dell'UTE.
Le varie istruzioni variano da marca a marca e solo in questi ultimi anni quasi tutte le case produttrici stanno
uniformando i linguaggi di programmazione utilizzando la norma IEC 1131.
Quindi tutti i software dichiarati IEC1131 compatibili sono tutti simili tra loro, col le stesse funzioni.
Tabella di esempio delle principali funzioni logiche analizzate tra varie marche di PLC:
LOAD STR STR L L STRT LD STR L
< INDIETRO
AVANTI >
Esempi di programmazione
Veniamo ora alla parte più interessante, faremo degli esempi su come trasferire un circuito a logica cablata su un PLC.
Circuito con combinazione logica AND Circuito con combinazione logica AND
Esso corrisponde al collegamento in serie della
logica cablata
In AWL Siemens:
U E0.0
U E0.1
= A1.0
In AWL Siemens:
O E0.0
O E0.1
= A1.0
Circuito con combinazione logica AND prima Circuito con combinazione logica AND prima di OR
di OR
In AWL Siemens:
U E0.0
U E0.1
O
U E0.2
U E0.3
= A1.0
Circuito con combinazione logica OR prima di Circuito con combinazione logica OR prima di AND
AND
In AWL Siemens:
U(
O E0.0
O E0.1
)
U(
O E0.2
O E0.3
)
= A1.0
< INDIETRO
AVANTI >
U E0.0 (SB1)
U(
O E0.1 (SB2)
O A1.0 (KM1)
)
= A1.0 (KM1)
Esempio di programma utilizzando le istruzioni SET e RESet
U A1.0 (KM1)
= A1.1 (HL1)
Nota: se i pulsanti SB1 e SB2 sono premuti contemporaneamente, sia il SET che il RES vengono
comandati; in questo caso prevale il RES che è l'ultima operazione svolta dal programma.
Esempio di clock variabile utilizzando 2 timer (in AWL Siemens S5) Esempio di clock variabile utilizzando 1 timer (in AWL Siemens S5)
UN T0 UN T0
L KT 050.0 L KT 100.0
SE T1 SE T0
U T1 L T0
L KT 050.0 L KF +50
SE T0 >F
=M0.0 (clock)
U T0
= M0.0 //clock Cambiando la base dei tempi ed il valore di
comparazione, e' possibile variare indipendentemente
il tempo di OFF e di ON
IN COSTRUZIONE
< INDIETRO
AVANTI >