Go Down

Topic: Linguaggio PLC (KOP / AWL) (Read 8567 times) previous topic - next topic

Giuseppe G.

Jan 25, 2012, 04:34 pm Last Edit: Jan 29, 2012, 05:40 pm by Giuseppe G. Reason: 1
Un saluto a tutti!

Siete liberi di prendermi per matto !!! ......ma comunque cercherò di portare a termine il progetto..... anche con l'aiuto molto ben accetto, di qualcuno che abbia voglia di dare il proprio contributo.

Il progetto lo chiamerò ARDUOPLC.

In passato ho realizzato un piccolo e semplice progetto per realizzare delle semplici applicazioni a scopo didattico.
Il progetto si chiamava FACILEPLC postato su www.facileplc.blogspot.com che ha avuto un feedback discreto.

Questo semplice progetto, serviva a realizzare un micro PLC a costo molto basso, programmabile in un linguaggio simile all' AWL di Siemens, chiamato da me FPLC completamente free.

Dopo una minuziosa ricerca nel web, ho riscontrato che esistono simulatori/programmatori come LadderPIC che somigliano molto a quello che vorrei realizzare io, o addirittura come il mastodontico AUTOMGEN 8, potentissimo software purtroppo non free che nella ultima versione ha inserito un tools per generare il codice in C compatibile con Arduino.

Lo scopo di questo progetto, è dare un piccolo contributo al mondo Arduino in campo della programmazione logica di tipo LADDER (KOP per Siemens) o IL logic (AWL per Siemens) dedicato a tutti i programmatori di PLC con una certa esperienza che vorrebbero realizzare qualcosa di semplice senza spendere troppo (anzi molto poco) o addirittura per realizzare delle demo con un linguaggio industriale.

Vi chiederete:
"Ma che bisogno c'è di creare questo, quando esiste un IDE che con il linguaggio C ci permette di gestire il microprocessore di Arduino come si vuole?"

Bene! Semplicemente perchè, chi come me, programma i PLC Siemens, GE-Fanuc o altri ancora, utilizzando da anni linguaggi prettamente logici o a contatti "LADDER" , non vuole scostarsi troppo dallo standard industriale e quindi tende a minimizzare la potenza e la versatilità di Arduino.

Esistono mini PLC che forniscono in kit il software di programmazione completo del PLC con prezzi relativamente bassi, come ad esempio CUBLOC, (ottimo dispositivo) che fornisce anche una programmazione in LADDER e BASIC nell' IDE gratuito.

Ecco che allora ho pensato : Perchè non creare qualcosa che possa interfacciare il mondo della programmazione PLC industriale con il favoloso mondo Arduino visto che in passato molti lo hanno richiesto, ma nessuno ha mai portato avanti questa idea?

Sarebbe bello poterlo inserire come tools nell' IDE di Arduino, per implementare la sua compatibilità di programmazione a livello tecnico/industriale e semplificarne molto il suo utilizzo.

Ecco una bozza descrittiva del progetto:

a) Realizzazione di un semplice software che possa testare e simulare la logica (in primis, demo, in futuro on line con l' hardware)
b) Realizzazione di un convertitore di linguaggio, da logico o Ladder a linguaggio C compatibile con Arduino.
c) Poter integrare sull'IDE di Arduino la possibilità di richiamere il tools se possibile, o leggere il file generato e programmare direttamente Arduino, che non ne sono sicuro, ma credo che sia già fattibile.

Per il punto a), ho iniziato a realizzare un simulatore di logica semplice che posterò prossimamente su www.arduoplc.blogspot.com ,realizzato in VisualBasic già funzionante comprendente le seguenti funzioni:
comandi logici: OR, OR NOT, AND, AND NOT, XOR, XOR NOT, SET, RESET, Fronte di salita, Fronte di discesa,Master control (RLC)
comandi di controllo: LABEL, GOTO
comandi di calcolo : ADD, SUBT, MOLT, DIV, Confronto (=, <>, >=, <=)
comandi di assegnazione: OUTPUT, MEMORY, REGISTER
32 fronti di salita
32 fronti di discesa
32 memorie digitali interne
32 registri di tipo integer +/- 32765 (per realizzare counter, timer e calcolo conversioni)

Previsione delle connessioni HW:
6 ingressi digitali fisici
6 uscite digitali fisiche
6 ingressi analogici

1 comunicazione Seriale/USB per il PC

Per il punto b), basterà utilizzare il linguaggio logico delle istruzioni, per creare dei rami in linguaggio C che verranno utilizzati per l'IDE, dove cominceranno tutti per "if", rispettando la logica del ramo "step" che deve essere eseguito.  Il tutto sequenzialmente.
La configurazione degli I/O e la mappatura della memoria, sarà effettuata utilizzando un file di riferimento editabile e configurabile.

Che ne pensate ? :(

Un saluto a tutta la comunità.
Giuseppe G.

PaoloP

---> http://cubloc.com/product/01_01cb210.php

ivanred

Bene ora quello che io pensavo di studiare per il prossimo inverno, ora sono impegnato in altro progetto
che mi questo momento ha la priorità, ma se un pò più in la ti servisse un aiutino sarò ben felice.

Ivanred

Giuseppe G.

Grazie PaoloP.   :)

Il riferimento che mi hai indicato (già evidenziato non direttamente nel mio primo post), è proprio quello che vorrei realizzare con Arduino, ma in un linguaggio logico simile all' AWL ed in un secondo momento in Ladder.

Ciao.
Un saluto a tutta la comunità.
Giuseppe G.

Giuseppe G.

Ciao Ivanred.  :smiley-mr-green:

Spero che tu possa aiutarmi prima, sempre che sia un argomento di tuo interesse.

Sto ultimando la demo del simulatore del linguaggio logico e penso per fine mese di postare il tutto con descrizioni ed istruzioni per l'uso.

Buona giornata.
Un saluto a tutta la comunità.
Giuseppe G.

Marco Benini

Ciao,

tempo fa avevo trovato questo progetto di compilatore di logica Ladder: "Ladder Logic for PIC and AVR" (licenza GPL Version 3)

http://www.cq.cx/ladder.pl


e poi quest'altro articolo su come farlo funzionare con Arduino.

http://electronics4dogs.blogspot.com/2011/07/ldmicro-and-arduino.html


Credo possa essere utile al tuo progetto.

Ciao,
Marco.




Giuseppe G.

Grazie Marco.  ;)

L'info è interessante e la libreria "ladder.h" potrebbe essere utilizzata per la mia applicazione.

Da tener conto che il simulatore LD ladderpic utilizza un linguaggio strettamente ladder, mentre io ne voglio realizzare uno in un linguaggio logico.

Grazie ancora.

Ciao

Un saluto a tutta la comunità.
Giuseppe G.

Testato

a differenza di facilepcl, dove oltre ad un lavoro sw hai dovuto creare anche l'hw, questo vuole essere solo un progetto sw ? e come hardware ArduinoUno ?
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

brunol949

Non posso che fare gli auguri di successo ma ....
Da ormai vecchio programmatore di PLC dico di aver visto come una benedizione il passaggio da IL con tastierina dedicata a LADDER ; al tempo su un Compaq 8088 ; quello che chiuso sembra una macchina per cucire.
Ma la soddisfazione piu' grande e' stato l'avere fra le mani un tool IEC61131-3 , vale a dire un qualcosa che ti permette di scegliere il tipo di linguaggio
Ho praticamente abbandonato il Ladder per ST e cioe' la programmazione strutturata ; ci fai tutto e di piu'.
Il progetto puo' essere un buon esecizio di stile ma secondo me lo vedo poco utile
Se uno deve fare qualche lavoretto minimalista in Ladder si compra il LOGO Siemens
NON uccidetemi.

     Bruno
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

Giuseppe G.

Ciao Testato.  :smiley-yell:

Si è proprio così, praticamente utilizzare arduino uno come base HW con 6 in dig, 6 out dig, 6 in ana e le relative memorie e registri interni.

Il simulatore, inizialmente testa il SW in linguaggio AWL, poi, compilato lo prepara per essere trasferito su arduino uno.

In un secondo momento, dovrò implementare la funzione on-line che permette di supervisionare il micro-plc, proprio come i veri tools di programmazione delle grandi case.

Come future, pensavo di implementare l'utilizzo di arduino mega, per utilizzarlo come CPU, ed eventualmente arduino uno come schede di implementazione I/O........... si ma sono ancora lontano. Inizio a preparare il micro plc con arduino uno.

Buona serata.
Un saluto a tutta la comunità.
Giuseppe G.

Giuseppe G.

Ciao Bruno.

Certo, hai ragione!

Sai, cerco solo, come ho detto nel primo post, di dare un piccolo contributo alla flessibilità di questo strumento.

Il tools di cui parli credo non sia gratuito, e sicuramente le potenzialità nemmeno da confrontare con questo francobollo personalizzato.

Ecco che cosa intendo per piccolo contributo, qualcosa di gratuito alla portata di tutti che possa integrare un linguaggio logico diverso dal C.

Grazie per il chiarimento. Spero, una volta postato il tutto, di avere un tuo feedbak qualsiasi esso sia, sempre ben accetto.

Ciao.

Un saluto a tutta la comunità.
Giuseppe G.

brunol949

Spero, una volta postato il tutto, di avere un tuo feedbak qualsiasi esso sia, sempre ben accetto.
Sicuramente faro' prove e cerchero' di dare almeno dei consigli
Il mio pensiero era rivolto al fatto che un linguaggio strutturato e' molto piu' flessibile di un Ladder
Ci crei dei costrutti anche complessi che in Ladder richiedono flags di appoggio anche in funzione del fatto che gli elementi nella riga sono in numero limitato
Con il Ladder ci ho lavorato 'na vita e ci lavoro pure adesso
Avendo pero' avuto l'opportunita di avere per le mani un sistema CNC/PLC con il summenzionato tool ( LogicLab per la cronaca ) ho assaporato nuove vie che ricordavo solo nei miei lavoretti hobbistici fatti in Basic
Con Arduino sto' raccantando i pezzi per farmi ( o meglio per farlo a mia moglie ) un "semaforo" che indichi i flussi di corrente nel nostro impianto elettrico con fotovoltaico sul tetto , cosi non mi stressa piu' per sapere se puo attaccare una o due lavatrici in contemporane :-)
Buon lavoro .. seguiro lo volgersi dll'opera.
Ciao
         Bruno
Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

Testato

buon lavoro anche da parte mia,
se potro' essere utile come tester sono qui  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

ivanred

Per Giuseppe
mi scuso per il ritardo ma sono stato molto impegnato in questi giorni (neve e ancora neve)
ti aiuto ben volentieri ma in questo periodo posso fare il tester o poco più.
Anni fa ho usato i sistemi S5 di Siemens quindi conoscevo bene ladder ho usato anche il Kop e ovviamente l'AWL.
Vedo che ti hanno già postato il LINK di ladder.pl era a il progetto a cui volevo far riferimento,
vai avanti che quello che stai fancendo è l'ideale per l'hobbysta e per chi non vuole perdere tempo per imparare in nuovo linguaggio.
Domani sera faccio un giro sul forum..
Saluti
Ivanred

kattivik76

:) ho le lacrime agli occhi!!!

io mi occupo di sistemi di automazione PLC (SIEMENS) SCADA, DCS, telecontrollo, sviluppo abitualmente in AWL per la flessibilità e la potenza del linguaggio, inoltre a parità di funzioni logiche programmate, AWL utilizza molta meno memoria rispetto ad un linguaggio KOP (ladder) o FUP (porte logiche), dettaglio non trascurabile se si intende utilizzare Arduino come base hardware del sistema PLC.

disponibilissimo!!!

fatemi sapere :)

saluti
kattivik76
kattivik76
Sviluppo e realizzazione  Progetti Arduino
Teamspeack -> Arduino.cc -> 79.38.142.178:9987

Go Up