Vai al contenuto

Blocco funzione per gestione modbus ascii master

Home Forum Programmazione IEC 61131 (LogicLab) Blocco funzione per gestione modbus ascii master

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35343
    Miriam
    Partecipante

    Per soddisfare l’esigenza di un nostro cliente avrei la necessità di avere una funzione Modbus ASCII (master) di lettura di un registro (funzione 03). Dal valore letto dovrò poi mascherare i singoli bits. Probabilmente per questa applicazione sarà sufficiente, la lettura di un unico registro (indirizzo 259); l’ideale sarebbe però poter passare l’indirizzo alla funzione, in modo da poterla utilizzare per leggere due o più registri differenti, se fosse necessario.

    I nostri strumenti slave, con i quali si deve comunicare, sono impostati a 9600 bps, 7E1. Non avendo esperienza del linguaggio, spero si tratti di una cosa abbastanza semplice e rapida.

    #37602
    Sergio Bertana
    Amministratore del forum

    Nelle nostre librerie di funzioni e blocchi funzioni abbiamo solo il blocco funzione master per il protocollo modbus RTU, e lo slave Ascii. In attesa di aggiungere anche l’FB per il modbus Ascii master prendo spunto dalla tua richiesta per realizzare un semplice blocco funzione che gestisce il comando di lettura Holding registers (0x03) di un registro con modbus Ascii.

    Il blocco funzione è realizzato in ST e può essere propedeutico per realizzare altri blocchi funzioni di gestione comunicazione, ecco la stampa del programma. Come si vede un program in Ladder apre la porta di comunicazione, ne imposta i parametri, e poi viene seguita la chiamata sequenziale di due istanze della FB ModbusAsciiMaster, una esegue la lettura del registro 16#1234 e l’altra la lettura del registro 16#5678. Il valore letto è ritornato in Value e può poi essere appoggiato nella propria variabile.

    Il blocco funzione ModbusAsciiMaster in linguaggio ST è gestito a sequenze con lo statement CASE, le sequenze biniziano con la compilazione e l’invio del frame di comando e poi l’attesa del frame di risposta. Nella FB è gestito sia il calcolo che il controllo dell’LRC del frame modbus, ed al termine della ricezione della risposta è gestito un tempo di attesa parametrizzabile. Allego programma sorgente per il download.

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