Home › Forum › Programmazione IEC 61131 (LogicLab) › Programma gestione messaggi UDP
- Questo topic ha 1 risposta, 1 partecipante ed è stato aggiornato l'ultima volta 2 anni, 5 mesi fa da
Sergio Bertana.
-
AutorePost
-
Maggio 2, 2024 alle 8:16 am #76978
Anonimo
InattivoSono nuovo sulla programmazione dei PLC, conosco abbastanza bene il linguaggio VB ma con i linguaggi PLC sono alle prime armi, dovrei creare un programma con queste caratteristiche:
- Alla chiusura di una porta in ingresso mi attivi una porta in uscita ed inoltre mi invii una stringa esadecimale (0010000000020403c01100) ad un server UDP.
- Vorrei che installare un server UDP in grado di ricevere messaggi per attivare e disattivare le porte di uscita.
Ho provato ad installare l’esempio PROGRAM “FBD_SysUDPClient” ma non riesco a convertirlo per quello che mi serve.
Per eseguire queste funzioni pensavo di fare 3 programmi.
- Programma da mettere nella tasks:Back il quale fa da server UDP che alla ricezione di una stringa attiva o meno le porte OUT.
- Programma UDP da mettere nella tasks:Slow il quale gestisce delle porte in ingresso e, comanda le porte OUT e richiama il programma ClientUdp.
- Programma ClientUdp il quale manda una stringa esadecimale quando è richiamato.
Si può utilizzare uno schema del genere oppure bisogna creare un programma unico.
Maggio 2, 2024 alle 8:31 am #76983Sergio Bertana
Amministratore del forumQuello che devi fare è abbastanza semplice e trovi sicuramente esempi nella nostra Knowledge base. Cominciamo con il ricordare che tutti i programmi che gestiscono comunicazioni Ethernet vanno eseguiti in task Back.
La gestione degli I/O, quindi il programma che alla attivazione di un ingresso attivi una uscita lo farei in LD, e lo puoi eseguire in task Slow. Sulla attivazione dell’ingresso occorre gestire un FB R_TRIG che sulla attivazione dell’uscita Q setta una variabile BOOL globale di comando invio stringa UDP.
Un’altro programma scritto in ST ed eseguito in task Back (Puoi utilizzare l’esempio ST_SysUDPClient) su attivazione della variabile BOOL globale viene inviata la stringa UDP ed esegue il reset della variabile di comando.
Per la ricezione comandi UDP di gestione I/O occorre realizzare un programma un po più complesso in grado di ricevere stringhe, interpretarle e poi eseguire il comando richiesto. Puoi dare una occhiata ai programmi ST_SerialDataReceive e ST_WindSonicDriver naturalmernte sostituendo alla gestione seriale un server UDP. In realtà in questi due programmi come vedrai nella ricezione della stringa di comando viene atteso un carattere terminatore o un tempo di pausa in quanto essendo ricevuta da seriale i caratteri arriveranno uno alla volta. Da un socket UDP o TCP la ricezione è molto più semplice in quanto il comando arriverà tutto in un unico pacchetto dati.
Per il test della comunicazione UDP su PC puoi utilizzare il programma Toolly con l’utility Terminal, emulazione terminale.
Ricordo che è possibile acquistare un pacchetto di supporto On-Line che permette di ottenere supporto con TeamViewer e di imbastire insieme ai ns tecnici lo sviluppo del programma.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.