====== modbus ======
http://www.modbus.org/specs.php
====== Варианты запросов ======
**01** (0x01) Read Coils
Request: 01 bbbb NNNN
Response: 01 nn
Error: 81 ee
**02** (0x02) Read Discrete Inputs
Request: 02 bbbb NNNN
Response: 02 nn
Error: 82 ee
**03** (0x03) Read Holding Registers
Request: 03 bbbb NNNN
Response: 03 nn
Error: 83 ee
**04** (0x04) Read Input Registers
Request: 04 bbbb NNNN
Response: 04 nn
Error: 84 ee
**05** (0x05) Write Single Coil
Request: 05 aaaa vvvv (0000 or FF00)
Response: 05 aaaa vvvv (0000 or FFFF)
Error: 85 ee
**06** (0x06) Write Single Register
Request: 06 aaaa vvvv
Response: 06 aaaa vvvv
Error: 86 ee
**07** (0x07) Read Exception Status (Serial Line only)
Request: 07
Response: 07 vv
Error: 87 ee
**08** (0x08) Diagnostics (Serial Line only)
Request: 08 .......
Response: 08 .......
Error: 87 ee
**15** (0x0F) Write Multiple Coils
Request: 0F bbbb NNNN nn
Response: 0F bbbb NNNN
Error: 8F ee
**16** (0x10) Write Multiple registers
Request: 0F bbbb NNNN nn
Response: 0F bbbb NNNN
Error: 8F ee
====== Группировка ======
- coils: r-1, w-15/5
- discrete inputs: r-2
- holding registers: r-3, w-16/6
- input registers: r-4
====== Настройки устройства ======
- max quantity of HOLDING registers in a reading request
- max quantity of INPUT registers in a reading request
- don't use WRITE_SINGLE_COIL command 0x05
- don't use WRITE_SINGLE_REGISTER command 0x06
- max size of gap in a reading request
====== Настройки тега ======
- region:
* COILS
* DISCRETE_INPUTS
* INPUT_REGISTERS
* HOLDING_REGISTERS
- address
- data type
- access:
* read
* write
* rw
- byte rearrangement
- forced write with command 6
====== Conf ======
module.owen1:
enable: on
type: 'owen_trm210'
mode: [rtu] / ascii / tcp
portnum: 1
netaddr: 1
retrial: 3
emulated: off
descr: good old owen trm
modbustype.owen_trm210:
enable: on
# максимальное количество регистров в команде
func.reg.limit:
1: 1 .. [175]
2: 1 .. [175]
3: 1 .. [175]
4: 1 .. [175]
15: 1 .. [175]
16: 1 .. [175]
# максимальный разрыв для команд записи
func.write.gap:
15: [0] .. 175
16: [0] .. 175
tag.reg1:
enable: on
type: bool
int size: 1 / [2] / 4
[uint] size: 1 / [2] / 4
float
double
string 1..~240
size: 1 / [2] / ... n
reorder: [[]] / [0,1,2,3] / [1,0,3,2] / ...
addr: 2001
addrwr: 2002
access: r / w / [rw]
coderd: 1 / 2 / 3 / [4]
codewr: 5 / [6]
codegr: 15 / [16]
req: [off] / on # если on, то создает два доп тега:
# reg1.req
# reg1.cnt
reqgr: [''] / 'mytestgroup' # если не '', то создает теги:
# modname.mytestgroup.req =1
# modname.mytestgroup.cnt
bittags:
current.error0: b0 # [b0] .. 8*size / [1] .. 32
current.error1: b0/2
current.error2: b1