Difference between revisions of "AI8.1"

From IPLOG
Jump to: navigation, search
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
=== Modbus Registers ===
 
=== Modbus Registers ===
Below is a list of available device MODBUS registers. The same register numbers are also used by the MIOS-2 protocol.
+
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) Writing of outputs via MODBUS function (0x16) Write Multiple Registers
+
 
2) Reading of inputs via MODBUS function (0x03) Read Holding Registers
+
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 and reading of outputs. This requires a total of 2 frames to be sent over MODBUS.
+
 
 +
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 15: Line 19:
 
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 -->
 +
{| class="wikitable"
 +
|-
 +
|- style="font-size: 17px;"
 +
! 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>
 +
|| 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: 120px;" | 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
 +
|}
 +
 +
<!-- MODBUS "Measured Current Values" registers table -->
 +
{| class="wikitable"
 +
|-
 +
|- style="font-size: 17px;"
 +
! 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>
 +
|| 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: 120px;" | 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
 +
|}
 +
 +
<!-- MODBUS "Setting Input Ranges" registers table -->
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
|- style="font-size: 17px;"
 
|- style="font-size: 17px;"
! colspan="2" | Subject !! Channel !! Type !! R/W !! Value !! Offset
+
! 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>
 +
|| Analog Input 1 || AI#21 || u16 || RW || rowspan="8" | 1 = ±10 V / ±30 mA <br /> 2 = ±5 V / ±20 mA <br /> 3 = ±2.5 V / ±10 mA <br />
  
 +
(1) - Default
 +
|| 5121
 
|-
 
|-
| rowspan="8"| <span style="font-size: 17px;"> '''Measured <br /> Voltage <br /> Values''' </span>
+
| style="width: 120px;" | Analog Input 2 || AI#22 || u16 || RW || 5122
|| 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 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
 +
|}
  
 +
<!-- MODBUS "States of Relay Outputs" registers table -->
 +
{| class="wikitable"
 
|-
 
|-
| Analog Input 2 || AI#02 || s16 || R || 5002
+
|- style="font-size: 17px;"
 +
! colspan="2" | Subject !! style="width: 110px;" | Channel !! style="width: 30px;" | Type !! style="width: 30px;" | R/W !! style="width: 230px;" | Value !! style="width: 60px;" | Offset
 
|-
 
|-
| Analog Input 3 || AI#03 || s16 || R || 5003
+
| 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
 
|-
 
|-
| Analog Input 4 || AI#04 || s16 || R || 5004
+
| style="width: 120px;" | COIL Relay 2 || DI#02 || bit || R || 3002
 
|-
 
|-
Analog Input 5 || AI#05 || s16 || R || 5005
+
COIL Relay 3 || DI#03 || bit || R || 3003
 
|-
 
|-
Analog Input 6 || AI#06 || s16 || R || 5006
+
COIL Relay 4 || DI#04 || bit || R || 3004
 
|-
 
|-
Analog Input 7 || AI#07 || s16 || R || 5007
+
Inputs || DI#16 - DI#01 || u16 || R || 0x0000 - 0x000F || 3001
 +
|}
 +
 
 +
<!-- MODBUS "Relay Outputs" registers table -->
 +
{| class="wikitable"
 +
|-
 +
|- style="font-size: 17px;"
 +
! 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>
 +
|| Relay Output 1 || DO#01 || bit || RW || rowspan="4" | 0 = inactive <br /> 1 = active || 4001
 +
|-
 +
| style="width: 120px;" | Relay Output 2 || DO#02 || bit || RW || 4002
 +
|-
 +
|  Relay Output 3 || DO#03 || bit || RW || 4003
 +
|-
 +
|  Relay Output 4 || DO#04 || bit || RW || 4004
 
|-
 
|-
Analog Input 8 || AI#08 || s16 || R || 5008
+
Outputs || DO#16 - DO#01 || u16 || RW || 0x0000 - 0x000F || 4001
 
|}
 
|}
 +
 +
<!-- MODBUS "Voltage Correction" registers table -->
 +
{| class="wikitable"
 +
|-
 +
|- style="font-size: 17px;"
 +
! 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>
 +
|| Analog Input 1 || AI#01 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5101
 +
|-
 +
| style="width: 120px;" | 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
 +
|}
 +
 +
<!-- MODBUS "Current Correction" registers table -->
 +
{| class="wikitable"
 +
|-
 +
|- style="font-size: 17px;"
 +
! 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>
 +
|| Analog Input 1 || AI#11 || s16 || RW || rowspan="8" | 1000 = 1 V <br /> 0 = 0 V <br /> -1000 = -1 || 5111
 +
|-
 +
| style="width: 120px;" | 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|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.