Vai al contenuto

Programma gestione messaggi UDP

Home Forum Programmazione IEC 61131 (LogicLab) Programma gestione messaggi UDP

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #76978
    Anonimo
    Inattivo

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

    1. Programma da mettere nella tasks:Back il quale fa da server UDP che alla ricezione di una stringa attiva o meno le porte OUT.
    2. Programma UDP da mettere nella tasks:Slow  il quale  gestisce delle porte in ingresso e, comanda le porte OUT e richiama il programma ClientUdp.
    3. Programma ClientUdp  il quale manda una stringa esadecimale quando è richiamato.

    Si può utilizzare uno schema del genere oppure bisogna creare un programma unico.

    #76983
    Sergio Bertana
    Amministratore del forum

    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.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.