Get Adobe Flash player

AttiloPLC

User Rating:  / 0
PoorBest 

Link Articolo Originale: 

http://www.grix.it/viewer.php?page=10185

Salve gente, questo e' il mio terzo articolo qui' su grix, ma diversamente dagli

altri due articoli stavolta ho deciso di pubblicare qualcosa di piu' utile che spero

apprezzerete.

Un plc, ma non il solito, un plc potente versatile e soprattutto

che non ha bisogno del pc ne di linguaggi cone il ladder per essere

programmato, in quanto si serve di menu' e sottomenu per la programmazione

dei vari eventi da gestire, e che non e' soggetto ai limiti del proprio hardwere.

L'oggetto in questione e' nato circa due anni fa' come un comunissimo

tymer che pero' ha preso una strada diversa da quello che ara in principio

per finire in bella vista sulla scrivania per piu' di un'anno aspettando questo

momento.

Descrizione


Lo schema elettrico non e' di sicuro tra i piu' complicati, ed e' composto

dal solito 7805 piu' i vari condensatori che formano lo stadio di alimentazione,

mentre una resistenza ed un diodo mantengono alto lo stato del pin di reset.

Il clock e' affidato a due quarzi, il primo per il clock del'ic da 10Mhz

con PLL 4x che ne moltiplica la frequenza per quettro quindi un clock di 40Mhz,

il secondo da 32768 Hz genera il clock per il tymer1 che ad ogni suo interrupt

fa avanzare i secondi e di conseguenza minuti ore e settimane.

Inoltre a bordo sono montati quattro pulsanti un lcd ed un sensore

per la temperatura ambiente, nulla di particolare in pratica a parte il

programma che gira al suo interno e che ha richiesto molto tempo per la sua

stesura.

Nella Prima immagine una foto del plc divisa in sezioni numerate.

1 Alimentazione
2 ingressi, quttro file di connettori strip a tre poli, in alto gli ingressi al centro le masse
  e sotto i positivi in modo da potervi prelevare anche l'alimentazione per un eventuale modulo.

  rispettivamente da sinstra verso destra abbiamo l'ingresso analogico 1, l'ingresso analogico2,

  l'ingresso digitale 1 e l'ingresso digitale 2.

3 sensore di temperatura (lm335)

4 oscillatori

5 porta seriale

6 uscite con led di indicazione stato la fila superiore sono rispettivamente da sinistra

  verso destra out1 out2 out3 out4 ed out5, la fila inferiore sono solo dei riferimenti a massa.

7 pulsanti, dall'alto verso il basso- up - back/exsit - ok/menu - down-

8 trimmer per la regolazione del contrasto

9 il pic 18f4685

10 il display lcd

11 la porta icsp.

Software 


Come ho detto prima l'ardware non e' nulla di particolare, infatti sono presenti

solo quattro ingressi e cinque uscite, ma e' presente anche una porta seriale

con cui e' possibile gestire praticamente centinaia di ingressi ed uscite

rendendo questo plc in grado di gestire praticamente qualsiasi

applicazione, vediamo come.

Al primo avvio vedrete un messaggio di benvenuto seguito da un breve

caricamento che dopo aver caricato l'intero contenuto dell'eeprom in ram

lascera' il posto alla schermata d'ellora.

Da qui potete alternare la visualizzazione dell'ora o della temperatura premento indistintamente

up o down.

Premendo ok/menu' si accede al menu' principale dove potrete muovervi coi tasti

up e down per selezionare la voce da modificare, il menu' e' strutturato nel modo seguente

Evento1

Evento2

Evento3

---

---

---

Evento50

Credits

Formatta Mem.

Imposta ora

Potete muovervi in entrambi le direzioni, quindi anche se l'impostazione dell'ora

e' inserita alla fine andando indietro col tasto down sara' la prima che troverete.

E' importante come prima operazione formattare la memoria, altrimenti non vi sara'

permesso di impostare degli eventi, alla prima formattazione non vi sara' messaggio

di conferma, cosa che invece troverete dalla seconda in poi, l'oporazione

scrive il file sistem del plc sulla eeprom in modo tale da mantenere le impostazioni

anche in assenza di alimentazione.

Bene, avete formattato la memoria ed impostato l'ora, siete pronti per impostare gli eventi.

Il discorso sara' un po l'ungo visto che i parametri che potete scegliere sono molti,

cerchero di descrivere i vari sottomenu nel modo piu' accurato possibile facendo

riferimento solo ad Evento1, per gli altri la procedura di configurazione sara' uguale.

Andate quindi su Imp. Event1.

Potrete scegliere tra,

Evento orario

Evento esterno

Evento seriale

Evento temp. (temperatura)

Evento inattivo

Se scegliete evento orario andrete al menu per l'impostazione dell'ora

dove potrete inserire a che ora deve verificarsi l'evento ed il giorno,

(se lasciate il giorno su No l'evento sara ripetuto giornalmente, diversamente

potete impostarlo su lun. mar. mer. e via dicendo)

Una freccetta segnala se state impostando giorni minuti o ore, se sbagliate

qualcosa potete andare indietro col tasto back.

Finito di impostare l'ora andrete al menu' dove potete selezionare l'uscita

PASSO1

uscita1

uscita2

uscita3

uscita4

uscita5

seriale

Se scegliete una qualsiasi delle uscite fisiche andrete el menu' azione

dove potrete selezionare se accendere spegnere o cambiare lo stato

dell'uscita selezionata.

Nota. Le uscite non sono vincolate agli eventi che le utilizzano quindi

e' possibile far interagire piu' eventi tra loro.

Se scegliete l'uscita seriale andrete al menu' dove scegliere i dati da inviare

sono quattro byte quindi potete inserire quattro valori da 0-255 che saranno inviati sulla seriale

nell'ordine in cui li avrete inpostati al verificarsi dell'evento (in questo caso l'ora).

Vediamo ora come funziona l'evento esterno.

Selezionate evento esterno, verrete portati al menu dove selezionare l'ingresso da

utilizzare (come per le uscite gli ingressi non sono vincolati, quindi potrete usarli per

piu' eventi) qui potrete scegliere tra,

Analog In1

Analog In2

Digital In1

Digital In2

Se scegliete un ingresso digitale andrete direttamente a scegliere l'uscita da gestire

come per l'evento orario (vedi passo1).

Se invece scegliete un ingresso analogico andrete al menu' successivo,

menu mode dove potrete scegliere tra  < , = , e > .

Se scegliete < .

Se il valore dell'ingresso analogico scelto e' inferiore a quanto impostato

viene generato l'evento.

Se scegliete = .

Se il valore dell'ingresso selezionato e' uguale a quanto impostato viene

generato l'evento.

Se scegliete > .

Se il valore dell'ingresso selezionato e' superiore a quanto inpostato viene

generato l'evento.

Impostato il modo vi sara' chiesto di impostare la soglia di azione dopodiche

andrete come prima a scegliere l'uscita e l'azione (vedi passo1).

Ora parleremo dell'evento seriale.

Se scegliete un evento seriale andrete ad impostare come per l'uscita seriale

quattro dati in formato byte che se ricevuti nell'ordine in cui li avete

inseriti andranno ad azionare l'evento impostato, dopo aver impostato

i dati premendo ok andrete come prima (passo1) a selezionare l'uscita

e l'azione.

Evento temp. (temperatura).

Come per gli ingressi analogici vi troverete a scegliere fra i tre modi

disponibili, cioe  < , = , e > , dopodiche andrete ad impostare il valore per la

temperatura, ed in seguito andrete come prima a scegliere l'uscita e l'azione (vedi passo1).

Evento inattivo.

Se scegliete l'evento inattivo l'evento viene disabilitato.

Nota.

Ad ogni operazione viene effettuato un caricamento, non e' un effetto grafico,

durante il caricamento tutte le variabili vengono salvate su eeprom,

questo si e' reso necessario a causa della grande quantita' di dati in gioco,

si tratta di un migliaio di variabili di tipo byte, quindi ho dovuto creare

delle rutin per il salvataggio ed il caricamento dei dati che agiscono in modo

autonomo.

Una mancanza di alimentazione durante il salvataggio dei dati porterebbe

a comportamenti imprevedibili da parte del plc che andrebbero vista la struttura

della rutin che gestisce le uscite ad influenzare l'intero funzionamento del sistema.

Credo finalmente di aver finito gli argomenti su cui parlare,

quindi non mi resta che caricare qualche foto della mia realizzazione

nonche' il file per il download dove troverete tutto il necessario per

la realizzazzione tranne il sorgente, questultimo ho preferito non inserirlo

a causa dei copia incolla selvaggi che ho visto di recente.

Non preoccupatevi,

inviero comunque il sorgente via mail agli utenti che ne faranno richiesta.

 Da Qui potete scaricare il file rar contenente l'hex il pcb lo schema ed i datasheet

del pic 18f4685, dell'lcd e del 7805.

UserFiles/attilo72/AttiloPLC.rar

Dmenticavo Il connettore sul retro e' per la retroilluminazione. 

Con questo ho finito, come sempre non esitate a contattarmi per aventuali dubbi.

Saluti Roberto.

Login Form

Elettronica Open Source