Difference between revisions of "AI8.1"
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Modbus Registers === | === Modbus Registers === | ||
− | Below is a list of available | + | Below is a list of available MODBUS registers. The same register numbers are also used by the MIOS-2 protocol. |
=== Modbus Read / Write (0x17) Function === | === Modbus Read / Write (0x17) Function === | ||
− | METEL IO modules have implemented MODBUS function (0x17) Read/Write of Multiple registers. Typically it is required to have two separate requests (and responses) for: | + | METEL IO modules have implemented the MODBUS function (0x17) Read/Write of Multiple registers. Typically it is required to have two separate requests (and responses) for: |
− | 1 | + | |
− | 2 | + | 1. Writing of outputs via MODBUS function (0x16) Writing Multiple Registers |
− | This requires a total of 4 frames to be sent over MODBUS. If using 0x17 function only one request is needed for the writing | + | |
+ | 2. Reading of inputs via MODBUS function (0x03) Read Holding Registers | ||
+ | |||
+ | |||
+ | This requires a total of 4 frames to be sent over MODBUS. If using 0x17 function only one request is needed for the reading and writing of outputs. This requires a total of 2 frames to be sent over MODBUS. | ||
=== Default Settings of Communication === | === Default Settings of Communication === | ||
Line 14: | Line 18: | ||
Data bits: 8 <br /> | Data bits: 8 <br /> | ||
Stop bits: 1 <br /> | Stop bits: 1 <br /> | ||
+ | |||
+ | <!-- MODBUS "Device Identification" registers table --> | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | |- style="font-size: 17px;" | ||
+ | ! colspan="2" | Subject !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset | ||
+ | |- | ||
+ | | rowspan="12" style="width: 90px;" | <span style="font-size: 17px;"> '''Device <br /> Identity''' </span> | ||
+ | || Product Type || u8[3] || R || || 1002-04 | ||
+ | |- | ||
+ | | style="width: 244px;" | Serial Number || u32 || R || || 1005-06 | ||
+ | |- | ||
+ | | PCB Version || u32 || R || || 1007-08 | ||
+ | |- | ||
+ | | PCB Revision || u16 || R || || 1009 | ||
+ | |- | ||
+ | | FW Version Major || u16 || R || || 1010 | ||
+ | |- | ||
+ | | FW Version Minor || u16 || R || || 1011 | ||
+ | |- | ||
+ | | FW Version - Revision || u32 || R || || 1012-13 | ||
+ | |- | ||
+ | | IF#01 Slot State || u16 || R || 0 = N/A <br /> 1 = IF#01 not Inserted <br /> 2 = IF#01 Inserted, CRC error <br /> 3 = IF#01 Inserted, CRC OK || 1021 | ||
+ | |- | ||
+ | | IF#01 Product Type || u8[3] || R || || 1022-24 | ||
+ | |- | ||
+ | | IF#01 Serial Number || u32 || R || || 1025-26 | ||
+ | |- | ||
+ | | IF#01 PCB Version || u32 || R || || 1027-28 | ||
+ | |- | ||
+ | | IF#01 PCB Revision || u16 || R || || 1029 | ||
+ | |- | ||
+ | | rowspan="3" style="width: 90px;" | <span style="font-size: 17px;"> '''Device <br /> Control''' </span> || Reset || u16 || RW || 55203 = To Reboot || 1201 | ||
+ | |- | ||
+ | | Bootloader / Application || u16 || R || 0x00A – Application, <br /> 0x00B – Bootloader || 1203 | ||
+ | |- | ||
+ | | Restart to Bootloader || u16 || RW || 617 = To Bootloader <br /> else = deactivate <br /> bootloader || 1204 | ||
+ | |- | ||
+ | | rowspan="2" style="width: 90px;" | <span style="font-size: 17px;"> '''Device <br /> Status''' </span> || Board Power Voltage || u16 || R || 105 = 10,5V || 1311 | ||
+ | |- | ||
+ | | Board Temperature || u16 || R || -200 = -20,0°C <br /> 250 = 25,0°C || 1321 | ||
+ | |} | ||
<!-- MODBUS "Measured Voltage Values" registers table --> | <!-- MODBUS "Measured Voltage Values" registers table --> | ||
Line 19: | Line 65: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Measured <br /> Voltage <br /> Values''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Measured <br /> Voltage <br /> Values''' </span> | ||
|| Analog Input 1 || AI#01 || s16 || R || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 V <br /> 32767 = upper range limit exceeded <br /> -32767 = lower range limit exceeded || 5001 | || Analog Input 1 || AI#01 || s16 || R || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 V <br /> 32767 = upper range limit exceeded <br /> -32767 = lower range limit exceeded || 5001 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Analog Input 2 || AI#02 || s16 || R || 5002 |
|- | |- | ||
| Analog Input 3 || AI#03 || s16 || R || 5003 | | Analog Input 3 || AI#03 || s16 || R || 5003 | ||
Line 43: | Line 89: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Measured <br /> Current <br /> Values''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Measured <br /> Current <br /> Values''' </span> | ||
|| Analog Input 1 || AI#11 || s16 || R || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 V <br /> 32767 = upper range limit exceeded <br /> -32767 = lower range limit exceeded || 5011 | || Analog Input 1 || AI#11 || s16 || R || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 V <br /> 32767 = upper range limit exceeded <br /> -32767 = lower range limit exceeded || 5011 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Analog Input 2 || AI#12 || s16 || R || 5012 |
|- | |- | ||
| Analog Input 3 || AI#13 || s16 || R || 5013 | | Analog Input 3 || AI#13 || s16 || R || 5013 | ||
Line 67: | Line 113: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Setting <br /> Input <br /> Ranges ''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Setting <br /> Input <br /> Ranges ''' </span> | ||
Line 75: | Line 121: | ||
|| 5121 | || 5121 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Analog Input 2 || AI#22 || u16 || RW || 5122 |
|- | |- | ||
| Analog Input 3 || AI#23 || u16 || RW || 5123 | | Analog Input 3 || AI#23 || u16 || RW || 5123 | ||
Line 94: | Line 140: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''States of <br /> Relay <br /> Outputs ''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''States of <br /> Relay <br /> Outputs ''' </span> | ||
|| COIL Relay 1 || DI#01 || bit || R || rowspan="4" | 0 = inactive <br /> 1 = active || 3001 | || COIL Relay 1 || DI#01 || bit || R || rowspan="4" | 0 = inactive <br /> 1 = active || 3001 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | COIL Relay 2 || DI#02 || bit || R || 3002 |
|- | |- | ||
| COIL Relay 3 || DI#03 || bit || R || 3003 | | COIL Relay 3 || DI#03 || bit || R || 3003 | ||
Line 112: | Line 158: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Relay <br /> Outputs ''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Relay <br /> Outputs ''' </span> | ||
|| Relay Output 1 || DO#01 || bit || RW || rowspan="4" | 0 = inactive <br /> 1 = active || 4001 | || Relay Output 1 || DO#01 || bit || RW || rowspan="4" | 0 = inactive <br /> 1 = active || 4001 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Relay Output 2 || DO#02 || bit || RW || 4002 |
|- | |- | ||
| Relay Output 3 || DO#03 || bit || RW || 4003 | | Relay Output 3 || DO#03 || bit || RW || 4003 | ||
Line 130: | Line 176: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Voltage <br /> Correction''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Voltage <br /> Correction''' </span> | ||
|| Analog Input 1 || AI#01 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5101 | || Analog Input 1 || AI#01 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5101 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Analog Input 2 || AI#02 || s16 || RW || 5102 |
|- | |- | ||
| Analog Input 3 || AI#03 || s16 || RW || 5103 | | Analog Input 3 || AI#03 || s16 || RW || 5103 | ||
Line 154: | Line 200: | ||
|- | |- | ||
|- style="font-size: 17px;" | |- style="font-size: 17px;" | ||
− | ! colspan="2" | Subject !! style="width: | + | ! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset |
|- | |- | ||
| rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Current <br /> Correction''' </span> | | rowspan="8" style="width: 90px;" | <span style="font-size: 17px;"> '''Current <br /> Correction''' </span> | ||
|| Analog Input 1 || AI#11 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5111 | || Analog Input 1 || AI#11 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5111 | ||
|- | |- | ||
− | | style="width: | + | | style="width: 120px;" | Analog Input 2 || AI#02 || s16 || RW || 5112 |
|- | |- | ||
| Analog Input 3 || AI#12 || s16 || RW || 5113 | | Analog Input 3 || AI#12 || s16 || RW || 5113 | ||
Line 174: | Line 220: | ||
|} | |} | ||
− | + | {{Note|NoteText= | |
− | {| | + | To activate the '''bootloader''', it is necessary to write a value 617 into the registry with an offset 1204 and restart the device. |
− | + | }} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 11:33, 20 February 2020
Modbus Registers
Below is a list of available MODBUS registers. The same register numbers are also used by the MIOS-2 protocol.
Modbus Read / Write (0x17) Function
METEL IO modules have implemented the MODBUS function (0x17) Read/Write of Multiple registers. Typically it is required to have two separate requests (and responses) for:
1. Writing of outputs via MODBUS function (0x16) Writing Multiple Registers
2. Reading of inputs via MODBUS function (0x03) Read Holding Registers
This requires a total of 4 frames to be sent over MODBUS. If using 0x17 function only one request is needed for the reading and writing of outputs. This requires a total of 2 frames to be sent over MODBUS.
Default Settings of Communication
Device ID: 1
Baudrate: 115 200
Parity: None
Data bits: 8
Stop bits: 1
Subject | Type | R/W | Value | Offset | |
---|---|---|---|---|---|
Device Identity |
Product Type | u8[3] | R | 1002-04 | |
Serial Number | u32 | R | 1005-06 | ||
PCB Version | u32 | R | 1007-08 | ||
PCB Revision | u16 | R | 1009 | ||
FW Version Major | u16 | R | 1010 | ||
FW Version Minor | u16 | R | 1011 | ||
FW Version - Revision | u32 | R | 1012-13 | ||
IF#01 Slot State | u16 | R | 0 = N/A 1 = IF#01 not Inserted 2 = IF#01 Inserted, CRC error 3 = IF#01 Inserted, CRC OK |
1021 | |
IF#01 Product Type | u8[3] | R | 1022-24 | ||
IF#01 Serial Number | u32 | R | 1025-26 | ||
IF#01 PCB Version | u32 | R | 1027-28 | ||
IF#01 PCB Revision | u16 | R | 1029 | ||
Device Control |
Reset | u16 | RW | 55203 = To Reboot | 1201 |
Bootloader / Application | u16 | R | 0x00A – Application, 0x00B – Bootloader |
1203 | |
Restart to Bootloader | u16 | RW | 617 = To Bootloader else = deactivate bootloader |
1204 | |
Device Status |
Board Power Voltage | u16 | R | 105 = 10,5V | 1311 |
Board Temperature | u16 | R | -200 = -20,0°C 250 = 25,0°C |
1321 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Measured Voltage Values |
Analog Input 1 | AI#01 | s16 | R | 1000 = 1 V 0 = 0 V -1000 = -1 V 32767 = upper range limit exceeded -32767 = lower range limit exceeded |
5001 |
Analog Input 2 | AI#02 | s16 | R | 5002 | ||
Analog Input 3 | AI#03 | s16 | R | 5003 | ||
Analog Input 4 | AI#04 | s16 | R | 5004 | ||
Analog Input 5 | AI#05 | s16 | R | 5005 | ||
Analog Input 6 | AI#06 | s16 | R | 5006 | ||
Analog Input 7 | AI#07 | s16 | R | 5007 | ||
Analog Input 8 | AI#08 | s16 | R | 5008 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Measured Current Values |
Analog Input 1 | AI#11 | s16 | R | 1000 = 1 V 0 = 0 V -1000 = -1 V 32767 = upper range limit exceeded -32767 = lower range limit exceeded |
5011 |
Analog Input 2 | AI#12 | s16 | R | 5012 | ||
Analog Input 3 | AI#13 | s16 | R | 5013 | ||
Analog Input 4 | AI#14 | s16 | R | 5014 | ||
Analog Input 5 | AI#15 | s16 | R | 5015 | ||
Analog Input 6 | AI#16 | s16 | R | 5016 | ||
Analog Input 7 | AI#17 | s16 | R | 5017 | ||
Analog Input 8 | AI#18 | s16 | R | 5018 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Setting Input Ranges |
Analog Input 1 | AI#21 | u16 | RW | 1 = ±10 V / ±30 mA 2 = ±5 V / ±20 mA 3 = ±2.5 V / ±10 mA (1) - Default |
5121 |
Analog Input 2 | AI#22 | u16 | RW | 5122 | ||
Analog Input 3 | AI#23 | u16 | RW | 5123 | ||
Analog Input 4 | AI#24 | u16 | RW | 5124 | ||
Analog Input 5 | AI#25 | u16 | RW | 5125 | ||
Analog Input 6 | AI#26 | u16 | RW | 5126 | ||
Analog Input 7 | AI#27 | u16 | RW | 5127 | ||
Analog Input 8 | AI#28 | u16 | RW | 5128 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
States of Relay Outputs |
COIL Relay 1 | DI#01 | bit | R | 0 = inactive 1 = active |
3001 |
COIL Relay 2 | DI#02 | bit | R | 3002 | ||
COIL Relay 3 | DI#03 | bit | R | 3003 | ||
COIL Relay 4 | DI#04 | bit | R | 3004 | ||
Inputs | DI#16 - DI#01 | u16 | R | 0x0000 - 0x000F | 3001 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Relay Outputs |
Relay Output 1 | DO#01 | bit | RW | 0 = inactive 1 = active |
4001 |
Relay Output 2 | DO#02 | bit | RW | 4002 | ||
Relay Output 3 | DO#03 | bit | RW | 4003 | ||
Relay Output 4 | DO#04 | bit | RW | 4004 | ||
Outputs | DO#16 - DO#01 | u16 | RW | 0x0000 - 0x000F | 4001 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Voltage Correction |
Analog Input 1 | AI#01 | s16 | RW | 1000 = 1 V 0 = 0 V -1000 = -1 |
5101 |
Analog Input 2 | AI#02 | s16 | RW | 5102 | ||
Analog Input 3 | AI#03 | s16 | RW | 5103 | ||
Analog Input 4 | AI#04 | s16 | RW | 5104 | ||
Analog Input 5 | AI#05 | s16 | RW | 5105 | ||
Analog Input 6 | AI#06 | s16 | RW | 5106 | ||
Analog Input 7 | AI#07 | s16 | RW | 5107 | ||
Analog Input 8 | AI#08 | s16 | RW | 5108 |
Subject | Channel | Type | R/W | Value | Offset | |
---|---|---|---|---|---|---|
Current Correction |
Analog Input 1 | AI#11 | s16 | RW | 1000 = 1 V 0 = 0 V -1000 = -1 |
5111 |
Analog Input 2 | AI#02 | s16 | RW | 5112 | ||
Analog Input 3 | AI#12 | s16 | RW | 5113 | ||
Analog Input 4 | AI#12 | s16 | RW | 5114 | ||
Analog Input 5 | AI#13 | s16 | RW | 5115 | ||
Analog Input 6 | AI#14 | s16 | RW | 5116 | ||
Analog Input 7 | AI#15 | s16 | RW | 5117 | ||
Analog Input 8 | AI#16 | s16 | RW | 5118 |
Note: To activate the bootloader, it is necessary to write a value 617 into the registry with an offset 1204 and restart the device.