NOTA: Dalla versione RDE v3.54.0 è disponibile un editor integrato per creare il file modbus.cfg.
Deve trovarsi nell'alias di cartella MODBUS_DIR.
Di seguito viene riportato l'elenco dei comandi da utilizzare nel file di configurazione.
NOTA 1: I comandi inclusi tra [] sono parametri opzionali
NOTA 2: I parametri alternativi sono divisi con il carattere '|'
NOTA 3: Almeno un tipo di blocco DEVE essere dichiarato
NOTA 4: Nei blocchi a bit, nelle dichiarazione di associazione, l'indice viene normalizzato a essere un multiplo di 16
NOTA 5: Un'associazione del tipo bit 5 a R(1) viene interpretata come bit 1 --> R(1).0 2-->R(1).1 ... 5 --> R(1).4
Comando |
Descrizione |
Parametri |
Descrizione parametri |
Esempio |
---|---|---|---|---|
; |
Usato per inserire una linea di commento.
|
|
|
|
MODBUS_TCP_PORT [-Pppp] [-Cconn] [-Ibaseindex] [-TKs] [-RKr] [-RTKt] |
Definizione dei dati di comunicazione. NOTA: Questo comando deve necessariamente essere inserito nel file. |
ppp |
numero di porta da utilizzare [default 502] |
MODBUS_TCP_PORT -P503 -C18 |
conn |
numero di connessioni possibili [default 16] |
|||
baseindex |
Da RTE 34.24.23 può assumere i seguenti valori: •-1 (default se omesso) Si utilizza SYS_CFG.5 per determinare se indice iniziale delle grandezze e' 0 o 1 •0 indice iniziale delle grandezze e' 0 (valore non standard) indipendentemente dallo stato di SYS_CFG.5 •1 indice iniziale delle grandezze e' 1 (valore standard) indipendentemente dallo stato di SYS_CFG.5 |
|||
s |
Tempo in secondi di inattività prima di inviare il primo Keep Alive |
|||
r |
Numero di ritrasmissioni del Keep Alive per considerare la connessione caduta |
|||
t |
Tempo tra due ritrasmissioni del Keep Alive per determinare lo stato della connessione |
|||
DATA_MODE mode |
Definizione del tipo di manipolazione dei dati ricevuti/inviati. Il valore imposto vale per tutte le definizioni presenti. Il valore di default (standard MODBUS) è MIDDLE_BIG_ENDIAN. Questo comando deve essere inserito nel file prima delle definizioni blocchi. |
mode |
BIG_ENDIAN es. HH HL LH LL LITTLE_ENDIAN es. LL LH HL HH MIDDLE_BIG_ENDIAN es. LH LL HH HL MIDDLE_LITTLE_ENDIAN es. HL HH LL LH |
DATA_MODE BIG_ENDIAN |
ZEROS_STRING_STUFFING |
Questo comando consente di modificare la gestione della trasmissione di stringhe più corte dell'area prevista inserendo 0 come terminatore. Il valore di default è invece SPACE_FILLED ovvero gli eventuali caratteri mancati vengono riempiti con il carattere spazio. |
|
|
|
ERROR_ON_REPORT |
Abilita la generazione di messaggi nel REPORT in caso di errori di comunicazione e/o di comprensione. Si consiglia l'uso di questo comando in caso di prima connessione. |
|
|
|
WP_INFO_ON_HR |
Abilita associazione di variabili write protected associate agli holding register (vedi sotto). |
|
|
|
RUN-TIME_INFO |
Abilita la generazione di messaggi nel REPORT con la descrizione dei messaggi scambiati. Si consiglia l'uso di questo comando in caso di prima connessione. |
|
|
|
DISCRETE_INPUTS n |
Inizio definizione dell'area di lettura variabili come singoli bit. Le associazioni alle entità robox raggruppano almeno 16 bit (1 word) Ovvero l'indice 10 e l'indice 14 sono relative alla stessa word. Le grandezze robox associabili in questo blocco sono le seguenti: •R() •NVR() •AM() •INP_W() •OUT_W() |
n |
numero di bit definiti |
riservo 10 words: DISCRETE_INPUTS 160 |
COILS n |
Inizio definizione dell'area di lettura/scrittura variabili come singoli bit. Le associazioni alle entità Robox raggruppano almeno 16 bit (1 word) Ovvero l'indice 10 e l'indice 14 sono relative alla stessa word. Le grandezze Robox associabili in questo blocco sono le seguenti: •R() •NVR() |
n |
numero di bit definiti |
riservo 5 words: COILS 80 |
INPUT_REGISTERS n |
Inizio definizione dell'area di lettura variabili. Le grandezze Robox associabili in questo blocco sono le seguenti: •R() •NVR() •AM() •ALN() •INP_W() •OUT_W() •SR() •NVSR() •ALS() •RR() •NVRR() |
n |
massimo numero di word utilizzate |
riservo 40 words: INPUT_REGISTER 40 |
HOLDING_REGISTERS n |
Inizio definizione dell'area di lettura/scrittura variabili. Le grandezze Robox associabili in questo blocco sono le seguenti: •R() •NVR() •SR() •NVSR() •RR() •NVRR() Da RTE 34.16.3 tramite la keyword WP_INFO_ON_HR inserita nello stesso file di configurazione, è possibile accedere anche alle seguenti variabili: •AM() •INP_W() •OUT_W() •ALN •ALS NOTA: In caso di scrittura di grandezze di tipo solo read, l'operazione non verrà eseguita e verrà emessa diagnostica nel report. |
n |
massimo numero di word utilizzate |
riservo 80 words: HOLDING_REGISTER 80 |
INDEX(bwIdx) R(rIdx) [-I16|-U16] [-Rrep] [-BE|-LE|-MBE|-MLE] [-SPLIT] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) NVR(rIdx) [-I16|-U16] [-Rrep] [-BE|-LE|-MBE|-MLE] [-SPLIT] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) AM(rIdx) [-I16|-U16] [-Rrep] [-BE|-LE|-MBE|-MLE] [-SPLIT] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) ALN(rIdx) [-I16|-U16] [-Rrep] [-BE|-LE|-MBE|-MLE] [-SPLIT] [-TWD to -WDR idx [-WDM mode]]
|
Associa all'indice del blocco attuale uno o più R o NVR o AM o ALN. Se non modificato con i comandi specifici si assume che: •la grandezza occupi 2 word (32 bits) •non sia possibile accedere direttamente alla word alta •il DATA MODE è quello generico |
bwidx |
indice elemento modbus (bit o word in funzione blocco attuale). Valore compreso tra 1 e dimensione max specificata. Vedere NOTA4. |
; connetto R(270) R(271) e R(272) a partire dall'elemento modbus 250: INDEX(250) R(270) -R3
; connetto la word bassa di NVR(370) a partire dall'elemento modbus 256. La word bassa sarà assunta come valore signed. Big Endian: INDEX(256) NVR(370) -I16 -BE
; connetto AM(1) a partire dall'elemento modbus 32, con la possibilità di accedere direttamente alla parte alta di AM(1): INDEX(32) AM(1) -SPLIT
; coils da 1 a 16 verranno utilizzate per la gestione del watch dog, il controllo sarà effettuato ogni 2 secondi, il risultato sarà messo nel registro R(201), il watch dog è abilitato sulle solo operazioni di scrittura: COILS 255 INDEX(1) R(1) -R2 -TWD 2000 -WDR 201 -WDM 2 |
rIdx |
indice elemento Robox. |
|||
I16|U16 |
Selezione di uso solo della word bassa dell'entità Robox come dato signed o unsigned a 16 bits (1 word). |
|||
rep |
numero di ripetizione delle entità Robox. |
|||
-BE|-LE|-MBE|-MLE |
modifica del DATA MODE. |
|||
-SPLIT |
permette l'accesso alla sola word alta dell'entità Robox. |
|||
-TWD |
to = tempo massimo permesso (in millisecondi) tra due accessi consecutivi alla variabile specificata. |
|||
-WDR |
idx = indice del registro R dove salvare il risultato delle operazioni: •1 la comunicazione non è mai partita •0 la comunicazione è ok •-1 timeout della comunicazione |
|||
-WDM |
mode = (opzionale, default 3)modalità watch dog: •1 watch dog abilitato sulle operazioni di lettura •2 watch dog abilitato sulle operazioni di scrittura •3 watch dog abilitato sulle operazioni di accesso |
|||
INDEX(bwIdx) INP_W(rIdx) [-Rrep] [-BE|-LE] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) OUT_W(rIdx) [-Rrep] [-BE|-LE] [-TWD to -WDR idx [-WDM mode]] |
Associa all'indice del blocco attuale uno o più INP_W o OUT_W. Se non modificato con i comandi specifici si assume che: •il DATA MODE è quello generico. |
bwidx |
indice elemento modbus (bit o word in funzione blocco attuale). Valore compreso tra 1 e dimensione max specificata. Vedere NOTA4. |
; connetto INP_W(1) e INP_W(2) a partire dall'elemento modbus 64: INDEX(64) INP_W (1) -R2 |
rIdx |
indice elemento Robox. |
|||
rep |
numero di ripetizione delle entità Robox. |
|||
-BE|-LE|-MBE|-MLE |
modifica del DATA MODE. |
|||
-TWD |
to = tempo massimo permesso (in millisecondi) tra due accessi consecutivi alla variabile specificata. |
|||
-WDR |
idx = indice del registro R dove salvare il risultato delle operazioni: •1 la comunicazione non è mai partita •0 la comunicazione è ok •-1 timeout della comunicazione |
|||
-WDM |
mode = (opzionale, default 3)modalità watch dog: •1 watch dog abilitato sulle operazioni di lettura •2 watch dog abilitato sulle operazioni di scrittura •3 watch dog abilitato sulle operazioni di accesso |
|||
INDEX(bwIdx) SR(rIdx) -CnChar [-Rrep] [-BE|-LE|-MBE|-MLE] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) NVSR(rIdx) -CnChar [-Rrep] [-BE|-LE|-MBE|-MLE] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) ALS(rIdx) -CnChar [-Rrep] [-BE|-LE|-MBE|-MLE] [-TWD to -WDR idx [-WDM mode]] |
Associa all'indice del blocco attuale uno o più SR o NVSR o ALS. Se non modificato con i comandi specifici si assume che: •il DATA MODE è quello generico. |
bwidx |
indice elemento modbus (bit o word in funzione blocco attuale). Valore compreso tra 1 e dimensione max specificata. Vedere NOTA4. |
|
rIdx |
indice elemento Robox. |
|||
nChar |
numero di caratteri associati ad ogni stringa (2 caratteri = 1 word). |
|||
rep |
numero di ripetizione delle entità Robox. |
|||
-BE|-LE|-MBE|-MLE |
modifica del DATA MODE. |
|||
-TWD |
to = tempo massimo permesso (in millisecondi) tra due accessi consecutivi alla variabile specificata. |
|||
-WDR |
idx = indice del registro R dove salvare il risultato delle operazioni: •1 la comunicazione non è mai partita •0 la comunicazione è ok •-1 timeout della comunicazione |
|||
-WDM |
mode = (opzionale, default 3)modalità watch dog: •1 watch dog abilitato sulle operazioni di lettura •2 watch dog abilitato sulle operazioni di scrittura •3 watch dog abilitato sulle operazioni di accesso |
|||
INDEX(bwIdx) RR(rIdx) [-FLOAT] [-Rrep] [-BE|-LE|-MBE|-MLE] [-TWD to -WDR idx [-WDM mode]]
INDEX(bwIdx) NVRR(rIdx) [-FLOAT] [-Rrep] [-BE|-LE|-MBE|-MLE] [-TWD to -WDR idx [-WDM mode]] |
Associa all'indice del blocco attuale uno o più RR o NVRR. Se non modificato con i comandi specifici si assume che: •la grandezza sia di tipo DOUBLE ovvero occupi 4 word (64 bits). •il DATA MODE è quello generico. |
bwidx |
indice elemento modbus (bit o word in funzione blocco attuale). Valore compreso tra 1 e dimensione max specificata. Vedere NOTA4. |
; connetto ALS(1) alla word(100) e ALS(2) alla word(132): INDEX(100) ALS 1 -C64 -R2 |
rIdx |
indice elemento Robox. |
|||
float |
Selezione di uso del formato FLOAT 2 word (32 bits). |
|||
rep |
numero di ripetizione delle entità Robox. |
|||
-BE|-LE|-MBE|-MLE |
modifica del DATA MODE. |
|||
-TWD |
to = tempo massimo permesso (in millisecondi) tra due accessi consecutivi alla variabile specificata. |
|||
-WDR |
idx = indice del registro R dove salvare il risultato delle operazioni: •1 la comunicazione non è mai partita •0 la comunicazione è ok •-1 timeout della comunicazione |
|||
-WDM |
mode = (opzionale, default 3)modalità watch dog: •1 watch dog abilitato sulle operazioni di lettura •2 watch dog abilitato sulle operazioni di scrittura •3 watch dog abilitato sulle operazioni di accesso |