Modulo smartCORE ModBus
Descrizione
Il modulo "modbus" legge principalmente i registri ModBus dei nodi ModBus. Questi nodi possono essere collegati
- tramite una connessione seriale (ModBus/RTU)
- tramite TCP (ModBus/TCP)
Interfacce e protocolli utilizzati
- ModBus
Configurazione JSON
Nella sezione seguente viene descritta l'intera configurazione JSON del modulo e vengono illustrati i singoli parametri.
Configurazione di esempio
Di seguito è riportata una configurazione di esempio per ModBus/TCP:
{
"module": "ModBus",
"comment": "ModBus/TCP config",
"factory": "modbus",
"config": {
"version": 1,
"type": "modbus",
"enable": true,
"pollCycleInMilliseconds": 1000,
"transport": {
"type": "tcp",
"ipAddress": "192.168.0.1",
"ipPortNumber": 502,
"timeoutInMilliseconds": 200
},
"devices": [
{
"enable": true,
"deviceName": "Device Name",
"deviceAddress": 1,
"readChannels": [
{
"name": "Channel Name",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
}
]
}
}
Parametri globali del modulo
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| version | SÌ | INT | 1 | Versione del protocollo ModBus | |
| type | SÌ | STRING | "modbus" | Interfaccia seriale per la comunicazione | |
| enable | SÌ | BOOL | true | Interruttore per la produzione dei dati negli smartCHANNEL | |
| pollCycleInMilliseconds | SÌ | INT | 1 - | Intervallo di interrogazione [ms] degli accessi ModBus | |
| transport | SÌ | JSON Objekt | Configurazione del livello di trasporto ModBus (vedere sotto) | ||
| devices | SÌ | JSON Array von JSON Objekten | Elenco dei nodi ModBus |
Parametri di trasporto specifici di ModBus/TCP ("transport")
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| type | SÌ | STRING | "tcp" | Selezione di ModBus/TCP | |
| ipAddress | SÌ | STRING | Indirizzo IP valido | Indirizzo IP del dispositivo ModBus | |
| ipPortNumber | SÌ | INT | Numero di porta IP valido | Numero di porta IP del dispositivo ModBus (se non diversamente specificato, dovrebbe essere impostato su 502) | |
| timeoutInMilliseconds | SÌ | INT | 1 - | Timeout [ms] per la connessione TCP (se non diversamente specificato, dovrebbe essere impostato su 200) |
Parametri di trasporto specifici di ModBus/RTU ("transport")
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| type | SÌ | STRING | "rtu" | Selezione di ModBus/RTU | |
| baudRate | SÌ | INT | Baud rate ModBus valida | Baud rate dell'interfaccia seriale | |
| dataBits | SÌ | INT | 5 - 8 | Bit di dati dell'interfaccia seriale | |
| encoding | SÌ | STRING | "rtu" | Codifica dei dati ModBus (è supportato esclusivamente "rtu") | |
| parity | SÌ | STRING | "no", "even", "odd" | Parità dell'interfaccia seriale | |
| stopBits | SÌ | DOUBLE | 1.0, 1.5, 2.0 | Bit di stop dell'interfaccia seriale | |
| portName | SÌ | STRING | Device file valido | File di dispositivo dell'interfaccia seriale | |
| terminationResistor | SÌ | BOOL | true, false | Interruttore per la resistenza di terminazione INTERNA | |
| timeoutInMilliseconds | SÌ | INT | 1 - | Timeout [ms] per la connessione TCP (se non diversamente specificato, dovrebbe essere impostato su 200) | |
| deviceTimeoutInMilliseconds | No | INT | 0 - | 0 | Timeout aggiuntivo [ms] tra le interrogazioni di nodi ModBus diversi |
Parametri del dispositivo ModBus ("devices")
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| enable | SÌ | BOOL | true | Interruttore per l'attivazione del dispositivo ModBus | |
| deviceName | SÌ | STRING | Nome del dispositivo ModBus | ||
| deviceAddress | SÌ | INT | 1 - | Indirizzo del dispositivo ModBus | |
| readChannels | SÌ | JSON Array von JSON Objekten | vedere sotto |
Configurazione dei canali ModBus ("readChannels")
| Nome del parametro | Obbligatorio | Tipo di dati | Intervallo di valori sensato | Default | Descrizione |
|---|---|---|---|---|---|
| name | SÌ | STRING | Nome dello smartCHANNEL | ||
| address | SÌ | INT | Indirizzo del registro ModBus | ||
| registerType | SÌ | STRING | Tipo di registro ModBus valido | Tipo del registro ModBus ("InputReg", "HoldingReg", "Coil", "Status", "0x17" (solo accesso in lettura)) | |
| registerFormat | SÌ | STRING | Formato di registro ModBus valido | Formato del registro ModBus ("I8","I16","I32","I64","UI8","UI16","UI32","UI64","REAL","BOOL") | |
| byteOrder | SÌ | STRING | Ordine dei byte del registro ModBus ("A" = MSB, "B" o "D" = LSB) | ||
| bitOffset | SÌ | UINT | Offset in bit del valore da interpretare | ||
| unit | SÌ | STRING | Unità dello smartCHANNEL | ||
| scale | SÌ | DOUBLE | Scalatura dello smartCHANNEL | ||
| offset | SÌ | DOUBLE | Offset dello smartCHANNEL |
Configurazione dei canali ModBus ("readChannelGroups")
In alternativa è possibile riunire più configurazioni di canale in un JSON Array, in modo che i registri ModBus alla base di questo gruppo possano essere letti in un unico passaggio (se il tipo di registro è identico). Questo array readChannelGroup così riunito può quindi essere elencato nel JSON Array di "readChannelGroups", ad es.
"readChannelGroups": [
[
{
"name": "Channel 1",
"address": 49152,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
},
{
"name": "Channel 2",
"address": 49158,
"registerType": "HoldingReg",
"registerFormat": "REAL",
"byteOrder": "ABCD",
"bitOffset": 0,
"unit": "",
"scale": 1.0,
"offset": 0.0
}
]
]
In alternativa è possibile specificare "readChannels" oppure "readChannelGroups".
Informazioni sul modulo
| Informazione | Valore |
|---|---|
| Autori | optiMEAS GmbH |
| da smartCORE | 0.1 |
| Tipo di modulo | Producer |
| Dipendenze | NESSUNA |