Introduzione ai PLC
Introduzione
Section titled âIntroduzioneâUn PLC è un dispositivo digitale elettronico contenente uno o piĂš processori operanti in logica binaria.
Gli acronimi utilizzati per nominare questo oggetto hardware sono diversi:
- PLC: Programmable Logic Controller,
- API: Automate Programmable Industriel,
- SPS: Speicherprogrammierbare Steuerung.
Un PLC è un oggetto hardware componibile. à in grado di ricevere in ingresso dati da sensori, elaborare dati e programmi al proprio interno, scambiare dati attraverso reti di comunicazione e produrre uscite che comandano attuatori (o dispositivi di segnalazione).
Il PLC viene usato in contesti in cui si deve comandare un numero elevato di attuatori con la possibilitĂ di avere comandi differenziati e complessi e poter variare in modo facile il funzionamento del sistema (tramite riprogrammazione software). Il PLC viene usato in ambito industriale per il controllo di macchine automatiche, impianti e processi complessi.
Ă importante fare chiarezza sulla terminologia utilizzata. Le grandezze fisiche piĂš discusse in questi articoli sono:
- corrente: quantitĂ di carica che attraversa una sezione di filo conduttore nellâunitĂ di tempo,
- tensione: differenza di potenziale presente tra due punti di un circuito,
- resistenza: tendenza del conduttore ad impedire il passaggio della corrente.
Ecco una tabella, ripresa dallâarticolo Analisi per Fisica II che riassume le proprietĂ di queste (ed altre) grandezze fisiche.
| Grandezza | Nome* | UnitĂ di Misura | Simbolo | SI# |
|---|---|---|---|---|
| tempo | t | secondo | [s] | |
| massa | m | chilogrammo | [kg] | |
| energia, lavoro, calore | L (lavoro) W (work) | joule | [J] | |
| resistenza elettrica | R | ohm | [] | |
| tensione elettrica (o potenziale elettrico) | V (continua) v (alternata) | volt | [V] | |
| intensitĂ di corrente | I (continua) i (alternata) | ampere | [A] | |
| potenza | P | watt | [W] |
* la colonna Nome indica la lettera con cui viene comunemente indicato un valore corrispondente a tale grandezza fisica. Al nome si possono aggiungere valori in pedice o in apice. Ad esempio, tutte e tre le variabili seguenti sono relative alla misura di una intensitĂ di corrente:
# la colonna SI esprime la formula (o le formule) per ricavare tale unitĂ di misura grazie alle altre unitĂ di misura del Sistema Internazionale. Ovviamente, da tali formule, se ne possono ricavare molte altre a seconda della necessitĂ . #
Le grandezze non sono poste in tabella in ordine di importanza. Non esiste un ordine giusto per tali colonne perchĂŠ tutte le formule sono legate tra loro.
I regimi di funzionamento sono:
- DC: direct current (corrente continua),
- AC: alternating current (corrente alternata).
La tipologia di segnali trattati prevede due grandi famiglie:
- segnali periodici, caratterizzati dai seguenti parametri:
- Valore di picco: massimo valore positivo del segnale,
- Valore di picco-picco: ampiezza del segnale: dal picco maggiore a quello minore,
- Valore efficace: valore di picco fratto radice di due,
- Periodo: durata della forma del segnale che si ripete,
- Fase: ritardo relativo allâattraversamento dello zero
- segnali non periodici: caratterizzati da un valore costante nel tempo.
Per i segnali periodici, la frequenza f è lâinverso del periodo e si misura in hertz (simbolo Hz).
Il Relè
Section titled âIl RelèâIl relè è un dispositivo elettronico che utilizza variazioni di corrente (in ingresso) per influenzare le condizioni di un altro circuito. Il relè è un interruttore azionato da un elettromagnete.
Il relè elettromagnetico è costituito da una bobina di filo la quale, se percorsa da corrente, attrae verso di sĂŠ una struttura di metallo chiamata âancoraâ (anchor) che a sua volte apre o chiude un contatto. Dati i terminali A, B e C. Se non passa corrente nel relè, i terminali A e B sono in contatto. Al passaggio di corrente, la bobina si carica e attrae a sĂŠ lâancora che apre il contatto tra A e B e lo chiude tra B e C.
Il relè consente di avere bobina e terminali anche su circuiti differenti, con sorgenti di potenza diverse. Dal punto di vista circuitale, il simbolo del relè comprende il simbolo della sua bobina e il simbolo del suo contatto.
Lâutilizzo diffuso dei relè negli impianti industriali ha diversi inconvenienti:
- manutenzioni lunghe e complicate,
- ingombro e consumo di corrente elevati,
- ridotta affidabilitĂ ,
- limitato numero di terminali: utilizzo di relè in parallelo.
Il motivo principale per il quale nasce lâesigenza del PLC come oggetto hardware è proprio la sua capacitĂ di rimpiazzare diverse centinaia di relè nei sistemi di controllo industriali.
I vantaggi del PLC rispetto alla logica cablata a relè sono:
- semplificazione del cablaggio,
- semplificazione del controllo di anomalie e rilevamento di guasti,
- possibilità di programmazione di relè ausiliari, temporizzatori e contatori senza aumentare lo spazio occupato del quadro elettrico,
- possibilitĂ di modificare il funzionamento dellâautomatismo anche durante il suo funzionamento,
- alta affidabilitĂ del prodotto.
Moduli di un PLC
Section titled âModuli di un PLCâCome giĂ detto, il PLC è un oggetto hardware componibile, dunque modulare. Si compone dei moduli di: alimentazione, I/O, comunicazione, CPU.
Modulo di alimentazione
Section titled âModulo di alimentazioneâFornisce alimentazione a tutti i moduli collegati. Alimentazione tipica di un PLC: 24 Vdc. Il modulo di alimentazione viene a sua volta alimentato dalla tensione di rete 230 Vac.
Moduli di ingresso
Section titled âModuli di ingressoâI moduli di ingresso consentono al PLC di leggere lo stato dei sensori e dei comandi ad esso collegati.
Gli ingressi collegabili ai moduli di ingresso di un PLC possono fornire informazioni di tipo digitale o analogico.
Isolamento ottico degli ingressi
Section titled âIsolamento ottico degli ingressiâLâoptoisolatore (chiamato anche fotoaccoppiatore) è un componente elettronico che permette di trasferire un segnale fra due circuiti, mantenendo lâisolamento galvanico fra gli stessi. Lâisolamento galvanico è una tecnica di condizionamento (del segnale) che impedisce uno spostamento diretto dei portatori di carica (gli elettroni) tra circuiti, implementando però un protocollo di comunicazione che consente lo scambio di informazioni.
I circuiti si isolano in questo modo perchĂŠ operano a regimi di funzionamento molto diversi tra loro. Ad esempio, il primo opera a 24 Vdc e il secondo a 230 Vac. Lâinformazione viaggia sul mezzo ottico in modo da permettere la comunicazione e mantenere allo stesso tempo una netta separazione elettrica tra i circuiti.
A livello circuitale, il fotoaccoppiatore è formato da un diodo LED ed un foto-transistor.
Lâoptoisolatore protegge il circuito interno del PLC (principalmente il processore montato sul modulo CPU) da possibili sovraccarichi della rete veicolati dai moduli di ingresso.
Modulo CPU
Section titled âModulo CPUâIl modulo CPU è il modulo che governa tutto il PLC, su cui gira il programma. Può avere memoria interna e/o esterna.
Le parti piĂš importanti di questo modulo sono:
- unitĂ di gestione: informazioni di gestione del PLC,
- archivio di temporizzatori e contatori funzionali allâoperativitĂ del PLC,
- memorie immagine del processo: informazioni in ingresso e comandi in uscita del processo,
- memoria utente: in cui vengono scritti i programmi che il PLC deve eseguire,
- interfaccia per il dispositivo di programmazione: comunica con gli strumenti di programmazione,
- bus dati, comando, indirizzi per la veicolazione dei dati tra le varie componenti e con lâesterno della CPU.
A bordo della scheda madre del PLC è situato il processore (modulo CPU) con dei blocchi di memoria.
La memoria è suddivisa in:
- Memoria di Sistema: sistema operativo (firmware) del PLC, costituito da:
- routine di autotest iniziale,
- dati del setup,
- librerie.
- Memoria di Programma: sequenza di istruzioni (programma utente) che verrĂ eseguita dalla CPU:
- RAM: sviluppo e collaudo,
- EPROM: programma definitivo,
- EEPROM: fase di sviluppo e versione definitiva.
- Memoria Dati: informazioni relative alle varie aree dati interne e di I/O (memoria di tipo RAM),
- I/O e merker.
Lâindirizzamento degli I/O è effettuato proprio da questâultima memoria: I/O e merker.
Memoria di I/O e merker
Section titled âMemoria di I/O e merkerâIn questa memoria vengono mappati tutti i valori degli input e degli output digitali ed analogici: la memoria immagine dellâI/O. Inoltre, è presente una sequenza di variabili allocabili dallâutente e utilizzabili per immagazzinare dei dati temporanei: i merker.
Questa memoria è quindi divisa in:
- Memoria Immagine dellâI/O,
- Memoria Immagine degli Ingressi Digitali,
- Memoria Immagine degli Ingressi Analogici,
- Memoria Immagine delle Uscite Digitali,
- Memoria Immagine delle Uscite Analogiche,
- Memoria dei Merker.
Ogni memoria è limitata.: ogni PLC può collegare un numero finito di ingressi e di uscite, in quanto la memoria in cui li mappa è finita.
I/O digitali
Section titled âI/O digitaliâOgni IN e OUT dei vari moduli digitali è un bit, associato per esempio ad un sensore ON/OFF o ad un relè. Per identificare una singola uscita (lettere O oppure Q) o un singolo ingresso (lettera I), bisogna specificare:
- modulo: in che gruppo di 8 bit si trova (byte),
- morsetto del modulo a cui è collegato (bit del byte).
Un ingresso digitale si identica con la seguente sintassi:
% + I + numero byte + . + numero morsetto (bit)
Ipotizzando di collegare un sensore al morsetto (evidenziato in blu) corrispondente al bit n°3 del byte n°0, il suo nome sarebbe: %I0.3.
Un uscita digitale si identica con la seguente sintassi:
% + Q (oppure O) + numero byte + . + numero morsetto (bit)
Ipotizzando di collegare un attuatore al morsetto (evidenziato in verde) corrispondente al bit n°5 del byte n°1, il suo nome sarebbe: %O1.5.
Se un modulo non esaurisce tutti e 8 i bit possibili del byte, aggiungendo un altro modulo si inizia a contare comunque dal byte successivo.
Nei PLC compatti, lâI/O può essere talmente limitato da non richiedere la differenziazione tra numero byte e numero morsetto. In tal caso gli ingressi sono chiamati %I0, %I1, ⌠%In e stessa cosa vale per gli output.
I/O analogici
Section titled âI/O analogiciâLo spazio di indirizzamento che occupa un modulo digitale dipende dai bit di risoluzione del convertitore Analogico-Digitale, arrotondando per eccesso al numero di byte in grado di contenere tale valore di bit.
Ad esempio, se il modulo AI (Analog Input) ha un convertitore a 10 bit, ogni dato letto da un ingresso analogico occuperebbe 10 bit. Visto che le âtaglieâ (size) della memoria sono solitamente organizzate in byte, 10 bit occupano comunque 2 byte (di cui non verranno utilizzati 6 bit).
N.B. risoluzione: numero di bit del convertitore AD.
Gli ingressi analogici vengono mappati nella memoria immagine degli ingressi analogici con un range di indirizzi che varia da un PLC ad un altro. La memoria può essere organizzata in bit, byte, word (2 byte) o double (4 byte).
Ad esempio, 32 bit posso essere visti come: 32 bit, 4 byte, 2 word o 1 double.
Per indirizzare un ingresso analogico bisogna sapere:
- quanto spazio occupa,
- a che indirizzo di partenza si trova.
Non sono piĂš utili le informazioni di modulo (byte) e morsetto (bit) ma solo lâindirizzo con cui viene mappato in memoria immagine.
Gli indirizzi possono cambiare da costruttore a costruttore.
| Tipologia di indirizzamento | Struttura | Esempio |
|---|---|---|
| Ingressi analogici | % + I + tipo dato + indirizzo | %IW40 |
| Uscite analogiche | % + Q (oppure O) + tipo dato + indirizzo | %QB3 |
| Cella di Memoria | % + M + tipo dato + indirizzo | %MD2 |
Spesso gli indirizzi degli I/O analogici non partono da 0 ma da un valore diverso perchĂŠ la memoria immagine riservata agli analogici segue (a volte) quella dei digitali e quindi riprende la numerazione successiva allâultima word occupata dagli I/O digitali.
I/O remoti
Section titled âI/O remotiâQuando lâimpianto è distribuito in una vasta area, può essere conveniente lâinstallazione di moduli remoti. Ne esistono vari tipi di moduli: analogici/digitali, ingressi, uscite o moduli misti. Questi moduli richiedono un modulo master (o scanner) che deve essere installato in uno slot libero del PLC. Il modulo scanner dialoga con i moduli remoti: ne può gestire fino ad alcune decine. Con tali moduli si risparmia:
- spazio nel quadro del PLC,
- posa di un grande numero di cavi,
- cablaggio di numerosi fili con relativa complessitĂ di collegamento.
Inoltre si ha una maggiore facilitĂ di individuazione dei guasti.
Sistemi Operativi
Section titled âSistemi OperativiâI sistemi operativi a bordo dei PLC sono di tipo real time (RTOS: Real Time Operating Systems). Devono garantire il rispetto molto stretto dei tempi, senza necessariamente essere molto veloci.
I piĂš diffusi RTOS per PLC sono:
- VxWorks,
- QNX,
- Windows Compact Embedded.
Moduli di comunicazione
Section titled âModuli di comunicazioneâI moduli di comunicazione (o moduli di rete) servono al PLC per comunicare con altri PLC, con alti computer ed altri dispositivi smart (pannello operatore, telecamera, âŚ). La comunicazione di un PLC verso un computer o altri dispositivi complessi avviene connessioni standard: RS232, RS422/RS485, USB, TCP/IP, HDMI.
La comunicazione di un PLC verso altri PLC o dispositivi del mondo industriale avviene tramite protocolli specifici, ad esempio: Profibus, DeviceNet, TCP/IP, Modbus, Controlnet, Powerlink, Ethercat, Profinet, CAN BUS, Sercos.
Bus di campo - Fieldbus
Section titled âBus di campo - FieldbusâUn protocollo di comunicazione è un insieme di regole che definiscono come un pacchetto di dati digitali debba essere scambiato.
Il mezzo fisico è il mezzo che trasmette fisicamente le informazioni.
Il bus di campo è lâinsieme costituito da protocollo e mezzo fisico. Si specifica âdi campoâ (field) perchĂŠ nellâautomazione industriale si intende lo spazio fisico occupato dalla parte della macchina dove sono alloggiati sensori e attuatori. I sensori sono spesso chiamati âsensori di campoâ (field sensors).
Le comunicazioni sono in gran parte ancora cablate con rame. Le trasmissioni wireless sono rare per problemi di affidabilità e sicurezza. Le trasmissioni in fibra ottica sono usate quasi solamente dove si presentano problemi di interferenze elettromagnetiche (la luce non è disturbata dai campi elettromagnetici).
Tra i piĂš diffusi bus di campo, ci sono: PROFIBUS e PROFINET (di Siemens), CAN (di Bosch), POWERLINK (di B&R), ETHERCAT (il bus di campo piĂš veloce), MODBUS (di Modicon).
Moduli speciali
Section titled âModuli specialiâTra i moduli speciali si possono trovare:
- Modulo controllo assi,
- modulo PID (proportional-integral-derivative, proporzionale-integrale-derivativo),
- schede di espansione di memoria,
- moduli di backup,
- web server TCP-IP,
- porte seriali.
Funzionamento di un PLC
Section titled âFunzionamento di un PLCâTempo di ciclo
Section titled âTempo di cicloâEseguire il programma utente dallâinizio alla fine vuol dire effettuare un ciclo (il cosiddetto ciclo macchina).
Lâelaborazione ciclica è il tempo che il controllore impiega per una singola elaborazione del blocco di tutte le istruzioni del programma. Il tempo di ciclo è il tempo necessario per esecuzione del programma utente una volta sola. Il tempo di ciclo si può calcolare sommando il tempo necessario per eseguire ogni istruzione.
Eventi molto rapidi possono essere âpersiâ tra un ciclo e il successivo. Il tempo di ciclo di esecuzione del PLC costituisce un limite alla rapiditĂ di risposta del PLC ad un allarme.
Il ciclo di elaborazione non ha durata costante. Se, ad esempio, sono presenti istruzioni condizionali, allora il ciclo potrebbe durare di piĂš o di meno in base al blocco di istruzioni che vengono eseguite.
Il tempo di ciclo è costantemente controllato da un apposito sistema definito watchdog.
ModalitĂ di funzionamento
Section titled âModalitĂ di funzionamentoâFunzionamento classico: ciclo sincrono in ingresso e in uscita
Il PLC esegue ciclicamente e continuativamente il software caricato su di esso. Il software si può comporre di piÚ programmi diversi, ciascuno dei quali controlla una certa porzione o funzionalità della macchina.
Si effettua una elaborazione ciclica composta dai seguenti blocchi:
- Lettura dello stato di tutti gli ingressi,
- memorizzazione nel registro immagine ingressi.
- Elaborazione sequenziale delle istruzioni: le istruzioni di
comando vengono elaborate in sequenza dalla CPU,
- memorizzazione risultati nel registro immagine uscite.
- Attivazione sequenziale di tutte le uscite.
- tornare al punto 1.
Il sistema operativo del PLC gestisce lâalternarsi delle tre fasi e provvede alla lettura degli ingressi, alla scrittura delle uscite e allâesecuzione del codice.
Il sistema operativo alloca del tempo della CPU del PLC anche allo svolgimento di operazioni di routine (verificare le tensioni di alimentazione, verificare se un modulo è stato aggiunto o tolto a caldo e cosÏ via).
Alcune parti del codice non sono eseguite ciclicamente, ma solo al verificarsi di un certo evento (solitamente critico). Queste parti sono considerate interrupt che fanno interrompere il normale funzionamento ciclico e fanno saltare il codice alla routine che gestisce il problema, per poi tornare (eventualmente) al punto da cui il ciclo si era interrotto.
Il ciclo di esecuzione del PLC basato su questo schema ha il vantaggio di âcongelareâ gli ingressi per tutta la durata dellâelaborazione del programma utente e quindi non si corre il rischio che alcune parti di programma eseguano elaborazioni su variabili di ingresso non omogenee.
Esempio:
Allâistante di âcongelamentoâ degli ingressi, il sensore ABC fornisce unâinformazione numerica pari a 5 e durante il ciclo di esecuzione il valore del sensore cambia. Il programma, per quel ciclo, leggerĂ sempre il valore 5. Tutte le istruzioni che fanno riferimento al sensore ABC utilizzano il valore 5 fino alla fine del ciclo. Senza il cosiddetto âcongelamentoâ, unâistruzione allâinizio del ciclo utilizzerebbe il valore 5 e due istruzioni dopo unâaltra istruzioni potrebbe utilizzare un valore di 10 a causa di una nuova lettura da parte del sensore. I dati non sarebbero omogenei.
Il âcongelamentoâ degli ingressi e delle uscite è il modo piĂš classico con il quale lavora un PLC.
Il PLC acquisisce tutti gli ingressi allâinizio del ciclo e li memorizza nellâimmagine degli ingressi. Lâimmagine rimane invariata per tutto il ciclo del PLC. Se gli ingressi variano durante il ciclo, questa variazione non viene considerata. Durante lâelaborazione del programma, le uscite vengono calcolate e memorizzate nellâimmagine delle uscite. Solo a fine ciclo vengono effettivamente inviate ai relativi attuatori.
Vantaggi:
- Completamente sincrono: ingressi e uscite rimangono invariati durante il ciclo,
- Utile per cercare guasti e collaudo: permette in ogni istante una descrizione completa dei valori delle variabili.
Svantaggi:
- Ritardo nellâacquisizione degli ingressi e nel comando delle uscite.
Ciclo asincrono in ingresso e sincrono in uscita
Section titled âCiclo asincrono in ingresso e sincrono in uscitaâQuando si fa riferimento ad un ingresso, questo viene letto direttamente dal campo. Tale lettura non comporta un aumento del tempo in quanto gli I/O sono mappati in zone di memoria: il tempo necessario rimane un tempo di lettura dalla memoria.
Durante lâelaborazione del programma, le uscite vengono calcolate e memorizzate nellâimmagine delle uscite. Solo a fine ciclo vengono effettivamente inviate sul campo.
Vantaggi:
- A paritĂ di istruzioni del programma utente, non si spreca tempo nella memorizzazione dellâimmagine degli ingressi.
- Non si perdono eventuali variazioni dellâingresso durante un tempo di ciclo.
Svantaggi:
- Durante un ciclo, una qualsiasi routine software, se eseguita piÚ volte con gli stessi ingressi, può dare uscite diverse.
- Possibile incoerenza.
Ciclo sincrono in ingresso e asincrono in uscita
Section titled âCiclo sincrono in ingresso e asincrono in uscitaâIl PLC acquisisce tutti gli ingressi allâinizio del ciclo e li memorizza nellâimmagine degli ingressi. Lâimmagine rimane invariata per tutto il ciclo del PLC. Se gli ingressi variano durante il ciclo, questa variazione non viene considerata.
Durante lâelaborazione del programma, le uscite vengono direttamente inviate sul campo, senza essere memorizzate nellâimmagine delle uscite.
Vantaggi:
- A paritĂ di istruzioni del programma utente, non si spreca tempo nella scrittura dellâimmagine delle uscite.
Svantaggi:
-
Scrivere piĂš volte valori diversi sulla stessa uscita nello stesso ciclo potrebbe portare ad oscillazioni dei dispositivi comandati.
-
Lâaggiornamento delle uscite è piĂš rapido, ma possono manifestarsi dei problemi di funzionamento (per esempio, unâuscita ridiventa ingresso, condizionando a sua volta unâaltra uscita).
-
Se due uscite sono settate in due istruzioni âlontaneâ fra loro, si attiveranno in tempi diversi.
Ciclo asincrono in ingresso e asincrono in uscita
Section titled âCiclo asincrono in ingresso e asincrono in uscitaâVantaggi:
-
A paritĂ di istruzioni del programma utente, non si spreca tempo nella memorizzazione dellâimmagine degli ingressi.
-
Non si perdono eventuali variazioni dellâingresso durante un tempo di ciclo.
-
A paritĂ di istruzioni del programma utente, non si spreca tempo nella scrittura dellâimmagine delle uscite.
Svantaggi:
-
Durante un ciclo, una qualsiasi routine software, se eseguita piÚ volte con gli stessi ingressi, può dare uscite diverse.
-
Possibile incoerenza.
-
Scrivere piĂš volte valori diversi sulla stessa uscita nello stesso ciclo potrebbe portare ad oscillazioni dei dispositivi comandati.
-
Lâaggiornamento delle uscite è piĂš rapido, ma possono manifestarsi dei problemi di funzionamento.
-
Se due uscite sono settate in due istruzioni âlontaneâ fra loro, si attiveranno in tempi diversi.
| INPUT | OUTPUT | ||
|---|---|---|---|
| sincrono | asincrono | sincrono | asincrono |
| X | X | ||
| X | X | ||
| X | X | ||
| X | X | ||
Altre modalitĂ di funzionamento
Section titled âAltre modalitĂ di funzionamentoâModalitĂ di lettura indipendenti dallâimmagine degli ingressi possono riguardare anche:
-
ingressi veloci: letti molto di frequentemente,
-
ingressi legati alle routine di interrupt: possono intervenire in qualsiasi momento del ciclo di scansione,
-
I/O analogici.
Quando non si utilizzano le immagini di processo, la lettura di un ingresso viene effettuata nel momento stesso in cui viene invocata e la modifica dello stato di unâuscita si ripercuote immediatamente sullâuscita del PLC. Ă possibile strutturare il ciclo del programma con punti di attesa e feedback.
Gli ingressi asincroni (quelli in cui viene effettuato il refresh in modo indipendente dallâesecuzione del ciclo di programma) possono essere resi sincroni tramite istruzioni CPS (Copy Synchronous) o II (immediate Input). Alcuni PLC che gestiscono gli I/O in modo sincrono possono forzare i valori delle uscite ad essere attuati istantaneamente e non alla fine del ciclo (con istruzioni tipo IMMEDIATE OUT - IO).
Tecniche di programmazione di un PLC
Section titled âTecniche di programmazione di un PLCâIl software di un PLC descrive una regola di comportamento che relaziona i segnali dei sensori (ingresso) con i segnali per gli attuatori (uscite).
In un modello condition-driven si pianificano le azioni da eseguire sulla base di condizioni rilevate sul processo (o interne al controllore).
In un modello state-driven invece si pianificano le azioni in base allo stato di funzionamento del processo.
Condition-driven
Section titled âCondition-drivenâIl programma di controllo comanda determinate azioni sul processo in base al presentarsi di determinate condizioni:
- Eventi segnalati da appositi sensori a bordo macchina,
- Eventi interni al controllore (timer, contatori).
State-driven
Section titled âState-drivenâIl programma di controllo comanda determinate azioni sul processo in base allo stato di evoluzione del processo.
Lo stato di evoluzione del processo dipende dalla sequenza degli ingressi che si sono presentati fino a quel momento.
Stato: uno stato è una condizione di funzionamento del processo che persiste per un periodo di tempo significativo ed è distinguibile da ogni altra condizione di funzionamento. Una condizione di funzionamento si dice distinguibile da ogni altra se è diversa in:
- eventi che vengono accettati nello stato,
- transizioni che si diramano dallo stato,
- azioni che vengono eseguite.
Transizione: risposta ad un evento che causa un cambiamento nello stato del processo.
Esempio di programmazione
Section titled âEsempio di programmazioneâIl sistema è costituito da una macchina che effettua fori circolari tramite una punta rotante (come quella di unâavvitatore). La macchina deve salire e scendere per effettuare i fori su cubi di legno. I cubi vengono movimentati da un rullo e fissati nella sede di lavorazione da unâaltra macchina. Il segnale di âcubo presenteâ avvia motore verso il basso finchĂŠ il sensore di presenza inferiore segnala che la punta è arrivata a fine corsa. Il motore deve invertire la sua corsa e far risalire il pistone finchĂŠ non viene attivato il sensore di fine corsa superiore. A questo punto la macchina foratrice segnala che il cubo può essere sganciato e continuare il suo percorso sul rullo.
Progetto del controllo: condition driven
Section titled âProgetto del controllo: condition drivenâI segnali di ingresso sono: ARRIVO_CUBO, FINE_CORSA_DOWN, FINE_CORSA_UP.
Per ogni evento (o combinazione di tali), si definisce unâazione: AGGANCIAMENTO, MOTORE_RULLO, MOTORE_FORATRICE, MOTORE_FORATRICE_DIREZIONE.
Il programma relativo a questo progetto è qui scritto in pseudocode per semplicità :
IF ARRIVO_CUBO THEN AGGANCIAMENTO := TRUE; MOTORE_RULLO := FALSE; MOTORE_FORATRICE := TRUE; MOTORE_FORATRICE_DIREZIONE := TRUE;END IF;
IF FINE_CORSA_DOWN THEN FORATURA := TRUE; MOTORE_FORATRICE_DIREZIONE := FALSE;END IF;
IF FINE_CORSA_UP AND FORATURA THEN AGGANCIAMENTO := FALSE; FORATURA := FALSE; MOTORE_FORATRICE := FALSE; MOTORE_RULLO := TRUE;END IF;Progetto del controllo: state driven
Section titled âProgetto del controllo: state drivenâIn questo caso si trascura lâagganciamento del blocco di legno al rullo durante la lavorazione.
Fase 1: analisi degli stati operativi del processo, identificati in base alla descrizione del funzionamento della macchina.
Per definire uno stato operativo bisogna rispondere alle domande:
- quali azioni compie la macchina in un dato momento?
- queste azioni sono diverse da quelle che esegue in altri momenti del ciclo?
Esempio:
WAIT: la foratrice è in attesa dellâarrivo del cubo di legno, viene eseguito lâazionamento del motore del rullo.FORATRICE_DOWN: la foratrice scende per effettuare il foro sul cubo.FORATRICE_UP: la foratrice risale per raggiungere la posizione di riposo.
In questa fase si identifica solo la sequenza logica delle operazioni da eseguire: cosa deve fare la macchina senza implementare il come lo fa. Ad ogni stato operativo diverso, si associa uno stato.
La separazione dellâimplementazione dalla progettazione suddivide il problema a blocchi e ne rende piĂš facile sia la comprensione che la ricerca della soluzione.
Fase 2: definizione della topologia di rete. Per ogni stato si definiscono gli eventi che si devono verificare per evolvere verso il nuovo stato.
Fase 3: determinazione delle azioni che devono essere eseguite ad ogni passo.
| stato | azione |
|---|---|
WAIT | MOTORE_RULLO |
FORATRICE_DOWN | MOTORE_FORATRICE_DOWN |
FORATRICE_UP | MOTORE_FORATRICE_UP |
A seguito della costruzione del diagramma degli stati, è importante verificare che:
-
sia stato indicato lo stato iniziale, quello da cui parte la macchina a stati quando il software di controllo viene resettato.
-
non ci sono stati non connessi da cui non parte alcun collegamento,
-
sono assenti stati non raggiungibili: tranne i soli stati iniziali, a tutti gli stati deve arrivare un collegamento.
Costruzione incrementale del diagramma degli stati: la costruzione del diagramma degli stati può avvenire in modo incrementale:
-
individuazione dello stato iniziale (o gli stati iniziali),
-
individuazione delle transizioni a partire dallo stato iniziale,
-
individuazione incrementale di stati e transizioni, ripercorrendo lâevoluzione sequenziale della macchina.
La programmazione state-driven consente di:
- avere decomposizione della complessitĂ della macchina: in ogni stato logico di funzionamento, solo un sottoinsieme di sensori ed attuatori sono di interesse.
- semplificare lâanalisi funzionale del processo: la scomposizione in stati facilita lâanalisi delle fasi operative del processo e la scrittura delle specifiche del software.
- gestire eventuali azioni manuali.