Vai al contenuto
PLC Forum


Collegare 24 PLC in rete e gestirli tramite Python


Asse

Messaggi consigliati

Salve, sono Stefano e quest'anno sto imparando ad utilizzare il PLC a scuola. Al momento per caricare un file LAD sul PLC, dobbiamo passare il file al professore, lui deve passare il file al suo portatile e da lì collegarsi con l'Ethernet al PLC. Questo richiede molto tempo, sopratutto quando il professore è impegnato con altro, perciò io e i miei compagni di classe abbiamo pensato di mettere in rete i PLC (in totale sono 24 PLC) e tramite un back-end in Python noi studenti possiamo caricare il file LAD direttamente dal nostro computer, senza dover passare dal professore. Cercando su Internet ho trovato questa libreria Python (https://github.com/gijzelaerr/python-snap7), ho aperto una discussione sulla pagina Github ma hanno risposto che neanche loro sanno come si potrebbe fare, dalla repository ho trovato quest'altro progetto su Curseforge (https://snap7.sourceforge.net) ma non ho trovato niente che mi potesse servirmi. La libreria Python permette di fare molte cose tranne caricare i file LAD, approfondendo la mia ricerca ho scoperto che non è possibile caricare un file al PLC direttamente ma solo tramite il software Logo Soft Comfort, perciò vorrei utilizzare la funzione "Dynamic DNS" di Logo Soft Comfort, così il mio back-end in Python fa da "ponte" e noi studenti possiamo caricare il nostro file LAD. Basta utilizzare la libreria 'socket' che si collega al PLC (quindi tramite una connessione TCP), oppure il PLC utilizza un'altro metodo di comunicazione, quindi devo trovare un'altra soluzione?

 

Grazie mille in anticipo e scusate per il disturbo

Link al commento
Condividi su altri siti


Livio Orsini

Prima di tutto complimenti per lo spirito di iniziativa che stai dimostrando.Che tipo di scuola frequenti?

 

Venendo alla tua domanda.

Il problema vero non èscaricare il file in ladder nel LOGO,ma è renderlo eseguibile.

Non so quali siano le tue conoscenze di micro informatica, perciò cerco di spiegartelo in modo abbastanza semplificato.

Nel LOGO c'è un microprocessore che lavora eseguendo programmi scritti nel suo linguaggio macchina.

Il software LOGO COnfort,per prima cosa compila i files in ladder in modo da ottere un codice che possa essere eseguito dal micro poi,  con un programma detto locator, li alloca agli indirizzi di memoria appropriati, quindi con un altro programma detto linker, li collega tutti assieme in uni file unico eseguibile. A questo punto il boot loader li scarica nel LOGO.

 

Come vedi ci sono paracchi passaggi prima di poter scaricare il tutto nel LOGO.

Dovresti per prima cosa rifartisul tuo PC di sviluppo tutti questi passaggi.

Anche avendone le capacità ti mancono tutte le informazioni necessarie, informazioni che sono proprietarie di Siemens e che non sono facilmente reperibili.

 

Anni fa feci quache cosa di simile con un altro PLC ma avevo adisposizione tutte le informazioni sul processore target e tutti gli strumenti Hw e Sw per eseguire il lavoro, oltre al fatto, non trascurabile, di lavorare in un'azienda ed avere un certo numero di collaboratori da dedicare al lavoro.

 

Comunque ancora complimenti per la tua volgia di sapere e di fare.

 

PS La libreria Snap/, se no ricordo male, è stata sviluppata da Dave Nardella, persona che oltre ad essere molto brava e competente è, per quanto ne so, molto collaborativa. Se non ri cordo male vive e lavora in quel di Bari. E attivo su vari social epotresti contattarlo se vuoi più informazioni sul suo lavoro.

Link al commento
Condividi su altri siti

Scusa Asse, ma se crei dei file .Lad significa che stai utilizzando Logo Soft Confort, perchè non carichi tu il progetto nel PLC?

Link al commento
Condividi su altri siti

Ciao @Asse. Io l'ho capita in questo modo...........

Ogni LOGO permette upload/download del programma sulla sua porta RJ45, giusto ?

A questo punto, tutti i logo avranno un proprio indirizzo ; ogni logo raggiunge uno switch centrale che li interconnette con il computer dell'alunno.

Ogni alunno si collega al proprio Logo e opera come desidera.

Ho capito male l'architettura ?

Link al commento
Condividi su altri siti

Livio Orsini
2 ore fa, beppo ha scritto:

Scusa Asse, ma se crei dei file .Lad significa che stai utilizzando Logo Soft Confort, perchè non carichi tu il progetto nel PLC?

 

47 minuti fa, ghismo1974 ha scritto:

A questo punto, tutti i logo avranno un proprio indirizzo ; ogni logo raggiunge uno switch centrale che li interconnette con il computer dell'alunno.

Ogni alunno si collega al proprio Logo e opera come desidera.

 

 

LOGO confort risiede solo sul PC del professore.

Quindi bisogna passare necessariamente attraverso quel PC.

Link al commento
Condividi su altri siti

I ragazzi come generano il file da caricare se non usano logosoft?

Oppure usano il logosoft in modalità demo?

La libreria snap7, a quello che so, comunica col logo solo per trasferire dati e non il programma.

Link al commento
Condividi su altri siti

9 ore fa, Livio Orsini ha scritto:

Prima di tutto complimenti per lo spirito di iniziativa che stai dimostrando.Che tipo di scuola frequenti?

Frequento un C.F.P Indirizzo Elettrico
 

9 ore fa, Livio Orsini ha scritto:

Venendo alla tua domanda.

Il problema vero non èscaricare il file in ladder nel LOGO,ma è renderlo eseguibile.

Non so quali siano le tue conoscenze di micro informatica, perciò cerco di spiegartelo in modo abbastanza semplificato.

Nel LOGO c'è un microprocessore che lavora eseguendo programmi scritti nel suo linguaggio macchina.

Il software LOGO COnfort,per prima cosa compila i files in ladder in modo da ottere un codice che possa essere eseguito dal micro poi,  con un programma detto locator, li alloca agli indirizzi di memoria appropriati, quindi con un altro programma detto linker, li collega tutti assieme in uni file unico eseguibile. A questo punto il boot loader li scarica nel LOGO.

 

Come vedi ci sono paracchi passaggi prima di poter scaricare il tutto nel LOGO.

Dovresti per prima cosa rifartisul tuo PC di sviluppo tutti questi passaggi.

Anche avendone le capacità ti mancono tutte le informazioni necessarie, informazioni che sono proprietarie di Siemens e che non sono facilmente reperibili.

Quindi in breve dovrei capire come Logo Soft Comfort comunica con il PLC e una volta capito dovrei implementarlo in Python (se è fattibile)

 

9 ore fa, Livio Orsini ha scritto:

Comunque ancora complimenti per la tua volgia di sapere e di fare.

Grazie mille 😃

9 ore fa, Livio Orsini ha scritto:

PS La libreria Snap/, se no ricordo male, è stata sviluppata da Dave Nardella, persona che oltre ad essere molto brava e competente è, per quanto ne so, molto collaborativa. Se non ri cordo male vive e lavora in quel di Bari. E attivo su vari social epotresti contattarlo se vuoi più informazioni sul suo lavoro.

Ho già contattato il signor Dave Nardella su Facebook, mi ha risposto che neanche lui sa nello specifico come si potrebbe fare, ma di provare lo stesso.

 

La ringrazio molto per aver risposto al mio thread, se vuole le faccio sapere i progressi che farò nel progetto, e (sempre se vuole) aiutarmi a capire alcuni dubbi sul funzionamento del PLC e altro..

Link al commento
Condividi su altri siti

3 ore fa, beppo ha scritto:

Scusa Asse, ma se crei dei file .Lad significa che stai utilizzando Logo Soft Confort, perchè non carichi tu il progetto nel PLC?

Non carichiamo noi il file .Lad dal nostro computer perchè è un fisso, e il cavo non è abbastanza lungo per arrivare fino ai nostri PLC. Quindi nei nostri PC è installato Logo Soft Comfort ma a causa della distanza non possiamo collegarci fisicamente, e anche se fosse possibile, sarebbe molto scomodo visto che siamo in 24 studenti in un'aula.

Link al commento
Condividi su altri siti

1 ora fa, ghismo1974 ha scritto:

Ciao @Asse. Io l'ho capita in questo modo...........

Ogni LOGO permette upload/download del programma sulla sua porta RJ45, giusto ?

A questo punto, tutti i logo avranno un proprio indirizzo ; ogni logo raggiunge uno switch centrale che li interconnette con il computer dell'alunno.

Ogni alunno si collega al proprio Logo e opera come desidera.

Ho capito male l'architettura ?

Ciao @ghismo1974  da quello che ho capito la porta RJ45 sarebbe la porta Ethernet del PLC, giusto?

Esattamente, ogni PLC ha il proprio indirizzo ma a causa della mancanza di IP nella scuola, useremo uno switch che fa anche da NAT per far uscire tutti i PLC con lo stesso IP ma con porte diverse, l'idea iniziale era di mettere questo IP con porte diverse direttamente nella rete principale della scuola (dove sono connessi i nostri computer), così era facile da implementare. Ma pensandoci bene, la gente potrebbe collegarsi da qualsiasi aula informatica, e qualsiasi studente potrebbe caricare il proprio programma sul PLC di un'altro suo compagno di classe.

Per questo abbiamo pensato di creare un back-end in Python per gestire i PLC ed evitare che la gente si connetta a un'altro PLC che non sia il suo, e il docente avrà molto più controllo nella gestione dei PLC, successivamente sarebbe interessante dare la possibilità di creare degli impianti con il PLC con la funzione di essere controllati da remoto e altre cose che al momento non mi vengono in mente, per cercare di simulare una macchina che viene creata in azienda (ovviamente con i limiti che abbiamo a scuola).

Link al commento
Condividi su altri siti

53 minuti fa, Mircoron ha scritto:

I ragazzi come generano il file da caricare se non usano logosoft?

Oppure usano il logosoft in modalità demo?

La libreria snap7, a quello che so, comunica col logo solo per trasferire dati e non il programma.

Nei nostri PC Fissi scolastici abbiamo Logo Soft Comfort ma a causa della distanza dei PLC, non possiamo collegarci fisicamente, quindi siamo obbligati a passare il file al professore.

Si, ho visto anch'io che la libreria snap7 permetta di trasferire dati, leggere lo stato della CPU e altre cose ma non l'upload di un programma tramite Logo Soft Comfort.

Link al commento
Condividi su altri siti

1 ora fa, Livio Orsini ha scritto:

 

 

 

LOGO confort risiede solo sul PC del professore.

Quindi bisogna passare necessariamente attraverso quel PC.

No, Logo Soft Comfort risiede anche nei nostri PC (infatti da lì creiamo i programmi da usare per gli impianti), ma visto che sono dei PC Fissi non possiamo collegarsi fisicamente al PLC, per questo siamo obbligati a passare il file al professore (che usa un portatile).

Link al commento
Condividi su altri siti

Livio Orsini
9 minuti fa, Asse ha scritto:

No, Logo Soft Comfort risiede anche nei nostri PC (infatti da lì creiamo i programmi da usare per gli impianti), ma visto che sono dei PC Fissi non possiamo collegarsi fisicamente al PLC, per questo siamo obbligati a passare il file al professore (che usa un portatile).

 

Allora è tutto più semplice. Basta fare una rete dei PC in Ethernet ed in questa rete inserire il LOGO.

Però essendo il LOGO unico significa che un solo PC alla volta potrà accedervi.

 

Il LOGO lo conosco solo molto superficialmente, quindi non sono sicuro che possa essere membro di una rete di PC. Nel caso non fosse possibile sarebbe necessario uno Switch per connetterlo di volta in volta ai vari PC; oppure usare un PC come ponte tra LOGO e gli altri PC.

 

Vediamo se c'è qualche conoscitore del LOGO che possa dare indicazioni utili.

 

Da come la vedo io non c'è necessità di programmi in Python e librerie varie.

Link al commento
Condividi su altri siti

4 minuti fa, Livio Orsini ha scritto:

Però essendo il LOGO unico significa che un solo PC alla volta potrà accedervi.

Questo l'avevo letto su Internet, ma nel caso una persona carica il suo programma credo che una volta finito l'upload viene disconnesso in automatico, quindi un'altra persona potrebbe connettersi. Poi l'altro problema sarebbe dire alla gente qual'è l'IP (che è uguale per tutti) e la porta del loro PLC, e so già che spunterebbero casini e altre cose, per questo pensavamo di fare il back-end in Python, però se risulta troppo complesso o non è fattibile allora procederemo in questa maniera.

Link al commento
Condividi su altri siti

Livio Orsini
13 ore fa, Asse ha scritto:

Questo l'avevo letto su Internet, ma nel caso una persona carica il suo programma credo che una volta finito l'upload viene disconnesso in automatico, quindi un'altra persona potrebbe connettersi.

 

Questa non l'ho capita.🙂

Scarichi il programma e devi almeno verificare se fa quello per cui è stato previwsto, quindi ti serve la connessione.

In altri termini solo una persona alla volta può lavorare con il PLC, anche se gli altri sono connessi alla stessa rete.

Link al commento
Condividi su altri siti

Ma c'è un LOGO solo per tutti o i LOGO sono alcuni?

Sul LOGO si può impostare una password di programmazione e solo chi la conosce può operare su di esso (nel caso siano più di uno).

Inoltre il LOGO è ethernet quindi si può collegare alla rete della scuola facendo riservare un IP statico nel pool del server DHCP e

a quel punto tutti i pc possono accedere ai LOGO conoscendone la password.

Modificato: da Mircoron
Link al commento
Condividi su altri siti

Livio Orsini
3 ore fa, Mircoron ha scritto:

Inoltre il LOGO è ethernet quindi si può collegare alla rete della scuola facendo riservare un IP statico nel pool del server DHCP e

a quel punto tutti i pc possono accedere ai LOGO conoscendone la password.

 

Concordo, è la soluzione più corretta.

Non ero sicuro che si potesse asseganre un IP statico al LOGO (praticamente non lo conosco).

Link al commento
Condividi su altri siti

10 ore fa, Livio Orsini ha scritto:

 

Questa non l'ho capita.🙂

Scarichi il programma e devi almeno verificare se fa quello per cui è stato previwsto, quindi ti serve la connessione.

In altri termini solo una persona alla volta può lavorare con il PLC, anche se gli altri sono connessi alla stessa rete.

Si, quando noi finiamo di fare il programma su Logo Soft Comfort poi lo passiamo al professore e lui lo carica sul PLC per provarlo, il mio dubbio è: una volta che carico il programma sul PLC e quindi mi disconnetto, poi un'altra persona potrebbe collegarsi e caricare il programma. Con questo back-end si aumenterebbe la sicurezza.

Link al commento
Condividi su altri siti

5 ore fa, Mircoron ha scritto:

Ma c'è un LOGO solo per tutti o i LOGO sono alcuni?

Sul LOGO si può impostare una password di programmazione e solo chi la conosce può operare su di esso (nel caso siano più di uno).

Inoltre il LOGO è ethernet quindi si può collegare alla rete della scuola facendo riservare un IP statico nel pool del server DHCP e

a quel punto tutti i pc possono accedere ai LOGO conoscendone la password.

C'è un LOGO a testa (24 PLC), si ho visto che si può impostare una password, ma so già che la gente si dimentica la password e l'anno dopo ci sarebbero problemi per dare le password dei singoli PLC agli studenti. Quindi con questo back-end si semplifica tutto, anche la gestione dei PLC.

Al momento potrei mettere la password e metterlo nella NAT, e in futuro cercare di capire come comunica Logo Soft Comfort con il PLC e sviluppare il back-end, così è più semplice la gestione dei PLC, sopratutto quando dovranno essere riassegnati a dei nuovi studenti.

Link al commento
Condividi su altri siti

Livio Orsini
12 ore fa, Asse ha scritto:

C'è un LOGO a testa (24 PLC), s

 

Allora vediamo se ho capito bene: Ogni studente ha la sua postazione con installato LOGO Confort e dispone un suo LOGO target.

 

Se è così non capisco per qual motivo si debba passare al PC del provessore per scaricare il programma nel logo e, soprattutto, per qual motivo si voglia fare questa rete.

Link al commento
Condividi su altri siti

7 ore fa, Livio Orsini ha scritto:

 

Allora vediamo se ho capito bene: Ogni studente ha la sua postazione con installato LOGO Confort e dispone un suo LOGO target.

 

Se è così non capisco per qual motivo si debba passare al PC del provessore per scaricare il programma nel logo e, soprattutto, per qual motivo si voglia fare questa rete.

Ogni alunno ha il suo computer fisso e un PLC Logo, il computer e il PLC sono molto distanti tra loro, noi dal computer fisso creiamo il programma tramite Logo Soft Comfort, ma per caricarlo nel nostro PLC lo passiamo al professore, lui passa il file al suo portatile e tramite Ethernet si collega al PLC e carica il programma al PLC.

Il programma lo carica il professore perchè il nostro computer fisso è troppo distante dal PLC, per questo vorremmo creare questo progetto così evitiamo tutti questi passaggi per caricare il programma al PLC.

Link al commento
Condividi su altri siti

2 ore fa, Asse ha scritto:

Ogni alunno ha il suo computer fisso e un PLC Logo, il computer e il PLC sono molto distanti tra loro, noi dal computer fisso creiamo il programma tramite Logo Soft Comfort, ma per caricarlo nel nostro PLC lo passiamo al professore, lui passa il file al suo portatile e tramite Ethernet si collega al PLC e carica il programma al PLC.

Il programma lo carica il professore perchè il nostro computer fisso è troppo distante dal PLC, per questo vorremmo creare questo progetto così evitiamo tutti questi passaggi per caricare il programma al PLC.

Io in azienda ho dei logo distanti 350 km collegati in rete tramite VPN e li programmo e li monitoro tranquillamente, non è una questione di distanza

Link al commento
Condividi su altri siti

Livio Orsini

Sino a 100m di tratta, in ethernet, non è necessario interporre alcun condizionatore di segnale.

Sicuramente la distanza tra PLC e PC sarà inferiore a100m.

Al limite fate un'unica rete che collega PC e PLC; mi stupisce che, almeno, i PC non siano già connessi in rfete.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...