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.
Implementazione di client HTTP su PLC
Moderatori:
dimaios,
carlomariamanenti
11 messaggi
• Pagina 1 di 2 • 1, 2
4
voti
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.
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.
0
voti
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.
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.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
2
voti
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.
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.
1
voti
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?
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?
0
voti
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 = ...
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
11 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Automazione industriale ed azionamenti
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
