PLC con PIC

Controllori Logici Programmabili autocostruiti.

I microcontrollori si prestano bene per la costruzione di sistemi controllo assimilabili ai P.L.C.    I prodotti che vengono presentati in questo articolo non potranno essere sostitutivi dei prodotti commerciali ma soddisferanno certamente le esigenze didattiche e hobbistiche.

Vengono proposte  varie versioni che utilizzano diversi PIC, di conseguenza saranno diverse le potenzialità ottenute.

IL primo modello lo chiameremo Micro-GT P84 perché basato  sul PIC 16F84A. Mette a disposizione 8 ingressi digitali a 5 Volt e 5 uscite digitali di cui 2 caricabili fino ad 1 ampere e 3 adatte solo alla generazione del segnale di comando (pochi milliampère).

Micro-GT P84 scarica lo schema elettrico in formato FidoCad

Questa prima versione rispetto ad un vero P.L.C. presenta l'evidente  limitazione di non poter essere essere riprogrammato "al volo" quindi non è possibile utilizzarlo nella modailtà ON-LINE nota agli sviluppatori di programmi per l'automazione industriale. Il PIC deve essere rimosso dallo zoccolo, inserito nel sistema di sviluppo, programmato , e successivamente rimesso nella scheda di destinazione. Questo problema si risolve complicando lo schema che andrà fornito di una circuito integrato per la comunicazione seriale, tipicamente il MAX232, e il connettore femmina da stampato CANNON DB9.

Una volta modificato il circuito come da schema sottostante sarà necessario inserire nella memoria del PIC il "BOOTLOADER" che consentirà la riprogrammazione "in circuit".

Modello Micro-GT P84S

La successiva versione del nostro P.L.C. autocostruito risolve la limitazione della necessità di staccare il PIC dalla scheda finale "Target", ed essere inserita nel programmer per poter aggiornare il programma di controllo dell'automazione. Risulta quindi completa di porta seriale tipicamente di tipo DB9 femmina per montaggio da stampato.  Lo schema risulta leggermente più complicato, e si perde rispetto alla precedente versione un pin di input e uno di output perchè impegnati per la comunicazione seriale.

 

Micro-GT P84S scarica lo schema elettrico in formato FidoCad;          donwnolad schema in formato bitmap 2,9Mbyte    

download lo schema elettrico in formato gif

La comunicazione seriale avverrà tramite la porta COM del PC (dove ancora esiste), oppure tramite un adattatore USB/seriale, sistema chè è stato testato e collaudato. Il cavo necessario sarà passante, ovvero una semplice prolunga pin to pin. La comunicazione si si stabilisce se la si tenta tramite un cavo incrociato null modem o handshake. Il protocollo usato è noto come EIA RS232C.

 

Schema elettrico del cavo seriale.

modello Micro-GT P876

La versione successiva è realizzata con il PIC 16 F876A, decisamente più completo dell'84. Il progetto è denominato Micro-GT P876.

 

Il PIC16F876 prodotto dalla MicroChip® appartiene alla famiglia dei microcontrollori, ovvero di quei dispositivi che integrano nella CPU un insieme completo e potente di dispositivi dedicati all’I|/O.   Il nucleo, denominato core, è costituito da una CPU ad alte performance basata sulla tecnologia RISC (Reduced Instruction Set Computing), la cui programmazione richiede la conoscenza di soli 35 codici mnemonici. Quasi tutte le istruzioni posso essere eseguite in un solo ciclo macchina ad eccezione di quelle di salto “branche” che ne richiedo almeno 2.  Il clock di funzionamento può essere impostato a media velocità, 4Mhz, oppure ad alta velocità, 20Mhz a seconda del quarzo che si intende montare e alla velocità di esecuzione richiesta dall’applicazione. Con il clock fissato a 20Mhz la velocità di esecuzione per ogni  ciclo macchina scende a 200 ns.

Il dispositivo è munito delle seguenti aree di memoria:

Il pinout risulta compatibile con i dispositivi PIC16C73B/74B/76/77 appartenenti alla stessa famiglia.

IL programma può rispondere da segnali di interrupt provenienti da oltre 14 fonti vettorizzate, e alcuni di questi segnali di interrupt sono utilizzati nella comunicazione seriale del presente progetto.

In caso di inutilizzo del sistema il processore può essere posto in una sorta di stato di standby  chiamato SLEEP MODE che ne riduce notevolmente i consumi.

La tensione di alimentazione risulta valida nel range 2.0V fino a 5.5V, livelli inferiori comportano il reset del processore mentre superiori ne comportano la distruzione.

Importantissimo è conoscere che la massima corrente per punto di I/O, sia come sorgente che come pozzo, è di 25mA.

La potenza dissipata dal dispositivo è molto limitata, con clock di 4Mhz  e alimentazione di  3,4 Volt vengono assorbiti meno di 0,6mA, ma riducendo ulteriormente il clock, per quelle applicazioni dove non è richiesta la velocità, ad esempio a 32KHz e alimentazione a 3Volt verranno assorbiti solo 20uA che scendono a meno di 1uA se il dispositivo e posto in standby. 

Le periferiche integrate

Il PIC 16F876 mette a disposizione un elevato numero di punti di I/O in grado di soddisfare moltissime applicazioni in ambito di automazione e robotica. Ad una buona parte dei suoi pin è abbinata una doppia o addirittura tripla funzione, si vedano ad esempio i pin 11 e 12.

Sono disponibili 3 timer commutabili a uso contatore con le seguenti caratteristiche tecniche:

• Timer0: 8-bit timer/contatore con  prescaler a 8-bit.

• Timer1: 16-bit timer/contatore con prescaler, che può essere incrementato durante la funzione SLEEP usando un clock esterno creato da un apposito cristallo.

• Timer2: 8-bit timer/contatore con registro ad anello  a 8-bit, prescaler e postscaler

La comunicazione seriale avviene ai pin 17 (TX) e 18 (RX) tramite un’iterfaccia integrata di tipo USART Universal Synchronous Asynchronous Receiver Transmitter (USART/SCI) con rilevamento di indirizzanti a 9 bit.

La porta A, accessibile dal pin 2 al pin 7, ovvero per 5 bit, può essere commutata alla funzionalità di ingresso analogico con risoluzione a 10 bit.

La comunicazione è anche possibile in modalità I2C con la modalità master/slave, oppure in modalità  SSP Synchronous Serial Port con  SPI (Master mode).

Nella successiva immagine è riportato lo schema a blocchi dell’architettura interna del PIC 16F876.

 

 

Le caratteristiche tecniche sono:

Download lo schema elettrico in formato FidoCad      Download lo schema elettrico in formato .gif    download lo schema in BMP

Micro-GT P876 scarica il PCB in formato FidoCad.

Il PCB è piuttosto compatto per essere realizzato in singola faccia ma richiede degli accorgimenti. Al fine di eliminare qualunque ponticello il bus che porta il segnale agli ingressi digitali dovrà venire collegato tramite un cavo Flat. Sulla basetta potremmo saldare gli streep maschio e il cavo di prolunga dovrà terminare su entrambi i lati con le corrispettive femmine. Analogamente si dovrà procedere per il collegamento degli ingressi analogici ai corrispettivi morsetti.

Sopra vediamo la foto del modello Micro-GT P876, nella prima fila di morsetti in basso ci sono i 5 canali analogici disponibili. la fila in alto a destra, sopra i LED verdi sono gli 8 ingressi digitali, mentre allineate sopra a LED rossi ci sono le 6 uscite di cui quattro rinforzate fino ad un ampere grazie alla presenza dei BC337. IN alto a destra è ben visibile i pulsante di RESET, affianco al morsetto di alimentazione a cui porteremo una fonte continua compresa tra 5  e 30 volt. Il LED rosso affianco alla porta RS232 indica che il PLC è alimentato. 

 

  • La morsettiera a 6 posizione in alto è per il PORT C da 0 a 7 come indicato a pennarello
  • La parte destra della morsettiera frontale indicata con (0,L+1,L+ 5,L+4,L+) è collegata ai collettori dei BC337, mentre tutti gli L+ di questa sezione sono lasciati volutamente flottanti per poter collegare un carico a tensione diversa dei 5 volt del microcontrollore.
  • la parte sinistra della morsettiera indicata con (6,5,4,3,2,1) potrà essere collegata tramite un cavetto flat ai pin dei canali analogici disposti a fianco del quarzo. A questi canali analogici faremo attenzione di non superare i 5 volt.
  • Il morsetto indicato con + è volutamente lasciato flottante perchè potrà essere collegato a una alimentazione utile..
  • Lo streep a 8 posizioni visibile tra e due morsettiere in alto sarà collegato tramite un flat al PORT B del processore facendo attenzione che a questi ingressi digitali dovrà arrivare un segnale di livello TTL  ovvero rigorosamente a 5 Volt DC. è facile, e nei prossimi modelli viene fatta, la modifica per poter acquisire segnali a valori diversi come ad esempio 24 Volt DC che è lo standard di lavoro dei normali PLC.

Una volta collegato il cavo seriale al PLC si instaurerà una comunicazione con il sistema di programmazione solo se nel PIC 16F876 è stato inserito il corretto bootloader, in caso contrario la programmazione dovrà avvenire tramite un programmer gestito da un  software di caricamento.  Un programmer lo possiamo scaricare in questo stesso sito cliccando nel link (pagina del programmer per PIC 16F876 e16F877).

Scarichiamo anche il Bootlader da questo link ->    Bootloader  per PIC16F876 clock a 20 Mhz

Scarichiamo inoltre il downloader utile per i successivi caricamenti del programma  -> Downloader zippato 

Scarica il Bootloader più facile da fare funzionare ->  download bootloader per PIC16F876 a 4 Mhz e 9600bps

Opertivamente il nostro PLC funzionerà così:

  1. Carichiamo il bootloader nel PIC utilizzando il programmer

  2. Generiamo il programma di controllo utilizzando il C, oppure il microbasic oppure il PIC-Ladder presentato in questo sito e creiamo il file .hex

  3. colleghiamo il PLC alla porta seriale del PC, eventualmente tramite un comune adattatore USB/RS232

  4. Lanciamo il downloader e carichiamo il programma nella memoria del PLC.

La tabella compara le potenzialità dei PIC 876 e 877 mostrando anche le versioni precedenti dei PIC compatibili pin to pin.

Fase di collaudo dei PLC autocostruiti modello Micro-GT P876.  Nei PLC è stato caricato un semplice programma che genera una sequenza di accensione dei pin di uscita del PIC. L'abilitazione della singola uscita è rilevata dall'accensione del diodo led rosso corrispondente.

 

Modello Micro-GT P877

Realizzazione del nano PLC basato sul microcontrollore PIC 16F877 secondo le seguenti caratteristiche tecniche.

1) Collegare al pin 1 il circuito di reset costituito da una R10k pullup e il pulsante normalmente aperto verso massa.

2) collegare il circuito di clock ai pin 13 - 14

3) collegare l'alimentazione +5V al pin 32 e la massa al pin 31

4) collegare la spia di accensione al pin 32 con un led rosso 5 mm e la sua resistenza da 330 ohm.

5) collegare otto ingressi digitali muniti di pulldown a 10k alla porta B pin da 40 a 33.

6) collegare la porta di comunicazione MAX232 usando i soli fili TX e RX collegandoli incrociati ai pin 26 e 25.

7) collegare le uscite digitali munite di transistor TIP122 e relativa resistenza in base ai pin 19 - 20 -21 - 22 - 27 - 28 - 29 - 30. (porta D)

8) collegare gli ingressi analogici ai pin 2 - 3 - 4 - 5 - 7 - 8 - 9 - 10

9) collegare ulteriori ingressi digitali alle porte C, pin 15 - 16 - 17 - 18 - 23 -24

IL microcontrollore PIC16F877 ha il sottostante pinout:

Il diagramma a blocchi dell'architettura interna mette in evidenza il pinout, i registri interni e le periferiche integrate.

Schema elettrico del micro PLC  modello Micro-GT P877:

Tutti i segnali, sia in input che in output sono segnalati tramite l'accensione di una spia LED. suggerisco di usare LED rossi da 3 mm per le uscite e verdi per le entrate.

Download schema elettrico in formato FidoCad

Risolviamo il problema di poter acquisire segnali a tensione di bordo macchina diversa della TTL con l'ausilio di diodi Zener e la loro relativa resistenza di limitazione.  Lo schema viene modificato come da figura sottostante.

 download lo schema elettrico del Micro-GT P877-Z in formato FidoCad    download lo schema elettrico del Micro-GT P877-Z immagine GIF

Lo schema è piuttosto ampio quindi è giustificata una realizzazione di tipo a sandwinch ovvero su due piani. Non si tratta  di una costruzione dual layer ma semplicemente di due PCB sovrapposti. Alcuni punti sono presi come riferimento ad esempio i fori di fissaggio attraverso i quali faremo passare le viti che fungeranno oltre che da piedini anche da distanziatori. La stampa del PCD sul master dovrà avvenire escludendo i layer non interessati  se si scarica la versione sovrapposta oppure nella maniera standard se si scarica la versione piana. Alcuni punti della piastra madre(la basetta bassa con il processore) saranno riportati alla piastra di espansione (quella alta) tramite i pin di uno streep lungo di cui la femmina sarà saldata sulla piastra madre e maschi sul lato rame della piastra di espansione.

Nell'immagine possiamo vedere la piastra madre del PLC modello Micro-GT P877, la piastra di espansione sarà sovrapposta ma garantirà l'accesso alle morsettiere tramite dei fori ad asola. Le connessioni tra la piastra madre e quella di espansione posso avvenire indifferentemente tramite cavo flat  e streep maschio/femmina o direttamente con streep di tipo lungo. in questo secondo caso il risultato estetico è accattivante ma bisognerebbe schermare bene il circuito con un contenitore ben congeniato, la soluzione infatti equivale a mettere delle "antenne" in ogni pin di input che potrebbero iniettare nel micro qualsiasi interferenza dovuta alla presenza dei campi elettromagnetici.

Per lavorare correttamente sulla piastra di espansione impostiamo i layer come nell'immagine sottostante:

Nella successiva immagine possiamo vedere entrambe la piastra madre e la piastra di espansione in cui sono alloggiati i darlinghton TIP122 per poter pilotare carichi DC fino a 8 ampere. La piastra di espansione viene montata al piano superiore i fori ad asola rendono accessibili i morsetti della piastra madre.

i layer delle serigrafie, delle piste comuni e delle masse sono stati volutamente impostati con colori diversi per rendere distinguibili i componenti se effettuiamo una sovrapposizione grafica.

download file FidoCad Micro-GT 877 sovrapposto        download file FidoCad Micro-GT 877 versione piana

Layout componenti del sandwich completo (due schede sovrapposte).

Dopo aver saldato tutti i componenti in entrambi i PCB, ovvero la piastra madre e quella di espansione I/O è necessario interconnettere i vari BUS con l'ausilio di cavi FLAT.  Questo tipo di cavo ve lo potete procurare tagliando in vecchio cavo del PC per il collegamento del lettore CD-ROM, oppure semplicemente comprando un metro di piattina a 40 conduttori in un qualsiasi negozio di elettronica. I cavi multipolari potranno essere terminati con degli streep femmina. La costruzione risulterà piuttosto compatta. Nella foto sottostante non tutti i Flat sono stati montati  me già possiamo avere un'idea della complessità delle connessioni.

Nella foto successiva vediamo come i flat risultino sovrapposti al processore motivo che impone il collegamento tramite streep estraibili altrimenti non sarebbe piu possibile rimuovere il processore dallo zoccolo. Nella versione smd questo problema è superato perchè il chip verrà programmato solo tramite ICSP o con l'ausilio del bootloader.

particolare delle connessione dei segnali analogici e delle uscite digitali . il connettore a 8 conduttori (pin 33 fino 40) sono gli ingressi digitali.

TRamite MPLAB e il compilatore C16 integrato eseguiamo un piccolo programma da utilizzarsi come test in grado di attivare delle uscite. Ecco come appare il sistema di sviluppo.

Molto brevemente descrivo la finestra, in alto a sinistra c'è il progetto creato tramite in wizard,esso mostra i files che fanno parte del progetto, in questo caso a parte la libreria delay.c e delay.h il solo file lampeggio.c. la finestra sottostante contiene il programma in C, a parte la sua intestazione e l'inclusione delle librerie esegue solo il settaggio del registro tramite il comando TRISD=0; esuccessivi rischiami della funzione delay intervallatata dei settaggi delle uscite tramite il comando PORTD=0b00000001;  (spostare l'uno per accendere un diverso pin di uscita).  La finestra  in alto a destra mostra il collegamento con il sistema di programmazione(programmer) che in questo caso il PICSTART PLUS. in essa compare scritto se il trasferimento è andato o no a buon fine.  Infine la finestra inbasso a destra mostra i fuses. questo programmino di test esegue una  scansione dei pin di uscita con un simpatico effetto "supercar".   E' disponibile il filmino in formato quick time  dell'effetto finale.

download del filmato del test del PLC PIC Modello Micro-GT P877-Z

Una volta chiuso il sandwich e caricato il programma di test avremmo il risultato finale visibile nella foto sottostante.

 

Nella foto sottostante si vede la magnifica confusione sempre presente nel tavolo dei progettisti di sistemi elettronici :-)

La pistra madre è connessa alla scheda di espansione di I/O progettata in questo stesso sito.

 

PLC AUTO COSTRUITI CON PIC SERIE 18F

In questa sezione vedremo come sia possibile ottenere i P.L.C.  modello Micro-GT P2580, Micro-GT P4580-Z dai PLC modello Micro-GT P876, Micro-GT P877-Z

Cominciamo osservando che la piedinatura del 18F2580 è compatibile con il 16F876, mentre il PIC 18F4580 è compatibile con il 16F877, questo permetterà la sostituzione diretta del chip nei circuiti stampati realizzati per seri 16F e sopra presentati.

            

è possibile rendere molto più compatta la costruzione del PLC utilizzando il PIC18F4580 nella versione smd (surface mountage device)

 

Per la versione smd dovrà essere costruita una versione dedicata del circuito stampato mentre come già detto per le versioni dual in line (D.I.L.) useremo i PCB delle versioni costruite per la serie 16. La serie 18 malgrado la compatibilità pin to pin  mette a disposizione una più elevata quantità e tipologia di periferiche integrate, ad esempio i pin 35 e 35  del 18F4580 è abbinato al CAN bus che non  potrà essere utilizzato usando il PCB del PLC ingegnerizzato sul PIC 16F877.  un ulteriore miglioria sta nella quantità di canali analogici disponibili che passano da 8 a 11 (vedere i pin num. 34, 37, 33 abbinati rispettivamente ai canali AN8, AN9, AN10).

scarica la documentazione dei PIC della serie PIC18F2480/2580/4480/4580 in formato pdf

Quindi se si è disposti ad accettare le limitazioni di potenzialità sopradescritte semplicemente sostituite i microchip e avrete i PLC PIC modello Micro-GT P2580, Micro-GT P4580-Z

La programmazione di questi PLC al mometo non potrà avvenire in Ladder PIC perchè il software non è predisposto, sarà quindi necessari programmarlo in C18 scaricabile gratuitamente nella  versione student dal sito ufficiale della microchip     www.microchip.com

 

  Pagina precedente