Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Implementazione di client HTTP su PLC

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

0
voti

[1] Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 7 set 2012, 17:51

Normalmente i PLC offrono funziooni di dialogo via TCP/IP. Ognuno con le caratteristiche del caso, ma è una possibilità che c'è, (l'avevo intravista, forse nei PLC che implementano il CoDeSys).
Avete notizia che con questi PLC siano stati implementati con successo dei client HTTP per la ricezione di dati sotto forma da stringhe, da parte di un server remoto?

In generale, cosa sapete sull'argomento?
Grazie.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

4
voti

[2] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteAOX » 7 set 2012, 18:22

Le librerie standard di CoDeSys non si spingono fino a tale livello ma al massimo si fermano sullo stack TCP/IP. Sta poi nel produttore del PLC andare oltre con le proprie librerie specifiche (es. Wago).
Anche io nel mio caso ho dovuto implementare la funzione IEC che, appoggiandosi allo stack TCP/IP, invia una richiesta di tipo GET ad un server remoto. La risposta del server (in pratica la risorsa all'indirizzo specifico) è restituita in una stringa. In genere sul server il "sito" è una pagina php che fa qualche cosa di intelligente in quanto al PLC non interessa navigare come fa una persona. Per esempio, sempre nel mio caso, ho fatto anche un passo dopo al HTTP_GET facendo eseguire al programma PHP le funzioni di un motore di gestione dei database MySQL. Ma, comandato dal PLC, il server remoto può fare anche le cose più impensabili come creare al volo un file PDF con informazioni e spedirlo via email.
La funzione CoDeSys di HTTP_GET è bruciata nel RTS del PLC dopo la compilazione in C dell'insieme.
Il file in sorgente C specifico solo di tale servizio posso dartelo come traccia. Non è tanto complesso perché alla fine si tratta di preparare la richiesta, inviarla e aspettare la risposta pulendola dall'intestazione di esito.
In alternativa ti posso suggerire le librerie OSCAT che sono free totali, in formato sorgente e quindi sbirciabili e adattabili. Io ho preso quelle di CoDeSys ma mi risulta che ci siano anche per il Siemens.
Sul sito bisogna girare un po' per capire dove fare il download ma ne vale la pena. Ovviamente tutti i blocchi funzione hanno un bel manuale in PDF.
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29

0
voti

[3] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 7 set 2012, 23:11

Mi offri indicazioni molto preziose. Andrò certamente a guardare.
Grazie.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

0
voti

[4] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 9 set 2012, 21:02

Allora, un client HTTP in C++ l'ho trovato. E' completo e la conversione in CoDeSys mi prenderebbe parecchio tempo.
Tu dicevi di averne uno scritto in C. Forse potrebbe essere più utile come punto di partenza? Mi piacerebbe poterlo vedere. E' una risorsa pubblica?
Il sito dell'OSCAT l'ho visto, anche se a dire il vero un progetto di client HTTP non l'ho trovato per nessun linguaggio.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

0
voti

[5] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 9 set 2012, 21:12

Ok, ho completamente sbagliato OSCAT. Forse quello a cui tu ti riferivi era questo: http://www.oscat.de/
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

2
voti

[6] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteAOX » 9 set 2012, 22:53

Il sorgente C che ho è stato derivato e riordinato (soffro quando vedo i sorgenti un po' disordinati) da un software di pubblico dominio della ditta tedesca che mi vende il processore (quello che poi vedi sul mio kit). Esso fa riferimento ovviamente alle funzioni API del TCP/IP dello specifico processore (ampiamente documentate).
Quindi è da prendere come traccia per le operazioni da svolgere, come cosa aggiungere in testa alla stringa da inviare in rete e poi cosa controllare nell'intestazione della risposta. Inoltre nel preparare la richiesta sostituisce il nome del URL con il suo indirizzo reale andandolo a risolvere sul DNS server.
Se ti può essere anche un minimo utile te lo mando e puoi farne ciò che credi.
Riguardo OSCAT, almeno per la libreria CoDeSys, è tutta in sorgente IEC61131 e si appoggia ad altre funzioni della stessa libreria e a quelle standard di invio e ricezione su ethernet. Le librerie in questione sono 3.
Una generica con tante funzioni di ogni tipo, una per domotica e una per la network che contiene di tutto (invio email, Http client, ..). Tali librerie sono dei files con estensione .html ma basta rinominarle .lib e si possono aprire con CoDeSys per vedere e salvare in testo il sorgente. Se ti serve pure CoDeSys lo trovi anche nel mio blog e ti garantisco che è fornito gratis in quanto il guadagno è sul singolo dispositivo hardware.
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29

0
voti

[7] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 9 set 2012, 23:08

L'ho trovata, e sto giusto provando ora, ma devo recuperare talune librerie. Però l'ho trovata.

Grazie.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

2
voti

[8] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 10 set 2012, 11:59

Ok, creato progetto di test, creata pagina php di test lato server, copilato lato client con run-time Beckhoff, provato... Funziona!
Ottima libreria. Ottima.

Grazie.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

1
voti

[9] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteAOX » 10 set 2012, 12:38

E' in sorgente anche per Beckhoff? Io ho analizzato solo quelle per CoDeSys.
Rimango ancora stupito per la pazienza con la quale hanno collezionato così tante funzioni pure documentandole con un PDF così impegnativo. Sarà pura passione o in qualche modo hanno trovato un sponsor che li ha sostenuti per l'impegno?
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29

0
voti

[10] Re: Implementazione di client HTTP su PLC

Messaggioda Foto UtenteCandy » 10 set 2012, 13:16

Ti confermo che la libreriqa è in CoDeSys con specificataemente scritto per Beckhoff; sul sito della Beckhoff ho notato che pubblicizano lo OSCAT per le sorgenti di codice liberro... 2+2 = ...
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10129
Iscritto il: 14 giu 2010, 22:54

Prossimo

Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti