Comunicazione modbus RTU master

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Programmazione IEC 61131 (LogicLab) Comunicazione modbus RTU master

Questo argomento contiene 9 risposte, ha 3 partecipanti, ed √® stato aggiornato da  Sergio Bertana 4 anni, 5 mesi fa.

Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
  • Autore
    Articoli
  • #34876

    Sergio Bertana
    Amministratore del forum

    E’ disponibile nella libreria PLCUtyLib il blocco funzione MDBRTUMASTER per gestire la comunicazione con il protocollo modbus RTU verso altri dispositivi.

    Il blocco funzione permette di definire l’indirizzo di nodo del dispositivo cin cui comunicare oltre all’indirizzo ed al numero di registri da leggere o scrivere.

    Sono gestiti i comandi modbus Read Holding Registers (16#03) e Preset Multiple Registers (16#10). Allego per il download estratto del manuale di riferimento del blocco funzione.

    #36489

    Sergio Bertana
    Amministratore del forum

    Ho realizzato un progetto che in linguaggio SFC realizza una semplice comunicazione con un nodo slave utilizzando il function block di comunicazione modbus.

    Nel programma vi sono 3 actions, una di apertura porta seriale e definizione parametri di comunicazione, una di gestione lettura registri da nodo slave ed una di scrittura registri su nodo slave.

    Il passaggio tra le varie actions è condizionato dal termine della esecuzione del comando definito per il blocco funzione di comunicazione, download programma.

    #36547

    Luciano
    Partecipante

    Stò utilizzando il blocco funzione MDBRTUMASTER per gestire la comunicazione con un sistema SlimLine slave e non riesco a capire come definire i parametri Register e Buffer.

    E’ possibile avere ulteriori spiegazioni in merito a queste due variabili.

    #36548

    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice progetto il logica Ladder che esegue la lettura e la scrittura di registri tramite modbus su di un sistema SlimLine slave.

    Il programma và trasferito sul sistema SlimLine che verrà identificato come sistema master, sullo SlimLine identificato come sistema slave, non occorre effettuare nessuna programmazione in quanto la gestione del protocollo Modbus slave è gestita automaticamente dal sistema operativo.

    Nel ramo 4, è eseguita la lettura di 2 registri (Due word a 16 bit) dal sistema slave a partire da MX100.16 (Indirizzo modbus 40008). I dati letti sono trasferiti in due word a 16 bit sul sistema master a partire da MX100.16.

    Nel ramo 5, è eseguita la scrittura di 2 registri (Due word a 16 bit) sul sistema slave a partire da MX100.32 (Indirizzo modbus 40016). I dati da scrivere sono letti da due word a 16 bit sul sistema master a partire da MX100.32.

    Allego per il download il programma e la stampa dello stesso.

    #36599

    Sergio Bertana
    Amministratore del forum

    E’ ora disponibile nella libreria ePLCUtyLib.pll (Versione SFR054A500) un nuovo blocco funzione per la gestione del modbus master, rimando a questo post per altre informazioni.

    #38469

    Marco
    Partecipante

    Sto provando ha far comunicare due moduli SlimLine tra loro tramite Switch in Ethernet, utilizzando il blocco FB ModbusMaster presente sulla libreria come da manuale, ma non ottengo risultati. Sapete aiutarmi.

    #38470

    Sergio Bertana
    Amministratore del forum

    Il blocco funzione ModbusMaster opera su uno stream di I/O (Parametro File di tipo FILEP) che deve essere ritornato da una funzione Sysfopen. Per operare in modalità master occorre eseguire un connect TCP verso il modulo slave, attualmente non è possibile eseguire una connect TCP. I sistemi SlimLine attualmente possono operare solo come server TCP e non come client.

    Quindi puoi fare dialogare i sistemi SlimLine tramite l’FB ModbusMaster utilizzando una connessione seriale ma non TCP. Però se il tuo problema è fare dialogare tra di loro due o più sistemi SlimLine tramite Ethernet puoi utilizzare l’FB UDPDataTxfer che utilizza il protocollo UDP, Topic (1), (2).

    #38471

    Sergio Bertana
    Amministratore del forum

    Per completezza e per soddisfare l’esigenza di chi deve necessariamente utilizzare il protocollo Modbus TCP, porto un esempio suggerito ad un nostro cliente. Non potendo lo SlimLine agire come client si aggira il problema utilizzando un convertitore Ethernet/Seriale (Anche un semplice ATC-1000) connesso alla porta seriale dello SlimLine.

    Il convertitore Ethernet/Seriale andrà configurato come Client definendo come server l’indirizzo IP e la porta (Default la 502) del sistema Modbus slave. Nello SlimLine si utilizza l’FB ModbusMaster connessa alla porta seriale avendo impostato come Type il valore 2 che gestisce il protocollo Modbus TCP.

    #38472

    Marco
    Partecipante

    Grazie dell’aiuto, ho provato l’altro sistema e funziona.
    Quindi per adesso oltre all’aggiunta di un convertitore, non c’è altro modo per acquisire dati da un qualsiasi altro prodotto fornito con protocollo Modbus TCP.

    #38473

    Sergio Bertana
    Amministratore del forum

    Fino a quando non rilasceremo una versione del sistema operativo di SlimLine che prevede il client TCP non c’è altro modo che il convertitore. Puoi utilizzare la versione Codesys di SlimLine che ha sia il server che il client TCP, ma è più costosa (Licenza Codesys sigh)…

    Su questa versione inoltre trovando già molte applicazioni disponibili (Vedi libreria Oscat) non abbiamo portato tutta la gamma di librerie che invece offriamo con la versione LogicLab e quindi occore cercare o scriversi la gestione del protocollo Modbus master.

Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)

Devi essere loggato per rispondere a questa discussione.