Quello 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.