Questo spettacolo è stato segnalato come "Clean" dall'ospite.
--------------------
01 Introduzione
Questa è la terza puntata di una serie di 8 parti.
02
Nell'episodio precedente abbiamo trattato:
* La storia iniziale dei computer nel controllo industriale
* La storia iniziale dei PLC, incluso il modo in cui hanno preso il loro nome
* Chi sono i principali marchi
* Come sono fatti fisicamente
Una descrizione di base dell'architettura della macchina astratta
Un'occhiata molto rapida a come è un programma PLC
Il concetto di scansione
I principali linguaggi di programmazione PLC
I linguaggi di programmazione PLC secondari
La popolarità relativa di ciascun linguaggio di programmazione
03
In questo episodio inizieremo dando un'occhiata a uno dei primi PLC dell'era in cui iniziarono a essere utilizzati su larga scala.
Non proverò neanche a essere esaustivo, darò solo una panoramica generale nel tempo limitato a mia disposizione.
Ho iniziato con un modello più vecchio perché la sua semplicità e le sue funzionalità limitate consentono un'introduzione più facile all'argomento.
--------------------
04 Allen Bradley PLC/2
Il controllore logico programmabile Allen Bradley PLC/2 è stato introdotto sul mercato nel 1977.
Non è stata la loro prima incursione in questo campo, ma è stata la prima veramente di successo.
Non sono a conoscenza di una storia completa della loro linea di prodotti iniziali, ma uno dei loro modelli di vendita iniziali di maggior successo è stato il PLC2/30.
Questo è anche noto come la serie 1771.
--------------------
05 Layout Fisico
Il modulo CPU era una grande scatola di metallo che si trovava accanto alla rack di I/O e vi era collegata con un cavo.
La mensola I/O era una scatola con il fronte aperto e una serie di fessure in cui potevano essere inserite le scatole alte e strette contenenti l'I/O.
06
Un backplane attraversava la parte posteriore, collegando l'I/O alla CPU.
Più mensole potevano essere collegate tra loro tramite cavi.
Per il PLC2/30, era possibile avere un massimo di 896 punti I/O digitali.
07
Le mensole misuravano 315 mm di altezza e tra 247 mm e 610 mm di larghezza, con mensole disponibili in varianti da 4, 8, 12 e 16 slot.
La CPU aveva la stessa altezza della mensola e aveva un profilo approssimativamente quadrato.
08
Man mano che l'elettronica di microdimensione avanzava, il modulo CPU era in grado di ridursi di dimensioni, adattandosi a una fessura nella mensola, che divenne la norma per i PLC.
--------------------
09 La elettronica interna
I primi modelli di PLC/2 utilizzavano un processore di tipo 8 bit, secondo alcune fonti un Intel 8080.
10
Utilizzavano anche quattro processori AMD 2900 bit slice come co-processori logici.
Se non si è familiari con i processori bit slice, si tratta di chip che sono come una fetta verticale da 4 bit di un processore, e possono essere uniti con chip logici per formare una CPU completa.
Questi sono stati utilizzati per costruire minicomputer.
11
Sono stati utilizzati come co-processori nei primi PLC perché i microprocessori da soli erano semplicemente troppo lenti per gestire l'esecuzione del programma dell'utente rapidamente abbastanza da consentire una dimensione utile del programma.
Uno o più microprocessori sono stati utilizzati anche per coordinare l'operazione complessiva e la gestione del sistema.
12
Man mano che i microprocessori diventavano più veloci e potenti, la necessità di co-processori logici diminuiva e alla fine venivano eliminati.
Le prime versioni utilizzavano memoria a nucleo magnetico.
In seguito, alcuni hanno passato a una sorta di RAM a stato solido, probabilmente RAM statica di qualche tipo.
13
I dettagli su che tipo di processori siano all'interno di qualsiasi PLC sono in realtà molto difficili da trovare, poiché i produttori non parlano generalmente di queste cose.
Desiderano che l'utente lo veda come una semplice scatola nera.
--------------------
La Tabella dei Dati
Dal punto di vista di un programmatore, la cosa più importante da capire per prima è la tabella dei dati.
La tabella dei dati è la memoria dei dati del PLC.
15
Per un PLC2, questo è un array di parole a 16 bit.
Ogni parola è composta da due byte a 8 bit.
L'indirizzamento per bit e parole è in ottale.
16
Per chi non è familiare con loro, i numeri ottali seguono un sistema di conteggio che va da 0 a 7.
Il numero successivo dopo il 7 è 10.
Il conteggio procede quindi da 11, 12, 13, ecc. fino a 17, 20, 21, ecc.
Ogni cifra ottale richiede esattamente 3 bit.
17
I singoli bit nella notazione PLC2 possono essere indirizzati specificando la parola seguita da una barra, e poi il bit.
Per esempio, 030/12 è il 12° bit nella parola 030. Ricordate che questo è ottale, quindi 12 non è il 12° bit se contate in decimale.
18 Organizzazione della Memoria
Sulla PLC2/30, la tabella dei dati ha l'organizzazione seguente.
19
Gli indirizzi di parola 000-007 sono l'area di lavoro del processore 1.
Questo non è accessibile dall'utente.
20
Gli indirizzi di parola 010 fino a, ma non incluso, 100 sono la tabella dell'immagine di output.
Questo è un'immagine mappata in memoria delle uscite I/O.
Da 010 a 077 è per Scaffale 1.
Da 020 a 027 è per Scaffale 2.
Questo schema continua fino a Scaffale 7, che è da 070 a 077.
21
I numeri di area di lavoro del processore da 100 a 107 sono il numero 2.
Questo non è accessibile dall'utente.
22
Gli indirizzi Word da 110 fino a 200, non compreso, sono la Tabella Immagine di Input.
Questa è un'immagine mappata in memoria degli input I/O.
È disposta nello stesso modo della Tabella Immagine di Output, e va da 110 a 177.
Da 110 a 117 è per la Scaffalatura 1.
Da 120 a 127 è per la Scaffalatura 2.
Questo schema continua fino alla Scaffalatura 7, che è da 170 a 177.
23
Noterai che la tabella di output dell'immagine e la tabella di input dell'immagine sembrano riferirsi agli stessi slot della rack.
Lo fanno in effetti.
A quale indirizzo si riferisce uno slot specifico in una rack specifica dipende dal fatto che ci sia una scheda di input o una scheda di output in quel slot.
24
Gli indirizzi da 200 a 277 sono per i valori accumulati del Timer/Contatore.
Un valore accumulato è il tempo corrente o il conteggio.
25
Gli indirizzi da 300 a 377 sono per i valori preimpostati del Timer/Contatore.
Un valore preimpostato è il tempo target o il conteggio che, una volta raggiunto, causa al timer o al contatore di indicare di aver raggiunto il valore desiderato.
26
La memoria sopra i 400 può essere configurata per dividerla in un'area di archiviazione dati e un'area programma utente.
L'area di archiviazione dei dati è dove si memorizzano i dati di cui il programma ha bisogno per essere utilizzato, che non fanno parte dell'I/O o dei contatori.
È necessario trovare il giusto equilibrio tra i dati dell'utente e le dimensioni del programma.
27
Ci sono varie cose che possono essere modificate e configurate in relazione a quanto sopra, ma non approfondirò l'argomento poiché questo non è un tutorial sul PLC2.
=
Dovresti tuttavia avere una buona idea della memoria di un modello PLC iniziale.
Le cose da comprendere sono che l'I/O sono mappati agli indirizzi di memoria e che
diverse gamme di memoria sono utilizzate per scopi diversi.
28
La gestione della memoria era completamente manuale.
Spettava all'utente tenere traccia di quali indirizzi di memoria fossero da utilizzare per quali scopi.
Allen Bradley ha gentilmente fornito moduli di carta che potevi fotocopiare e utilizzare per pianificare e documentare a quale indirizzo sarebbe stato destinato ciascun utilizzo.
Parte del compito del programmatore era utilizzare la memoria in modo efficiente e logico, lasciando anche spazio per modifiche future.
--------------------
Il Programma Utente
Il programma utente è composto da istruzioni.
Ogni istruzione occupa tipicamente un parola di memoria.
Tuttavia, istruzioni complesse possono occupare fino a 8 parole di memoria.
30
Esiste un programma principale.
Puoi pensare a questo come alla funzione "main" in C.
Se non trovi utile questa analogia, pensa semplicemente che questo sia il punto in cui inizia il tuo programma.
Il programma principale prosegue con un passo dopo l'altro fino a raggiungere la dichiarazione "END".
31
C'è anche un'area della sottoroutine.
Il programma principale chiama una sottoroutine utilizzando un salto alla sottoroutine, o istruzione JSR.
Il terminale di programmazione T3.
Quando è uscito il PLC2, cose come i laptop erano ancora lontane nel futuro.
Anche il primo PC portatile Compaq a stile valigetta era ancora lontano anni luce.
Infatti, il primo PLC/2 è uscito poco dopo il primo kit PC Altair.
33
La programmazione iniziale era quindi effettuata utilizzando un terminale di programmazione speciale noto come T3.
Il T3 era una scatola della dimensione di una valigia con un piccolo CRT alla fine e una tastiera attaccata sotto lo schermo.
Se questo suona come i primi PC portatili, tenete presente che in realtà li ha preceduti di diversi anni.
34
La tastiera non era una macchina da scrivere o in stile QWERTY.
Aveva una tastiera a membrana con simboli grafici.
Ricordate l'episodio precedente sui diagrammi di controllo utilizzando relè e come questi fossero documentati utilizzando simboli schematici nei disegni.
Il keypad del terminale T3 aveva simboli corrispondenti a una versione semplificata e modificata dei simboli utilizzati in quei disegni schematici.
35
Quando un programmatore premeva uno di quei simboli sulla tastiera, il simbolo corrispondente appariva sullo schermo nella posizione del cursore corrente.
Il programmatore poteva quindi inserire l'indirizzo dei dati a cui il simbolo doveva corrispondere utilizzando la parte numerica della tastiera.
36
Un ingegnere, un tecnico o un elettricista poteva quindi creare e inserire programmi utilizzando un ambiente completamente grafico che sfruttava le sue conoscenze pregresse di controllo utilizzando componenti hardware.
Non lo consideravano come la programmazione di un computer, lo vedevano come qualcos'altro del tutto diverso e non correlato ai computer.
37
La programmazione avveniva con il T3 collegato al PLC mentre il PLC era in modalità di programmazione.
Le istruzioni venivano inserite direttamente dalla terminala nella memoria del PLC.
I programmi potevano essere salvati o ripristinati su una cassetta.
Il programma si avviava quando il PLC era impostato in modalità di esecuzione.
38
Inoltre, la terminala T3 consentiva il debug online dei programmi.
Quando il T3 era connesso in modalità di esecuzione, il diagramma a scala aggiornava in tempo reale.
Quando una condizione logica era vera, veniva evidenziata.
Quando la condizione logica era falsa, veniva mostrata in uno stato non evidenziato.
39
Osservando una riga specifica, si poteva vedere se la serie prevista di istruzioni grafiche erano tutte evidenziate in un modello che avrebbe portato all'output finale della riga vero o falso come previsto.
Questo è stato un aiuto inestimabile per la risoluzione dei problemi nel trovare sia bug software che guasti hardware.
I terminali di programmazione sono diventati una parte indispensabile dell'attrezzatura essenziale di un elettricista di manutenzione industriale.
40
Con la disponibilità di computer portatili e successivamente laptop, il T3 è diventato obsoleto e queste funzioni sono state trasferite a software che funzionano su PC standard.
Tuttavia, funzionano essenzialmente allo stesso modo.
Sono state aggiunte capacità aggiuntive, come la possibilità di scrivere programmi senza essere collegati al PLC.
Etichette descrittive e commenti potrebbero essere aggiunti agli indirizzi di memoria per documentarli e facilitare la lettura del programma.
Le funzioni di cross-referenziamento renderebbero più semplice individuare quali indirizzi sono stati utilizzati per cosa.
ecc.
--------------------
41 Istruzioni
Ora passerò ad elencare i tipi di istruzioni disponibili per l'uso.
Non cercherò di spiegare tutto, ma dovrebbe almeno darvi un'idea vaga di come venivano programmati.
Utilizzerò i nomi di Allen Bradley per questi, che devo sottolineare non corrispondono a ciò che altri produttori chiamano con lo stesso nome.
Istruzioni di tipo relay 42
Queste sono istruzioni booleane e consistono nel seguente.
Istruzioni di input 43
Queste esaminano i bit nella memoria e producono uno stato logico a seconda del valore del bit a cui fanno riferimento.
Le istruzioni di input iniziano a sinistra del rigo e procedono verso destra man mano che ne vengono aggiunte di nuove.
Esamina acceso - È vero quando il bit indirizzato è impostato su 1.
Esamina spento - È vero quando il bit indirizzato è impostato su 0.
Istruzioni di output 44
Questi bit si accendono o si spengono in base alla somma delle condizioni di logica booleana che li precedono.
Le istruzioni di output sono sulla destra del rigo.
Dev'esserci sempre almeno un'istruzione di output.
Output Energizza - Imposta un bit a 1 quando le condizioni di logica che lo precedono sono vere.
Imposta un bit a 0 quando le condizioni di logica che lo precedono sono false.
45
Output Bloccato - Accende il bit quando è vero.
Non fa nulla quando è falso.
Output Sbloccato - Spegne il bit quando è vero.
Quando è falso, non fa nulla.
46 Istruzioni di ramo
Queste non fanno nulla da sole, ma creano connessioni di cablaggio nel diagramma.
Sono importanti per consentire alle istruzioni elencate sopra di essere posizionate in parallelo nella stessa fase in modo che possano eseguire cose come specificare condizioni OR.
Puoi pensare a loro come essenzialmente trasformare un esame ON/OFF in un'istruzione OR o OR NON.
--------------------
47 Istruzioni Timer e Contatore
Timer e contatori sono, come implica il nome, istruzioni che eseguono operazioni di temporizzazione e conteggio.
Hanno valori preimpostati e accumulati separati.
Sono un tipo di istruzione di output, in quanto risiedono sul lato destro della scala e il loro funzionamento dipende dallo stato della logica della scala a sinistra.
48
Gli orologi e i contatori funzionano in Valori Codificati Binariamente Decimali, o BCD.
Ogni valore BCD richiede 4 bit di memoria.
Tuttavia, a differenza dell'esadecimale, solo i valori da 0 a 9 sono validi.
Quello che sarebbero valori da A a F in esadecimale, non sono validi in BCD.
49
I valori preimpostati e accumulati sono memorizzati in parole da 16 bit. I primi 12 bit sono utilizzati per memorizzare fino a 3 cifre BCD.
I restanti 4 bit più alti sono utilizzati per memorizzare i bit di stato dell'istruzione, come se l'orologio o il contatore sia terminato e varie altre funzionalità.
50 Orologi
La base temporale corrisponde alla risoluzione del timer.
Le basi temporali sono 1,0 secondi, 0,1 secondi e 0,01 secondi.
Quindi un timer con una base temporale di 1 secondo può cronometrare da 0 a 999 secondi con una risoluzione di un secondo.
Un timer con una base temporale di 0,1 secondi può cronometrare da 0 a 99,9 secondi con una risoluzione di 0,1 secondi.
51
Esistono tre tipi di timer,
Timer On Delay (o TON),
Timer Off Delay (o TOF),
Retentive Timer (o RTO).
52
I temporizzatori di ritardo contano il tempo mentre la condizione di attivazione è vera e si resettano quando diventa falsa.
I temporizzatori di ritardo off contano il tempo dopo che la condizione di attivazione diventa falsa e si resettano quando diventa vera.
I temporizzatori retentivi sono simili ai temporizzatori di ritardo, ma conservano il loro valore accumulato fino a quando non vengono resettati dall'istruzione di reset del temporizzatore retentivo (o RTR).
In generale, si avvia un temporizzatore e poi si monitora il suo bit "completato" altrove nella logica.
53 Contatori
I contatori contano gli eventi.
Ce ne sono di diversi tipi.
54
Contatore in salita (o CTU).
Contatore a discesa (o CTD)
Reset del contatore (o CTR)
Contatore di scansione (o SCT)
55
I contatori "up" contano all'insù da zero, e i contatori "down" contano all'insù da un valore preimpostato.
Il contatore di scansione conta il numero di scansioni del programma.
Non è qualcosa che di solito si trova un uso, anche se si può utilizzare per calcolare, per esempio, il tempo di scansione.
--------------------
56 Istruzioni di manipolazione dei dati
Le istruzioni di manipolazione dei dati sono utilizzate per leggere, scrivere e confrontare dati di byte e parola.
Le operazioni avvengono quando la riga diventa vera.
57
GET legge una parola di 16 bit da un indirizzo di memoria.
PUT scrive una parola di 16 bit in un indirizzo di memoria.
LES si risolve in vero se il valore letto dall'istruzione GET è inferiore a un valore specificato.
EQU si risolve in vero se il valore letto dall'istruzione GET è uguale a un valore specificato.
58
Gli insegnamenti LES e EQU possono essere combinati in vari modi tra loro e con GET per dare tutte le possibili permutazioni di confronto, come maggiore di, minore di o uguale a, ecc.
59
GET BYTE legge un byte di 8 bit da un indirizzo di memoria.
TEST LIMIT si risolve in vero se un valore di byte è compreso tra i limiti memorizzati nei byte superiore e inferiore di una parola.
Il test limite viene utilizzato in combinazione con GET BYTE.
--------------------
60 istruzioni aritmetiche
Le istruzioni aritmetiche operano anche sui valori di parola BCD.
Le operazioni avvengono quando la riga diventa vera.
Il byte più alto viene utilizzato per indicare cose come il sovraccarico o il sottocarico aritmetico.
Questi includono
61
Addizione
Sottrazione
Moltiplica
Dividi
Converti BCD in binario
Converti binario in BCD
--------------------
62 Istruzioni di trasferimento di blocco
Le istruzioni di trasferimento di blocco sono istruzioni di output utilizzate per trasferire fino a 64 parole da 16 bit di dati tra la tabella dei dati e i moduli I/O.
Queste sono utilizzate con I/O intelligenti che lavorano con parole piuttosto che con singoli bit.
63
Esempi di queste sono cose come
Ingressi/uscite analogici che leggono e scrivono tensioni variabili anziché semplicemente accesi o spenti.
PID che gestiscono il controllo a loop chiuso di cose come la temperatura.
Termocoppie che leggono le temperature.
Controllo del motore servo che comanda le posizioni dei motori servo.
Controllo del motore a passi.
Codificatori di posizione.
64
Non entrerò nei dettagli sui trasferimenti di blocco, ma questo dovrebbe essere sufficiente per darvi un'idea generale di come il PLC potrebbe gestire questo tipo di attrezzature rispetto agli stati semplici accesi/spenti dei moduli digitali.
Ovviamente questi possono essere utilizzati in combinazione con GET, PUT e altre istruzioni di manipolazione dei dati che possono leggere e scrivere le posizioni di memoria.
--------------------
65 Istruzioni di salto e programmazione di sottoprocedura
Queste includono le seguenti istruzioni.
66
Salto (o JMP)
Etichetta (o LBL)
Salto a sottoprocedura (o JSR)
Ritorno (o RET)
67
Il salto salterà l'esecuzione a una posizione di etichetta.
Puoi pensarlo come un'istruzione GOTO.
68
Le etichette sono numeriche e possono variare da 00 a 77 in ottale.
Le istruzioni di salto sono uscite di riga e quando la riga diventa vera, l'esecuzione salta al numero di etichetta specificato nell'istruzione.
Le etichette sono istruzioni di input e appaiono all'inizio della riga in cui l'esecuzione riprende.
69
I salti normali non possono saltare in una sottoriga e possono saltare solo in avanti, non all'indietro.
Ciò significa che i cicli non sono possibili utilizzando il salto.
Questa sarebbe una decisione di progettazione deliberata per impedire ai programmi di rimanere bloccati in un ciclo e per prevenire la scansione in corso.
70
Le sottorighe appaiono dopo la fine del programma principale.
Sono definite da etichette numeriche ottali utilizzando l'istruzione di etichettatura.
I sottoprogrammi vengono chiamati utilizzando l'istruzione "Jump to Subroutine" (o JSR).
Alla fine del sottoprogramma, l'istruzione "Return" (o RET) restituisce l'esecuzione al livello successivo successivo al JSR che l'ha chiamato.
È possibile annidare le chiamate ai sottoprogrammi fino a 8 livelli di profondità.
--------------------
71 Istruzioni di trasferimento dei dati
Nonostante ciò che potresti pensare dal nome, nel PLC2 non ci sono file su disco.
Un'istruzione "file" sposta in realtà blocchi di parole da una posizione di memoria dei dati ad un'altra.
=
Questi includono indirizzi di origine e di destinazione, e vari altri parametri che controllano l'operazione.
In realtà c'è molto di più coinvolto in questi, ma non mi soffermerò sui dettagli.
Devi semplicemente sapere che è possibile spostare blocchi di memoria dei dati da un posto all'altro.
--------------------
72 Istruzioni di Registro di Spostamento
Queste operano su l'intera serie di parole e includono
=
Sposta il File Su
Sposta il File Giù
Carica FIFO
Scarica FIFO
73
Possono operare su 1 a 999 parole.
Un uso tipico di questo tipo di istruzione sarebbe quello di tracciare una parte mentre si muove attraverso le varie stazioni di una macchina.
--------------------
Spostamenti di 74 bit
Questi operano su singoli bit e includono i seguenti.
75
Spostamento a sinistra del bit
Spostamento a destra del bit
Esamina il bit di spostamento off
Esamina il bit di spostamento on
Imposta il bit di spostamento
Reset Shift Bit
76
Queste funzionano più o meno come ci si aspetterebbe in termini di spostamento dei bit a sinistra o a destra.
Tuttavia, il registro di spostamento può essere definito con una lunghezza da 1 a 999 bit, quindi non è limitato alla dimensione di una parola.
--------------------
77 Istruzioni Sequencer
Le istruzioni sequencer sono un'emulazione software di controller di tamburi elettromeccanici.
I controller di tamburi consentivano di eseguire una lunga sequenza di operazioni.
Questi utilizzavano un tamburo rotante che aveva una serie regolare di fori paralleli sulla superficie esterna.
Sopra una fila di questi fori c'era una fila di interruttori limite.
Inserendo delle molle in alcuni di questi fori che entravano in contatto con i selettori limite, il controllore del tamburo poteva attivare schemi di relè o valvole.
78
Alcuni dei selettori limite potevano essere collegati a sensori sugli elementi mobili della macchina.
Quando le parti della macchina erano nella posizione corretta per quel passo nella sequenza, lo schema delle molle avrebbe causato il completamento di un percorso elettrico attraverso i selettori limite e l'attivazione di un solenoide che farebbe avanzare il tamburo al passo successivo.
79
Questo viene spesso paragonato a una scatola musicale o a un vecchio stile di controllo della lavatrice.
Tuttavia, nel caso del controllore del tamburo, le molle programmarebbero le condizioni di corrispondenza dell'input così come l'output desiderato.
Il PLC/2 drum controller emulerebbe questo sequencer.
Questa caratteristica è diventata molto diffusa nell'attrezzatura utilizzata nell'industria automobilistica e in altri processi di produzione orientati all'assemblaggio, e spesso costituiva il cuore del programma PLC/2.
80
Non entrerò nei dettagli delle istruzioni del sequencer, ma ci sono istruzioni di sequenza di input e output separate.
La sequenza di input cercherebbe di abbinare gli stati dei sensori, e la sequenza di output istruirebbe di accendere o spegnere vari output, controllando cose come le valvole solenoidi.
La sequenza stessa sarebbe definita da una serie di parole in memoria, con ogni bit corrispondente a un singolo input o output.
--------------------
81 Istruzioni Logiche di File
Le istruzioni logiche di file ammontavano a operazioni su array di parole, sebbene il termine "file" sia usato per ciò che, in terminologia informatica, sarebbe un "array".
Queste istruzioni includevano
E (AND)
O (OR)
XOR (ESCLUSIVO O)
Complemento
--------------------
82 Tecniche di Programmazione Speciali
Queste sono istruzioni varie.
Consistono nelle seguenti.
Limite di guida in un solo colpo
Limite di coda in un solo colpo
83
Un "one shot" è un'istruzione di output che causa il bit indirizzato ad accendersi per una scansione, in seguito ad una variazione di stato nella condizione logica della riga.
I "one shots" potrebbero essere attivati da una variazione da falso a vero o da vero a falso, a seconda di quale delle due istruzioni fosse stata utilizzata.
--------------------
Perché il PLC2 utilizzava BCD?
Probabilmente ti stai chiedendo perché il PLC2 utilizzava numeri BCD invece di interi normali.
Questo riflette l'ambiente operativo che un PLC iniziale avrebbe dovuto gestire.
Primi pannelli operativi che utilizzavano dispositivi di input numerico meccanici e semplici display elettronici di uscita che funzionavano tipicamente in BCD.
85
Interruttori a rotella erano piccoli dispositivi a forma di tamburo con numeri da 0 a 9 stampati sulla periferia.
Diverse ruote sarebbero state impilate una accanto all'altra.
Sembravano in qualche modo un odometro meccanico che troveresti in un'auto più vecchia.
Tuttavia, l'operatore poteva muovere separatamente ogni ruota digitale.
Ogni cifra sarebbe stata letta collegando 4 cavi a 4 ingressi sul PLC.
Quindi ogni cifra era intrinsecamente BCD a causa del funzionamento dell'hardware della manovella.
86
Girando separatamente le ruote individuali, l'operatore poteva regolare cose come temperature, velocità, ritardi temporali, ecc., e quindi modificare i parametri del processo.
Gli schermi di output dell'operatore erano tipicamente display a 7 segmenti LED, al neon o a vuoto fluorescenti.
Questi display o dispositivi simili ai loro predecessori dei PLC erano comuni in ambito industriale e dovevano essere maneggiati.
Ogni cifra numerica aveva 4 ingressi che sarebbero stati collegati a 4 uscite sul PLC.
I display a 7 segmenti possono utilizzare il sistema esadecimale, ma non era molto utile se si cercava di visualizzare una temperatura in gradi Celsius all'operatore.
Quindi, ancora una volta, il BCD era il tipo di numero più pratico con cui lavorare.
87
Man mano che i PLC e i loro programmi utente diventavano più capaci e più sofisticati, hanno iniziato a lavorare con interi normali e persino con numeri a virgola mobile.
Tuttavia, molti, se non la maggior parte dei PLC, hanno mantenuto istruzioni per tradurre da e verso BCD.
--------------------
L'influenza del PLC2
Il PLC2 è stato un prodotto di enorme successo per Allen Bradley e ha consolidato la loro posizione come uno dei principali fornitori di PLC, con il primo posto nel mercato nordamericano e tra i primi cinque a livello mondiale.
Tuttavia, presentava diverse debolezze, in particolare l'architettura di memoria e sottoprogrammi molto primitiva e la focalizzazione sui numeri esadecimali e BCD.
Era incentrato sul sostituire i relè di controllo e ci è riuscito abbastanza bene.
89
Il prossimo vero successore del PLC2 per Allen Bradley è stato il PLC5.
Questo ha preso l'insieme di istruzioni di base del PLC2 e lo ha unito a un nuovo sistema di memoria con nuovi tipi di dati, spazi dei nomi separati e funzioni parametrizzate.
90
Era come passare dal programmare in Basic con numeri di riga e salti a Pascal.
Tuttavia, era ancora possibile utilizzare gli scaffali e i moduli di I/O PLC2, un aspetto importante considerando che la maggior parte del costo di un PLC era nel sistema I/O.
91
Il PLC 5 è stato a sua volta succeduto dalla serie Contrologix che ha modernizzato ulteriormente le cose, pur essendo in un fattore di forma più piccolo.
Allen Bradley rimane uno dei principali fornitori di PLC oggi, operando sotto il nome Rockwell.
--------------------
92 Conclusione
In questo episodio ci siamo concentrati su un PLC specifico ma molto utilizzato all'epoca, il PLC Allen Bradley 2.
Abbiamo trattato i seguenti argomenti.
L'elettronica interna.
La tabella dei dati.
Il programma utente.
Il terminale di programmazione T3.
E una panoramica molto breve del set di istruzioni.
93
Questo era un PLC abbastanza semplice e in alcuni modi primitivo, ma dovresti avere un'idea approssimativa dei concetti alla base di un PLC, inclusi la tabella dei dati e il concetto di scansione e il set di istruzioni simile a un relè.
94
Nel prossimo episodio ci soffermeremo su un PLC del più grande fornitore a livello mondiale, Siemens.
In questo esempio esamineremo un modello leggermente successivo al PLC2, la serie S5.
Questo potrebbe essere considerato un PLC di seconda generazione.
Dal momento che non dovremo ripetere i concetti di base già trattati, possiamo concentrarci di più su ciò che è nuovo e diverso nel S5 rispetto al PLC2.
95
Questa è stata la terza puntata di una serie di otto parti.
--------------------
