Nonostante i PC abbiano avuto, ed abbiano tuttora, capacità di calcolo sempre maggiori a prezzi sempre
più bassi, permangono alcune barriere che impediscono la completa sostituzione dei PLC.
I limiti che impediscono ai PC di sostituire completamente i PLC sono i seguenti:
Inadeguatezza all'utilizzo in ambiente industriale. Non essendo nati per l'utilizzo in ambienti
estremi, i PC si rivelano particolarmente vulnerabili a tutta una serie di sollecitazioni molto frequenti in ambiente industriale,
quali ad esempio:
Escursioni termiche. Il
ristretto range di temperature in cui è garantito il corretto funzionamento dei
moderni PC, è forse il limite più grosso per l'applicazione di questi
dispositivi in ambienti estremi. L'aumento della potenza di calcolo procede,
infatti, di pari passo con i problemi legati alla dissipazione del calore
generato dai circuiti interni ai microprocessori (è noto che l'aumento della
frequenza di “clock” di un qualsiasi circuito digitale, non può superare i limiti
definiti dalle dimensioni fisiche dello stesso circuito; questo vuol dire che più
aumentiamo la velocità dei microprocessori, e più dobbiamo ridurne dimensioni fisiche,
diminuendo inevitabilmente anche le sue capacità di dissipare il calore endogenerato).
Possiamo quindi concludere che i personal computer si presentano come dei
dispositivi poco adatti ad impieghi in ambienti particolarmente caldi, anche se
appositamente irrobustiti (PC industriali).
Alimentazione di rete soggetta a brusche variazioni.
Vibrazioni meccaniche. Un
esempio rappresentativo di come i comuni PC non siano adatti sopportare
sollecitazioni di tipo meccanico, è l’hard disk. Questo dispositivo è divenuto
ormai di vitale importanza per i moderni PC, ed è anche l'elemento forse più
vulnerabile alle vibrazioni meccaniche, le quali possono anche causare il
definitivo danneggiamento d’interi settori (un hard disk sottoposto alle
vibrazioni meccaniche tipicamente presenti in ambiente industriale, rischia di
bruciare progressivamente tutti i settori del suo disco, divenendo ben presto
inutilizzabile).
Disturbi elettromagnetici di varia natura ed intensità.
Un circuito elettrico è sempre potenzialmente
vulnerabile ai disturbi di natura elettromagnetica, ma questa vulnerabilità è
ancora più marcata nel caso dei PC commerciali. Il crescere della potenza di
calcolo, ha portato i microprocessori di questi dispositivi a lavorare con
delle tensioni sempre più basse, al punto tale da essere divenute ormai
paragonabili con quelle che potrebbero essere indotte, nonostante la presenza
d’eventuali schermature, dai forti campi magnetici generati in ambiente
industriale (in particolare quelli presenti nelle immediate vicinanze di una
macchina o un impianto automatizzato, che invece rappresentano l’ambiente di
lavoro tipico per il PLC). Una situazione del genere può causare tutta una
serie di malfunzionamenti a cadenza casuale, che renderebbe
l'utilizzo del PC del tutto inaffidabile!
In conclusione quindi,
quando si parla di PLC ci si riferisce a dispositivi che, pur avendo una
struttura logica simile a quella dei PC, sono nati, e si sono sviluppati,
proprio per operare in piena efficienza anche in prossimità dei
sistemi che vanno a controllare. Così anche i microprocessori utilizzati
sono scelti tra quelli adatti al particolare tipo di applicazione cui sono
destinati; vale a dire che sono scelti tra quelli che ad esempio garantiscono
una dissipazione del calore adeguata alle temperature che caratterizzano
l’ambiente di lavoro (in quest’ambito è possibile trovare i famosissimi
processori Intel ‘486’, ormai obsoleti per i PC, ma ancora utilizzati dai PLC,
perché realizzati con una densità d’integrazione che ne consenta l'impiego
entro range di temperatura ambiente sufficientemente ampi).
Incapacità di garantire un'esecuzione effettivamente“real – time”
del programma, quando si devono gestire tempi di ciclo brevissimi; come è invece spesso richiesto dalle
applicazioni d’automazione. Questo punto illustra una altra importante
caratteristica a favore dei PLC. Una macchina basata sui tradizionali sistemi
operativi per PC come “Windows”, “Unix” o qualsiasi altro, non può essere efficacemente
utilizzata per controllare un motore, o magari per leggere un “fine
corsa”. Non è possibile farlo perché questi sistemi operativi sono del tipo
“multitasking”! Vale a dire che sono organizzati in modo da espletare
diversi compiti contemporaneamente, e siccome lo fanno utilizzando un solo
processore, non possono seguire in modo costante e continuo un unico processo.
Quindi se dobbiamo leggere un fine corsa non possiamo accontentarci di andare a
verificare se è attivo o meno ogni ‘ms’, perché magari proprio in quel momento
c'è qualcuno che sta giocando con il mouse, ed il computer va a destinare delle
risorse anche a questo secondo processo ( per gestire i movimenti del mouse) e
quindi rischia di perdere, o acquisire in ritardo, l'informazione che gli
arriva dal sensore di fine corsa. Per i motivi appena esposti è opportuno
adottare dei sistemi operativi adatti! Un esempio di sistema operativo “
adatto” potrebbe essere il DOS, un altro sistema operativo veramente “real –
time” è l’OS9 (sistema peraltro complicatissimo, che è sicuramente meglio
evitare).
Normalmente i processi che vengono utilizzati nell'automazione, soprattutto
nelle applicazione di “hard real – time”, hanno dei tempi di ciclo troppo brevi per
un PC, anche se di ultima generazione! I tempi con cui è necessario eseguire la
scansione di tutte le strumentazioni presenti in un impianto, sono in genere
troppo brevi per essere seguiti da un sistema multitasking.
Mancanza di linguaggi mirati alla soluzione dei problemi
d’automazione. Il linguaggio
utilizzato dai PLC è nato e si è sviluppato con il preciso obiettivo di semplificare,
e soprattutto velocizzare, l'esecuzione di programmi, in modo da
garantirne un'esecuzione “real - time” (è composto di un gran numero d’istruzioni, di
veloce esecuzione, strutturate in modo simile a quelle dell’Assembler dei PC,
ma in grado di indirizzare fino al singolo bit di memoria); proprio per
questo motivo risulta essere molto più adatto ad applicazioni di controllo in
ambito industriale, di quanto non lo siano i linguaggi comunemente utilizzati
dai PC. I linguaggi di programmazione dei PC sono di tipo “evoluto” e per fare
un'operazione elementare impiegano, in genere, decine di cicli macchina. Questo
vuol dire che un processore che funziona a 20 MHz, ma impiega 20
cicli per eseguire un'istruzione, è veloce esattamente come un processore
che funziona ad un MHz ed esegue un'istruzione a ciclo; con la
differenza che il secondo è molto meno vulnerabile del primo, a tutti quei
problemi precedentemente analizzati (temperatura, campi magnetici, ecc).
Dato un sistema di
controllo, sappiamo che conoscerne il margine di guadagno
equivale ad avere la possibilità di sapere fino a che punto possiamo aumentarne
l'amplificazione, o tollerare una certa quantità di disturbi
all'interno del ciclo di controreazione (sappiamo che le quantità in gioco
possono essere al massimo pari al margine di guadagno).
Allo stesso modo,
conoscerne il margine di fase significa sapere di poter introdurre un ritardo
all'interno del ciclo di controreazione, che potrà al massimo essere pari al
valore assunto dal margine di fase stesso. La conoscenza di questo
parametro ci dà un’indicazione di estrema importanza del massimo ritardo
tollerabile nell'esecuzione della controreazione.
Di conseguenza se il
nostro sistema controreazionato ha un margine di fase di un secondo e noi
impieghiamo più di un secondo per eseguire il nostro controllo, il sistema va
in ciclo limite (nella migliore delle ipotesi si limita ad
oscillare, ma ovviamente potrebbe anche andare direttamente in instabilità)!
In conclusione quindi, se
abbiamo un sistema controreazionato con un margine di fase di un secondo
→ il nostro sistema di controllo non potrà impiegare più
di mezzo secondo per eseguire i suoi calcoli, perché nella
pratica già a mezzo secondo il sistema comincia ad andare in ciclo limite
(in questa sede non ci soffermeremo oltre su quest'ultimo aspetto, ma è
comunque utile sapere che i tempi in gioco sono quelli portati ad esempio).
La cosa che c’interessa
rimarcare adesso, è che in queste applicazioni, per eseguire tutti i calcoli
necessari al controllo, si hanno a disposizione margini di tempo ridottissimi;
per cui, se noi realizziamo il controllo mediante un dispositivo di calcolo
sufficientemente “veloce”, rispetto al processo da controllare,
avremo un sistema che rischia di andare in instabilità, con la reale
possibilità di danneggiare l'impianto.
Per quanto riguarda
l'inapplicabilità del multitasking in automazione industriale,
dobbiamo aggiungere che in realtà questo non è sempre del tutto vero. A non
essere applicabile è la versione tradizionalmente usata nei sistemi operativi
dei PC, ma esiste un'altra forma di multitasking ottimizzato proprio
per l'automazione industriale. Questo secondo approccio consente, una volta
noto il tempo limite entro cui il sistema può essere controllato, di
dimensionare il multitasking in modo tale da garantire sempre
l'esecuzione del programma fondamentale entro il tempo limite.
Così ad esempio, supponendo di avere un tempo limite di mezzo secondo, si
progetta il multitasking in modo da garantire in primo luogo l'esecuzione del
programma fondamentale, e poi se rimane
ancora tempo all'interno del “mezzo secondo” di tempo utile, dedicare risorse
ad altre operazioni. Nel caso in cui l'esecuzione del programma fondamentale
richieda 100 ms, avremo a disposizione 400 ms per realizzare il multitasking,
trascorsi i quali dovremo necessariamente tornare l'esecuzione del programma
fondamentale (quei 100 ms sono vincolati in modo da garantire al minimo
l'esecuzione programma fondamentale). Sistemi operativi come ‘Windows’ non
consentono tutto questo, anche se in alcune versioni come ‘Windows NT’ c'è la
possibilità di arrivare ad un multitasking quasi ideale, ma quel “quasi”
per l'automazione industriale non va bene. Le applicazioni
d’automazione industriale pretendono il ciclo assicurato!
In aggiunta a quanto
sopra, possiamo dire che un'altra grossa differenza tra PC e PLC
risiede nel fatto che, mentre i primi lavorano su “parole” di uno o più byte
(tutte le informazioni sono memorizzate ed elaborate sotto forma di stringhe di
bit a lunghezza standard), i PLC lavorano su singoli bit,
che rappresentano degli stati! Così come i relè potevano
descrivere due soli stati: ‘0’ ed ‘1’; anche nei PLC (che sono
nati proprio per sostituire i quadri a relè) tutte le elaborazioni sono
“orientate al bit”!
Per capire meglio questo
concetto, si può confrontare un’istruzione d’indirizzamento di memoria per PLC,
ed un’analoga istruzione in linguaggio “Assembler” per PC. Nel secondo caso
avremmo un’istruzione che punta almeno ad una stringa d’otto bit (in generale
non è possibile indirizzare locazioni di memoria d’ampiezza inferiore al byte),
mentre nei PLC avremo un'istruzione che indica esattamente in quale bit
di memoria e contenuta l'informazione d’interesse.
|