Modbus RTU
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Modbus RTU
Ciao a tutti,
come posso interfacciarmi al Homeplc con il Modbus RTU?
Sto cercando di fare un programma che si interfaccia al pc proprio con Modbus ma non so da dove incominciare.
Homeplc è master o slave?
Il pc deve essere master o slave?
Grazie.
come posso interfacciarmi al Homeplc con il Modbus RTU?
Sto cercando di fare un programma che si interfaccia al pc proprio con Modbus ma non so da dove incominciare.
Homeplc è master o slave?
Il pc deve essere master o slave?
Grazie.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
PC deve essere master Modbus RTU ma per usare il Modbus devi lavorare a livello di protocollo e di seriale
e questi sono argomenti da studiare a monte.
Se vuoi prima di farti perdere tempo inutilmente (come fan tutti) quali sono i limiti del Modbus RTU
a) Richiedendo un frame Modbus RTU hai un tempo Tx-RX di circa 20 mS per chiamata che va sommato al numero di byte che richiedi, pensando di richiedere un frame di 25 variabili da un analizzatore di rete con velocità di 19200 bps la somma delle pause e dei dati che servono per fare questo mettiamo che sia di 200-300 mS
Questo significa che se hai 10 analizzatori di rete i dati di uno di questi verranno aggiornati solo dopo 3 secondi
mentre se ne hai 40 il refresh sale a 12 secondi dando una "sensazione di refresh a video" non corretta.
Ma in questo caso si parlava di analisi di rete e ancora è accettabile.
Nel caso di richieste multiple verso un PLC invece la somma dei tempi diventa non accettabile.
Questo è l'ultima cosa che si impara con l'uso del Modbus RTU dato che è si può realizzare solo dopo averci tempo e dopo le dovute sperimentazioni e un po lo scoglio dove chiunque si scontra!
Questo motivo è anche quello che ha portato alla nascita dei sistemi ad eventi,
ovvero questi dovevano evitare i tempi di Polling (cosi si chiamano i tempi quando si esegue un interrogazione ciclica)
Ma tra i due non si è risolto molto dato che:
a) I protocolli basati sul Polling sono lenti ma affidabili, il dato in qualche modo viene sempre letto e mostrato
b)I protocolli basati su eventi sono veloci ma soffrono dei conflitti che a loro volta portano alla perdita di datie spesso alla fuori sincronia coni dati a video.
Nota: per veloci si intende come attuazione non come velocità di protocollo che al contrario è generalmente molto lenta (vedi KNX che ha una velocità di 9600 bps)
c) ultimamente chi utilizza gli eventi adotta anche una tecnica di Polling per richiedere i dati che altrimenti andrebbero persi ma purtroppo questo non fa altro che peggiorare la criticità occupando ancora di più un Bus non progettato per l'utilizzo "a polling" (dato che il Polling lavora meglio solo con velocità elevate mentre i bus ad eventi solita,ente sono lenti).
e questi sono argomenti da studiare a monte.
Se vuoi prima di farti perdere tempo inutilmente (come fan tutti) quali sono i limiti del Modbus RTU
a) Richiedendo un frame Modbus RTU hai un tempo Tx-RX di circa 20 mS per chiamata che va sommato al numero di byte che richiedi, pensando di richiedere un frame di 25 variabili da un analizzatore di rete con velocità di 19200 bps la somma delle pause e dei dati che servono per fare questo mettiamo che sia di 200-300 mS
Questo significa che se hai 10 analizzatori di rete i dati di uno di questi verranno aggiornati solo dopo 3 secondi
mentre se ne hai 40 il refresh sale a 12 secondi dando una "sensazione di refresh a video" non corretta.
Ma in questo caso si parlava di analisi di rete e ancora è accettabile.
Nel caso di richieste multiple verso un PLC invece la somma dei tempi diventa non accettabile.
Questo è l'ultima cosa che si impara con l'uso del Modbus RTU dato che è si può realizzare solo dopo averci tempo e dopo le dovute sperimentazioni e un po lo scoglio dove chiunque si scontra!
Questo motivo è anche quello che ha portato alla nascita dei sistemi ad eventi,
ovvero questi dovevano evitare i tempi di Polling (cosi si chiamano i tempi quando si esegue un interrogazione ciclica)
Ma tra i due non si è risolto molto dato che:
a) I protocolli basati sul Polling sono lenti ma affidabili, il dato in qualche modo viene sempre letto e mostrato
b)I protocolli basati su eventi sono veloci ma soffrono dei conflitti che a loro volta portano alla perdita di datie spesso alla fuori sincronia coni dati a video.
Nota: per veloci si intende come attuazione non come velocità di protocollo che al contrario è generalmente molto lenta (vedi KNX che ha una velocità di 9600 bps)
c) ultimamente chi utilizza gli eventi adotta anche una tecnica di Polling per richiedere i dati che altrimenti andrebbero persi ma purtroppo questo non fa altro che peggiorare la criticità occupando ancora di più un Bus non progettato per l'utilizzo "a polling" (dato che il Polling lavora meglio solo con velocità elevate mentre i bus ad eventi solita,ente sono lenti).
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
Mi hai smontato.
In realtà con il pc era solo per fare delle prove per non trovarmi impreparato. Mi deve arrivare un pannellino, pagato 4 soldi, che comunica solo con RS485 Modbus RTU.
Come mi devo comportare?
Grazie
In realtà con il pc era solo per fare delle prove per non trovarmi impreparato. Mi deve arrivare un pannellino, pagato 4 soldi, che comunica solo con RS485 Modbus RTU.
Come mi devo comportare?
Grazie
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
Io non smonto nulla!
dico le cose che si possono verificare anche da soli ma magari sapendolo prima non si può dire di non essere stati avvisati su cosa significa
comunicare con un protocollo a Polling in Multidrop!
Quindi riassumiamo per evitare incomprensioni!
Se la necessità è di Supervisionare delle variabili da più dispositivi senza particolare velocità, allora il Modbus RTU è un ottimo protocollo di comunicazione, l'utilizzo tipico è quello di monitorare analizzatori di rete (direi per essere accettabile su max 10 per loop)
Anche nel caso di un loop Modbus RTU che lavora su un unico PLC e debba scaricare 100-200 Word continuamente i tempi sono ancora buoni.
Nel caso si volesse fare la stessa cosa su più PLC sullo stesso Bus allora diventa sicuramente lento, anche perché spesso molti dispositivi lavorano con una velocità di 19200 bps che non è adatta a questo tipo di comunicazione ma spesso lo fanno per limiti hardware e non per scelta.
Quindi se hai un terminale HMI e vuoi supervisionare un HomePLC o altro dispositivo è un protocollo adatto cosi com'è adatto per fare monitoraggio di valori da analizzatori ecc.. se chiedi troppo invece ti scontrerai con i suoi limiti naturali.
Mi ricordo che una volta ho dovuto spiegare il perché con 10 termoregolatori connessi al Movicom le variabili su video erano fluide
mentre dopo un upgrade dell'impianto a 40 termoregolatori sullo stesso Bus a video si presentava un forte ritardo!
Adesso preferisco anticipare il problema cosi se lo si comprende si evita di perder tempo.
dico le cose che si possono verificare anche da soli ma magari sapendolo prima non si può dire di non essere stati avvisati su cosa significa
comunicare con un protocollo a Polling in Multidrop!
Quindi riassumiamo per evitare incomprensioni!
Se la necessità è di Supervisionare delle variabili da più dispositivi senza particolare velocità, allora il Modbus RTU è un ottimo protocollo di comunicazione, l'utilizzo tipico è quello di monitorare analizzatori di rete (direi per essere accettabile su max 10 per loop)
Anche nel caso di un loop Modbus RTU che lavora su un unico PLC e debba scaricare 100-200 Word continuamente i tempi sono ancora buoni.
Nel caso si volesse fare la stessa cosa su più PLC sullo stesso Bus allora diventa sicuramente lento, anche perché spesso molti dispositivi lavorano con una velocità di 19200 bps che non è adatta a questo tipo di comunicazione ma spesso lo fanno per limiti hardware e non per scelta.
Quindi se hai un terminale HMI e vuoi supervisionare un HomePLC o altro dispositivo è un protocollo adatto cosi com'è adatto per fare monitoraggio di valori da analizzatori ecc.. se chiedi troppo invece ti scontrerai con i suoi limiti naturali.
Mi ricordo che una volta ho dovuto spiegare il perché con 10 termoregolatori connessi al Movicom le variabili su video erano fluide
mentre dopo un upgrade dell'impianto a 40 termoregolatori sullo stesso Bus a video si presentava un forte ritardo!
Adesso preferisco anticipare il problema cosi se lo si comprende si evita di perder tempo.
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
A me il problema non si pone, ho un solo HomePLC da supervisionare con un pannellino e le variabili non sono tante.
Ho scaricato Modbus Poll per riuscire a capirci di più ma oltre alla connesione non sono arrivato.
per esempio, per leggere i coil dell'homeplc cosa devo fare?
Ho scaricato Modbus Poll per riuscire a capirci di più ma oltre alla connesione non sono arrivato.
per esempio, per leggere i coil dell'homeplc cosa devo fare?
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
Per collegarsi all'HomePLC in Modbus RTU serve:
- Controllare che la comunicazione sia in standard RS485 (o RS232 per HomePLC con quella porta) dato che spesso capita che la porta non sia standard ma sia solo una RS422 che "accrocca" un approccio RS485 ma non dagli stessi risultati!
- Che il Modbus RTU sia abilitato (di fabbrica lo è)
- Configurare un Master Modbus su questi parametri velocità 57600 Bps con 1 bit di stop, 8 bit dati e parità NONE
- Configurare il Master con numero di Nodo 1 e il PLC con indirizzo <> 1 (si può usare fino a 254 indirizzi)
- Usare la tabella delle Word che trovi nelle risorse dove di lato c'è il registro che si può chiamare tramite Modbus RTU sono registri i da 1 a 7999
- Usare il comando standard del Modbus RTU per chiamare correttamente registri a 16 Bit oppure Bit (per questo ultimo tipo serve una formula specifica)
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
PLC con indirizzo <> 1 (si può usare fino a 254 indirizzi)
Scusa ma HomePLC non è lo slave 1?
Scusa ma HomePLC non è lo slave 1?
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
No,
HomePLC è uno di fabbrica ma si può indirizzare con i rotativi e Dip Switch fino a 999 e
tramite software ha più di 1400 indirizzi.
Una rete Modbus solitamente ha questi indirizzi:
Indirizzo 0 = Brodcast
Indirizzo 1 Master di rete
Indirizzi 2-254 Slave
Poi salvo lo zero puoi anche mettere master con indirizzi diversi da 1 ma ha senso fare le cose fuori standard senza motivo?
inoltre come ogni Bus non possono esistere sullo stesso cavo due indirizzi uguali quindi o cambi l'indirizzo al HomePLC o lo cambi al Touch panel (ma dato che il Master e il Pannello lo lascerei su 1)
Ps: ricorda che HomePLC come ogni altro nostro dispositivo prende l'indirizzo da rotativi solo all'accensione!
HomePLC è uno di fabbrica ma si può indirizzare con i rotativi e Dip Switch fino a 999 e
tramite software ha più di 1400 indirizzi.
Una rete Modbus solitamente ha questi indirizzi:
Indirizzo 0 = Brodcast
Indirizzo 1 Master di rete
Indirizzi 2-254 Slave
Poi salvo lo zero puoi anche mettere master con indirizzi diversi da 1 ma ha senso fare le cose fuori standard senza motivo?
inoltre come ogni Bus non possono esistere sullo stesso cavo due indirizzi uguali quindi o cambi l'indirizzo al HomePLC o lo cambi al Touch panel (ma dato che il Master e il Pannello lo lascerei su 1)
Ps: ricorda che HomePLC come ogni altro nostro dispositivo prende l'indirizzo da rotativi solo all'accensione!
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
Ciao, eccomi di nuovo qui.
Ho visto che non posso cambiare indirizzo nel pannellino ed è master,
Quanti ne posso mettere massimo sotto HomePLC? Solo per semplice curiosità.
Grazie.
Ho visto che non posso cambiare indirizzo nel pannellino ed è master,
Quanti ne posso mettere massimo sotto HomePLC? Solo per semplice curiosità.
Grazie.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
Quanti ne posso mettere massimo sotto HomePLC? Solo per semplice curiosità.
Intendi Indirizzi di protocollo?
Quelli standard ovvero fino a 254.
Quando c'è uno standard si usa lo standard, capisco che a volte trovate sul mercato dei prodotti DALI, DMX con limiti fuori standard ma salvo casi particolari che ad oggi no esistono il nostro modo di vedere uno standard è solo usando quello che prevede lo standard, quindi per farti un esempio,
Indirizzi Modbus RTU 1-254
Canali DALI 64 per Loop
Canali DMX = 512
e cosi via...
altrimenti non sarebbe un prodotto standard ma semi-standard
Intendi Indirizzi di protocollo?
Quelli standard ovvero fino a 254.
Quando c'è uno standard si usa lo standard, capisco che a volte trovate sul mercato dei prodotti DALI, DMX con limiti fuori standard ma salvo casi particolari che ad oggi no esistono il nostro modo di vedere uno standard è solo usando quello che prevede lo standard, quindi per farti un esempio,
Indirizzi Modbus RTU 1-254
Canali DALI 64 per Loop
Canali DMX = 512
e cosi via...
altrimenti non sarebbe un prodotto standard ma semi-standard
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
Prendendo esempio questo pannellino non posso modificare l'indirizzo, quindi se ne prenderò altri saranno sempre master 1.
Posso metterli sotto HomePLC o va in crash il sistema?
Il plc ora è come slave 2 e il pannellino modbus rtu master 1.
Grazie.
Posso metterli sotto HomePLC o va in crash il sistema?
Il plc ora è come slave 2 e il pannellino modbus rtu master 1.
Grazie.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
Il plc ora è come slave 2 e il pannellino modbus rtu master 1.
Cercate di fare esempi chiari di cosa vi serve cosa intendi sotto HomePLC?
detta cosi sembra che vuoi collegare un Pannello HMI sul Bus HomePLC cosa che non si può fare direttamente ma solo
tramite dei Gateway Modbus RTU.
In ogni caso il protocollo Modbus RTU e MONO-Master e non Multi Master quindi deve esistere un unico Master per ogni Loop.
1 Master e altri 253 Slave (Totale 254 device)
Se devi mettere più Pannelli Grafici devi utilizzare più Gateway se li installi sotto a HomePLC
mente se sono a MONTE ovvero collegati sulla parte di Telecontrollo e Programmazione puoi usare degli HMI con LAN e che dispongano della funzione di Link tra loro (uno di questi fa da master ad altri pannelli).
Cercate di fare esempi chiari di cosa vi serve cosa intendi sotto HomePLC?
detta cosi sembra che vuoi collegare un Pannello HMI sul Bus HomePLC cosa che non si può fare direttamente ma solo
tramite dei Gateway Modbus RTU.
In ogni caso il protocollo Modbus RTU e MONO-Master e non Multi Master quindi deve esistere un unico Master per ogni Loop.
1 Master e altri 253 Slave (Totale 254 device)
Se devi mettere più Pannelli Grafici devi utilizzare più Gateway se li installi sotto a HomePLC
mente se sono a MONTE ovvero collegati sulla parte di Telecontrollo e Programmazione puoi usare degli HMI con LAN e che dispongano della funzione di Link tra loro (uno di questi fa da master ad altri pannelli).
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
Ciao, ho notato una cosa, quando collego fisicamente il pannello alla rs485 e comunica in modbus con il plc abs dà degli errori e ho notato dai log che il master dell'xm a volte perde la comunicazione per 1 o 2 secondi.
Da cosa può dipendere?
Il pannellino é a monte dell'hplc, praticamente in parallelo all'etm3.
Grazie.
Da cosa può dipendere?
Il pannellino é a monte dell'hplc, praticamente in parallelo all'etm3.
Grazie.
-
SIACX
- Messaggi: 0
- Iscritto il: lun 25 gen 2021, 19:00
Re: Modbus RTU
Perdonami, avevo letto ma ho provato ugualmente.detta cosi sembra che vuoi collegare un Pannello HMI sul Bus HomePLC cosa che non si può fare direttamente ma solo
tramite dei Gateway Modbus RTU.
Una curiosità, ma HomePLC non è autosensing?
Cioè si può usare con ABS e Modbus?
Grazie
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
Salvo che il Modbus RTU è solo sulla porta di livello 1,Una curiosità, ma HomePLC non è autosensing?
Cioè si può usare con ABS e Modbus?
il Modbus è mono master ovvero se c'è già comunicazione sul bus non puoi inserire un secondo master,
per questo la Bus sul Livello 2 serve un GW configurato come Slave.
Oppure elimini ogni altra comunicazione sulla porta principale e ci colleghi SOLO il Pannellino HMI.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
i Flag digitali esp: %MX400.4 fanno chiaramente parte del registro 400 e cosi via,
sull'Help di LadderHome alla voce Risorse di Sistema, c'è una tabella con tutti i registri il lettura e Scrittura
e sono gli stessi che si possono richiamare da Modbus RTU .
Nota: va verificato che il Modbus RTU sia abilitato tramite Home&Building
alla voce Private Config > HomePLC > Protocol Configuration.
Per Input e Output digitali sotto alla tabella vi sono i vari indirizzi IEC e di lato quelli effettivi in Modbus RTU.
Nota: a secondo di cosa si utilizza come Master il primo registro del protocollo (Modbus o Jbus) potrebbe partire da zero oppure da uno, quindi verifica che il dato non sia spostato di un registro.
La comunicazione di base va settata come 57600, 8, N, 1
se non si utilizza convertitori della NetBA assicurarsi che lo slave rate sia molto veloce, altrimenti si potrebbero verificare perdite di bit e quindi errori di comunicazione.
sull'Help di LadderHome alla voce Risorse di Sistema, c'è una tabella con tutti i registri il lettura e Scrittura
e sono gli stessi che si possono richiamare da Modbus RTU .
Nota: va verificato che il Modbus RTU sia abilitato tramite Home&Building
alla voce Private Config > HomePLC > Protocol Configuration.
Per Input e Output digitali sotto alla tabella vi sono i vari indirizzi IEC e di lato quelli effettivi in Modbus RTU.
Nota: a secondo di cosa si utilizza come Master il primo registro del protocollo (Modbus o Jbus) potrebbe partire da zero oppure da uno, quindi verifica che il dato non sia spostato di un registro.
La comunicazione di base va settata come 57600, 8, N, 1
se non si utilizza convertitori della NetBA assicurarsi che lo slave rate sia molto veloce, altrimenti si potrebbero verificare perdite di bit e quindi errori di comunicazione.
-
YahooSeeker [Bot]
- Messaggi: 80
- Iscritto il: gio 14 gen 2021, 18:56
Re: Modbus RTU
No, il prefisso 40 è utilizzato solo negli Scada e HMI per differenziare i comandi, a livello di protocollo non esiste.
La dove vi sia la possibilità di usare comandi standard in lettura e scrittura si utilizzano i numeri di registri originali.
La dove vi sia la possibilità di usare comandi standard in lettura e scrittura si utilizzano i numeri di registri originali.