PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base Prof. Nicola Ingrosso Guida di riferimento all applicazione applicazione dei Microcontrollori Programmabili IPSIA G.Ferraris Brindisi nicola.ingrosso @ ipsiaferraris.it
PLC Generalità sul linguaggio AWL 1/3 I LINGUAGGIO AWL (LISTA DI ) E un linguaggio di programmazione simbolico che fa uso di semplici abbreviazioni orientate al problema e facilmente comprensibili, che rappresentano il nome della funzione ( o istruzione) che la CPU deve eseguire. Un programma viene costituito come una lista di simboli mnemonici e istruzioni che specificano alla CPU quali funzioni deve svolgere e in quale ordine.
PLC Generalità sul linguaggio AWL 2/3 Ogni istruzione del programma è programma. Ogni riga contiene: costituita da una riga di L indirizzo di passo : (o numero di riga) specifica la localizzazione dell istruzione nella memoria utente. Il codice mnemonico dell istruzione: descrive la funzione che la CPU deve eseguire ovvero cosa si deve fare : per esempio in alcuni PLC: LOD legge lo stato di un ingresso AND forma una combinazione logica AND OR forma una combinazione logica OR OUT attribuisce un risultato ad una uscita L operando : contiene gli ulteriori dati necessari ovvero con che cosa lo si deve fare per esempio nel PLC IDEC Micro..: I 0001 con l ingresso 1 Q 0001 con l uscita 1
PLC Generalità sul linguaggio AWL 3/3 INDIRIZZO DI PASSO IL CODICE MNEMONICO L OPERANDO STRUTTURA DI UN RIGA DI PROGRAMMA IN AWL Con i dispositivi di programmazione più semplici il linguaggio AWL è l unico utilizzabile per programmare il PLC. In queste condizioni, la conversione del programma scritto con altri linguaggi LADDER o GRAFCET, in lista di istruzioni è compito del programmatore.
Istruzione LOD LOD (Load = carico) 1) LOD 0.. (rileva il segnale dell ingresso 1) Viene usato all inizio delle programmazioni Permette di memorizzare temporaneamente in una specifica sezione (registro di accumulo) i risultati immediatamente precedenti e di rilevare la condizione degli ingressi e delle uscite successivamente impostati(in particolare per consentire, con l uso delle istruzioni AND LOD e OR LOD di porre in serie o in parallelo blocchi di circuiti precedentemente inseriti nel programma. Quando in combinazione è usata l istruzione NOT, il segnale rilevato è la sua condizione invertita 1) LODNOT 0.. (rileva il segnale dell ingresso 1 invertito) I0 = Esempio: I1= 1 = 1 I0 I1 Uscita abilitata
Istruzione AND AND (serie) Mette in serie il risultato immediatamente precedente l istruzione con la condizione degli ingressi e delle uscite successivamente impostati 1-LOD 0 (rileva il segnale dell ingresso 0) 2-AND 1 (mette in serie il segnale d ingresso 0 precedentemente rilevato con l ingresso 1) Quando in combinazione è usata l istruzione NOT,il segnale rilevato è la sua condizione invertita 2) ANDNOT 1.. (rileva il segnale dell ingresso 1 invertito) I0 = Esempio: I1= 1 = 1 I0 I1 Uscita abilitata
Istruzione OR OR (parallelo) Mette in parallelo il risultato immediatamente precedente l istruzione con la condizione degli ingressi e delle uscite successivamente impostati 1-LOD 3 (rileva il segnale dell ingresso 3) 2-OR 4 (mette in parallelo il segnale d ingresso 3 precedentemente rilevato con l ingresso 4) I3 OR Quando in combinazione è usata l istruzione NOT,il segnale rilevato è la sua condizione invertita I4 2) ORNOT 4.. (rileva il segnale dell ingresso 4 invertito)
Istruzione AND LOD AND (punto di connessione in serie) Mette in serie il risultato immediatamente precedente l istruzione con il risultato temporaneamente memorizzato nel registro d accumulo) I2 LOD I3 I4 1-LOD 2 (rileva il segnale dell ingresso 2) 2-LOD 3 (memorizza temporaneamente nel registro d accumulo l ingresso 2 precedentemente rilevato e poi rileva il segnale d ingresso 3 3-OR 4 (Mette in parallelo l ingresso 3 precedentemente rilevato con l ingresso 4 4-ANDLOD Mette in serie il risultato dell operazione di messa in parallelo (OR) con l ingresso memorizzato nel registro d accumulo. Punto di connessione serie istruzione AND LOD
Istruzione OR LOD OR (punto di connessione in parallelo) Mette in parallelo il risultato immediatamente precedente l istruzione con il risultato temporaneamente memorizzato nel registro d accumulo) I0 I2 LOD I1 I3 Punto di connessione parallelo Istruzione OR LOD 1-LOD 0 (rileva il segnale dell ingresso 0) 2-AND 1 (mette in serie l ingresso 0 3-LOD 2 4-AND 3 5-ORLOD precedentemente rilevato con l ingresso 1 (Memorizza temporaneamente nel registro d accumulo il risultato della precedente operazione di messa in serie (AND) e poi rileva il segnale d ingresso 2) (Mette in serie L ingresso 2 con l ingresso 3) (Mette in parallelo il risultato della messa in serie (OR) degli ingressi 2 e 3 con il risultato della messa in serie (AND degli ingressi 0 e 1 temporaneamente memorizzato nel registro d accumulo)
Istruzione OUT OUT (uscita) Porta in uscita il risultato immediatamente precedente l istruzione indirizzandolo ad una determinata uscita (relè d uscita o relè interno) OR AND OUT 1-LOD 3 (rileva il segnale dell ingresso 3) 2-OR 4 (mette in parallelo il segnale d ingresso 3 precedentemente rilevato con l ingresso 4) 3-AND 5 (mette in serie il risultato dell operazione OR con l ingresso 5 4-OUT 200 (Porta in uscita il risultato dell operazione AND all uscita 200 I3 I5 I4
Istruzione TIM TIM I0 (timer=temporizzatore) Avvia il conteggio d impulsi di temporizzazione quando il risultato dell istruzione immediatamente precedente (che diventa segnale d ingresso per il temporizzatore) diventa attivo TIM 2 125 1-LOD 0 (rileva il segnale dell ingresso 0) 2-TIM 2 (quando il segnale è attivo predispone l operazione di temporizzazione con il temporizzatore n.2) 125 (prefissa un tempo di 12,5 sec per la temporizzazione) 3-OUT 200 (attiva l uscita 200 quando è trascorso il tempo prefissato) Quando il numero degli impulsi contati raggiunge il valore prefissato il temporizzatore attiva la sua uscita.il valore contato viene azzerato e un successivo ciclo di temporizzazione è pronto a partire nuovamente.
Istruzione CNT 1/3 CNT (contaimpulsi) Il controllore è corredato di 2 tipi principali di contaimpulsi: contaimpulsi normali ad incremento ( contrasseganti dai numeri 0-44 ) e contaimpulsi reversibili contrassegnati dai numeri 45-46-47). I contaimpulsi reversibili sono di 2 tipi: un tipo predisposto per due diversi ingressi d impulso in incremento (UP) e uno per l impulso in decremento (DOWN) l altro tipo predisposto con un solo ingresso d impulso, ma con l aggiunta di un ingresso per la selezione di conteggio in incremento o decremento.
Istruzione CNT 2/3 CNT (contaimpulsi tipo 1) Questa istruzione richiede per la predisposizione 2 seganli; il segnale di ripristino (reset) e il segnale d impulso. Quando il numero d impulsi contati raggiunge il valore prefissato il contaimpulsi attiva la propria uscita. I0 I1 Reset Impulsi CNT 1 4 1-LOD 0 (rileva il segnale dell ingresso 0 di reset) 2-LOD 1 (rileva il segnale dell ingresso 1 di impulso di conteggio) 3-CNT 1 (predisposizione l operazione di conteggio per il contatore n.2) 4 (prefissa la quantità d impulsi di fine conteggio) 4-OUT 200 (attiva l uscita 200 quando è raggiunto il numero di impulsi prefissato)
Istruzione CNT 3/3 CNT (contaimpulsi) Questa istruzione richiede per la predisposizione 3 seganli; il segnale di ripristino (reset) e il segnale d impulso (UP), il segnale d impulso (DOWN). Quando il numero d impulsi contati raggiunge il valore ZERO il contaimpulsi attiva la propria uscita. I0 reset CNT 1-LOD 0 (rileva il segnale dell ingresso 0 di reset) 2-LOD 1 (rileva il segnale dell ingresso 1 di impulso di conteggio UP) 3-LOD 2 (rileva il segnale dell ingresso 2 di impulso di conteggio DOWN) 4-CNT 1 (predisposizione l operazione di conteggio per il contatore n.1) 30 (prefissa la quantità d impulsi di fine conteggio) 5-OUT 200 (attiva l uscita 200 quando è si raggiunge il valore zero) I1 Impulso UP 1 I2 Impulso DOWN 30
Istruzione SET e RST SET RST (attivazione) (ripristino) Le uscite, i relè possono essere attivati (portati alla condizione ON) o ripristinati (portati alla condizione OFF) dalle istruzioni SET e RST I0 SET 200 I1 RST 200
Istruzione END END (fine del programma) xx) ) END.. (termina il programma) Questa istruzione viene usata per porre fine al programma. L esecuzione di tutte le istruzioni, dall indirizzo 0 della memoria all indirizzo dove l istruzione END viene programmata, viene definita scansione e il tempo necessario per il suo svolgersi viene chiamato tempo di scansione.
Esempi di programmazione Esempio1 di applicazione sui componenti fondamentali Nell applicazione la logica di controllo richiede che si azioni un motore (uscita ) quando viene premuto il pulsante s2 (I0) a condizione che il pulsante di Stop (I1) sia chiuso e che il contatto del Relè Termico sia chiuso. Con la segnalazione di Motore On, Motore OFF e Relè Termico attivato Fase I0 I1 I2 Neutro Motore stop start Q1 Lampada Verde I1 I0 PLC Q2 Lampada Rossa I2 Q3 Lampada Gialla
Esempi di programmazione n.istruzione Codice Commento 000 LOD 0 legge il valore ingresso 0 (pulsante di start) 001 OR 200 effettua il parallelo con 200 (autoritenuta) 002 AND 1 effettuata la serie con ingresso 1 (pulsante di stop) 003 AND 2 effettuata la serie con ingresso 2 (relè termico) 003 OUT 200 attiva l uscita 200 (motore) 004 LOD 200 legge lo stato uscita 200 005 OUT 201 se 200 = 1 (attiva lampada verde) 006 LODN 200 legge la negazione stato uscita 200 007 OUT 202 se 200 = 0 negato RCL=1 (attiva lampada rossa) 009 LODN 2 legge la negazione stato ingresso 2 (relè termico) 010 OUT 203 se 2 = 0 negato RCL=1 (attiva lampada gialla) 008 END Fine del programma