ModbusRTU

1.1.驱动设置

该协议支持标准的modbus在串口链路上的采集

2_4_1_串口驱动设置

  • 串口号:选择网关连接仪表的 com 口;

    • 串口232/485为复用关系,同时只能用1个(485接线为A/B,232接线为GND/TX/RX)
  • 串口参数:与被采集仪表保持一致;采集默认参数为:波特率:9600,8,N,1

    • 校验位:NONE表示无效验,EVEN表示偶效验,ODD表示奇效验
  • 轮询周期:对所有在节点下的采集点,如果实际采集时间超过预设值,则该周期设定将失效

1.2.设备属性设置

2_4_2_设备属性设置

  • 设备ID:modbus的设备ID,范围1-254
  • 超时时间:默认999,单位毫秒,如果部分设备响应过慢,可设置为2000
  • 读端组包:启用后,网关将自动对要采集的数据,做最优化的组包采集
  • 数字量组包长度:针对DI/DO类型,在地址连续时,一次性至多读取的数量
  • 模拟量组包长度:针对AI/AO类型,在地址连续时,一次性至多读取的数量

1.3.采集标签配置

2_4_3_标签设置

  • 寄存器类型:modbus寄存器类型
  • 数值转换倍率:允许对原值进行浮点数的运算,默认值1不修改原值
  • 数据类型:modbus默认数据类型为2BYTE,也支持int,float,double等数据类型的采集
  • 寄存器地址:范围0-65535
    • 当数据类型为2BYTE时,请保持地址间隔为1,如:1,2,3,4,5
    • 当数据类型为4BYTE时,请保持地址间隔为2,如:1,3,5,7,9
    • 当数据类型为8BYTE时,请保持地址间隔为4,如:1,5,9,13
  • 字节顺序:允许颠倒大小端,需要和被采集的设备的字节顺序类型一致
  • 取位功能:对字节顺序处理后的值,进行取位操作

    • 取起始地址高字节的值:short类型字节序默认为AB连续空间,则勾选位:9,10,11,12,13,14,15
    • 取起始地址低字节的值:short类型字节序默认为AB连续空间,则勾选位:0,1,2,3,4,5,6,7
  • 以BCD码进行解值:默认不勾选,仅在协议文档明确说明值是BCD码时勾选

1.4.关于部分modbus使用的科普

1.下述是modbus数据格式:

2_4_4_modbus格式科普

其中"地址":代表modbus设备的"设备ID"

功能码:代表着"数据类型"

字节数:代表着"数据类型,此处是标准的2个字节的short或unsigned short"

2.功能码和数据类型,以及地址写法的对应关系:

功能码 网关中的寄存器类型 英文描述 网关中的地址范围 其他地址写法
01 DO(线圈型数据) Read Coils(0x) 0-65535 000001~065536
02 DI(离散量输入) Read Discrete Inputs(1x) 0-65535 100001~165536
03 AO(保持寄存器) Read Holding Registers(4x) 0-65535 400001~465536
04 AI(输入寄存器) Read Input Registers(3x) 0-65535 300001~365536

3.关于写操作:

当前版本网关仅支持对单个标签的写操作,即对modbus协议而言,支持0x05写单个线圈(DO)和0x06写单个保持寄存器(AO)的操作

用户无需主动下发0x05、0x06、0x10功能码,用户在通过http_server、数据库、mqtt、云平台、API任意一种方式下发控制时,网关内部会自行调用0x05/0x06/0x10功能码来下发控制

  • DO操作:0x05功能码
  • AO操作:short/unsigned short类型,0x06功能码
  • AO操作:int/unsigned int、long/unsigned long类型,0x10功能码

4.如何设置连续读一片区域,并对其中的值进行解值操作

比如需要读取起始地址0,数量4,对并其中位进行解析:

请验证下面的设置:

  • 单独创建1个组(避免因为地址连续,而导致读取数量操作4)、如果可以保证后续采集标签的地址不会继续形成组包,也可以不单独配置在1个组中
  • 保证读取范围内,数据类型的宽度是一致的,比如统一为short/int/long

2_4_4_批量读取示例

ModbusTCP

1.1.驱动设置

该协议支持标准的modbus在网络链路上的采集

2_5_1_网络驱动设置

  • IP地址:要采集设备的IP地址
  • 端口号:要采集设备的端口号,默认502
  • 轮询周期:对所有在节点下的采集点,如果实际采集时间超过预设值,则该周期设定将失效
  • 连接超时:首次与采集设备建立TCP驱动链接时的连接超时,非采集超时

1.2.设备属性设置

2_5_2_设备属性设置

  • 设备ID:modbus的设备ID,范围1-254
  • 超时时间:默认999,单位毫秒,如果部分设备响应过慢,可设置为2000
  • 读端组包:启用后,网关将自动对要采集的数据,做最优化的组包采集
  • 数字量组包长度:针对DI/DO类型,在地址连续时,一次性至多读取的数量
  • 模拟量组包长度:针对AI/AO类型,在地址连续时,一次性至多读取的数量

1.3.采集标签配置

2_5_3_标签设置

  • 寄存器类型:modbus寄存器类型
  • 数值转换倍率:允许对原值进行浮点数的运算,默认值1不修改原值
  • 数据类型:modbus默认数据类型为2BYTE,也支持int,float,double等数据类型的采集
  • 寄存器地址:范围0-65535
    • 当数据类型为2BYTE时,请保持地址间隔为1,如:1,2,3,4,5
    • 当数据类型为4BYTE时,请保持地址间隔为2,如:1,3,5,7,9
    • 当数据类型为8BYTE时,请保持地址间隔为4,如:1,5,9,13
  • 字节顺序:允许颠倒大小端,需要和被采集的设备的字节顺序类型一致
  • 取位功能:对字节顺序处理后的值,进行取位操作

    • 取起始地址高字节的值:short类型字节序默认为AB连续空间,则勾选位:9,10,11,12,13,14,15
    • 取起始地址低字节的值:short类型字节序默认为AB连续空间,则勾选位:0,1,2,3,4,5,6,7
  • 以BCD码进行解值:默认不勾选,仅在协议文档明确说明值是BCD码时勾选

1.4.关于部分modbus使用的科普

1.下述是modbus数据格式:

2_5_4_modbus格式科普

其中"地址":代表modbus设备的"设备ID"

功能码:代表着"数据类型"

字节数:代表着"数据类型,此处是标准的2个字节的short或unsigned short"

2.功能码和数据类型,以及地址写法的对应关系:

功能码 网关中的寄存器类型 英文描述 网关中的地址范围 其他地址写法
01 DO(线圈型数据) Read Coils(0x) 0-65535 000001~065536
02 DI(离散量输入) Read Discrete Inputs(1x) 0-65535 100001~165536
03 AO(保持寄存器) Read Holding Registers(4x) 0-65535 400001~465536
04 AI(输入寄存器) Read Input Registers(3x) 0-65535 300001~365536

3.关于写操作:

当前版本网关仅支持对单个标签的写操作,即对modbus协议而言,支持0x05写单个线圈(DO)和0x06写单个保持寄存器(AO)的操作

用户无需主动下发0x05、0x06、0x10功能码,用户在通过http_server、数据库、mqtt、云平台、API任意一种方式下发控制时,网关内部会自行调用0x05/0x06/0x10功能码来下发控制

  • DO操作:0x05功能码
  • AO操作:short/unsigned short类型,0x06功能码
  • AO操作:int/unsigned int、long/unsigned long类型,0x10功能码

4.如何设置连续读一片区域,并对其中的值进行解值操作

比如需要读取起始地址0,数量4,对并其中位进行解析:

请验证下面的设置:

  • 单独创建1个组(避免因为地址连续,而导致读取数量操作4)、如果可以保证后续采集标签的地址不会继续形成组包,也可以不单独配置在1个组中
  • 保证读取范围内,数据类型的宽度是一致的,比如统一为short/int/long

2_5_4_批量读取示例

results matching ""

    No results matching ""