Gateway Modbus TCP/RTU in connessione multidrop
Home › Forum › Convertitori di interfaccia › Gateway Modbus TCP/RTU in connessione multidrop
Taggato: MODBUS LIBRERIA eLLabMdbDevsLib
- Questo topic ha 6 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 4 anni fa da
Sergio Bertana.
-
AutorePost
-
Febbraio 24, 2021 alle 2:27 pm #59150
Marcello
PartecipanteDevo collegare ad un gateway Modbus TCP/Modbus RTU alcuni dispositivi in connessione multidrop quale convertitore posso utilizzare ?
Febbraio 24, 2021 alle 2:40 pm #59152Sergio Bertana
Amministratore del forumTutti i gateway Modbus della ATC permettono di gestire sulla porta RS485 più dispositivi (Fino a 32) connessi in multidrop (E’ necessario utilizzare un cavo twistato per la connessione). Collegandosi in TCP al convertitore è possibile inviare i comandi Modbus indicando il numero di nodo al quale inviare il comando.
Sulla porta seriale RS232 o RS485 verrà inviato il pacchetto Modbus RTU con il numero di nodo, e solo il dispositivo indirizzato risponderà. Il pacchetto Modbus RTU ricevuto verrà convertito in Modbus TCP ed inviato come risposta.
ATC-1300: Può operare solo come server.
ATC-3002: Ha una configurabilità estesa e permette di essere configurato come server o come client.
Febbraio 24, 2021 alle 4:13 pm #59153Marcello
PartecipanteBene grazie, problema risolto.
Marzo 28, 2021 alle 11:50 am #59368Stefano
PartecipanteMi aggancio a questo post per una applicazione simile. Ci sono una ventina di contatori di energia connessi su di un bus RS485 con protocollo MODBUS RTU. Ho bisogno di collegare al bus un gateway TCP/RTU per poter leggere i registri dalla rete.
Avrò poi una macchina virtuale, su cui gira un software MES, che periodicamente farà il polling dei contatori per rilevare l’energia consumata. Su altra macchina virtuale un software supervisore leggerà i vari dati relativi a tensioni/correnti/potenze istantanee.
Premesso che dovrò verificar bene i tempi di polling per non saturare il bus, potrebbe accadere che i due software facciano una richiesta quasi contemporanea, quindi il gateway deve essere in gradi di accodare le richieste o comunque gestire il caso.
Quale potrebbe essere il prodotto più indicato?
Marzo 28, 2021 alle 11:58 am #59382Sergio Bertana
Amministratore del forumLeggendo la documentazione del Gateway Modbus TCP a RTU/ASCII ATC-3002 sembra che possa gestire la coda delle richieste Modbus e quindi dovrebbe risolverti il problema. Io personalmente non ho mai provato a gestire più di una connessione contemporanea.
Per i nostri sistemi SlimLine abbiamo sviluppato il FB ModbusTCPGateway che permette di gestire più connessioni contemporanee. Avendolo sviluppato noi sappiamo esattamente come lavora, in pratica quando riceve una richiesta Modbus TCP la trasforma in RTU e la inoltra sulla porta seriale, attendendo la risposta che verrà reindirizzata al client TCP.
Se più clients effettuano richieste contemporanee naturalmente occorre che chi arriva dopo attenda il concludersi della richiesta precedente con un inevitabile allungamento dei tempi.
Ma essendo lo SlimLine programmabile, puoi anche interrogare ciclicamente tutti i dispositivi in RTU appoggiando i dati in registri del sistema che saranno interrogati via Modbus TCP (Il sistema accetta più connessioni Modbus TCP contemporanee) in questo caso non hai tempi di ritardo. inoltre gestendo da programma i dati puoi eseguire gli eventuali swaps per adattare l’endianness sulle variabili a 32 bits.
Aprile 20, 2021 alle 7:54 am #59648[email protected]
PartecipanteAnche io ho una applicazione di lettura misuratori di energia della Lovato, collegati in cascata in RS485, devo creare una applicazione che dal mio PLC mi legga ciclicamente i vari dispositivi in Modbus.
Ho un MPS054B110, e come da esempi sul sito ho cercato di includere la libreria eLLabMdbDevsLib, l’ultima scaricata dal sito per utilizzare le funzioni MODBUS. Purtroppo come avvio la compilazione, solo con la libreria inclusa, e nessuna riga di comando ne chiamata ai FB, mi esce sempre questo errore di compilazione:
ModbusMaster_v1.File – error A4108: eFILEP => Base object not found.
Qualche suggerimento ?
Aprile 20, 2021 alle 8:03 am #59655Sergio Bertana
Amministratore del forumLe nuove librerie sono state tutte convertite per la nuova architettura XUnified (Vedi articolo), probabilmente il tuo SlimLine ha una versione firmware ancora XTarget. Ora hai due possibilità:
1) Inserisci nel tuo progetto anche la libreria eLLabXTargetAdjLib.
2) Esegui un upgrade del sistema e lo converti in un sistema XUnified (Vedi articolo).Ti consiglio sicuramente la seconda soluzione che ti permette di aggiornare il sistema rendendolo compatibile con tutte le nuove versioni di libreria.
Aggiungo un consiglio per acquisire i vari meters puoi utilizzare il FB ACModbus, Array command Modbus, che appoggiandosi ad un’unica istanza della FB ModbusMaster_v1 permette di sequenziare automaticamente le varie acquisizioni.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.