2021-04-08 22:38:47
四信DTU modbus配置和IO指令说明
 

上位机通过发MODBUS指令采集F-M100的IO口数据 

IO1、IO2、IO3 可设置为数字输入、输出,IO4、IO5可设置为模拟输入,采集4-20mA电流。PC需要下发指令采集IO1、IO2、IO3、IO4、IO5数据。 

说明:IO1为数字量输出时寄存器地址:OX50000(功能码05

      IO2为数字量输出时寄存器地址:OX50001

      IO3为数字量输出时寄存器地址:OX50002

      IO1为数字量输时寄存器地址:OX20000(功能码02

      IO2为数字量输时寄存器地址:OX20001

      IO3为数字量输时寄存器地址:OX20002

      IO4为模拟量输入时寄存器地址:OX40000(功能码04

      IO5为模拟量输入时寄存器地址:0X40001


接线方式:

模拟量的输入:

1.单线制:传感器的模拟量输出直接接到F-M100模拟量的输入口(IO4/IO5)。

2.两线制: 传感器的模拟量输出的正极接F-M100模拟量的输入口(IO4/IO5,地线接F8114GND

数字量的输入:

{C}1. {C}低电平输入:F-M100GND出来接触点开关的输入,触点开关的输出接到F-M100的开关量输入口(IO1或者IO2或者1O3)。

高电平输入:直接往IO1或者IO2IO3输出3.3V电压,地线需要接F-M100GND

MODBUS设置:

不同的F-M100可以通过设置不同的modbus地址来区分。

IO1、IO2、IO3设置为数字输入,如下图

IO1为数字量输入时寄存器地址:OX20000

IO2为数字量输入时寄存器地址:OX20001

IO3为数字量输入时寄存器地址:OX20002

查询IO1寄存器状态(配置成了数字量输入)

发:01 02 00 00 00 01 B9 CA

回:01 02 01 01 60 48 (IO1高电平)

回:01 02 01 00 A1 88 (IO1低电平)

查询IO2寄存器状态(配置成了数字量输入)

发:01 02 00 01 00 01 E8 0A

回:01 02 01 01 60 48 (IO2高电平)

回:01 02 01 00 A1 88 (IO2低电平)

查询IO3寄存器状态(配置成了数字量输入)

发:01 02 00 02 00 01 18 0A

回:01 02 01 01 60 48 (IO3高电平)

回:01 02 01 00 A1 88 (IO3低电平)

查询IO寄存器状态ModBus指令说明 (如01 02 00 02 00 01 18 0A)

RTU 地址

功能码

寄存器地址

寄存器个数

CRC 校验

01

02

00

 02

00

01

 18

0A

回包(01 02 01 01 60 48)

RTU 地址

功能码

字节数

寄存器状态

CRC 校验

01

02

01

01(高电平)

60

48

01

02

01

00(电平)

A1

88

 

IO1、IO2、IO3设置为数字输IO4、IO5设置为模拟输入

置IO1寄存器状态(配置成了数字量输出)

发:01 05 00 00 FF 00 8C 3A(设置IO1高电平)

回:01 05 00 00 FF 00 8C 3A

发:01 05 00 00 00 00 CD CA(设置IO1低电平)

回:01 05 00 00 00 00 CD CA

IO2寄存器状态(配置成了数字量输出)

发:01 05 00 01 FF 00 9C 0A(设置IO2高电平)

回:01 05 00 01 FF 00 9C 0A

发:01 05 00 01 00 00 AC 0A(设置IO2低电平)

回:01 05 00 01 00 00 AC 0A

IO3寄存器状态(配置成了数字量输出)

发:01 05 00 02 FF 00 2D FA (设置IO3高电平)

回:01 05 00 02 FF 00 2D FA

发:01 05 00 02 00 00 6C 0A(设置IO3低电平)

回:01 05 00 02 00 00 6C 0A

设置寄存器状态ModBus指令说明 (如01 05 00 00 FF 00 8C 3A)

RTU 地址

功能码

寄存器地址

置高

CRC 校验

01

05

00 

00

FF

00

 8C

3A

读取IO4寄存器数据(配置成了模拟量输入)

发:01 04 00 00 00 01 31 CA

回:01 04 02 00 B8 B9 42 (电流输入为4mA)

回:01 04 02 02 B9 79 E2 (电流输入为15mA)

回:01 04 02 03 A3 F9 B9  (电流输入为20mA)

读取IO5寄存器数据(配置成了模拟量输入)

发:01 04 00 01 00 01 60 0A

回:01 04 02 00 B8 B9 42(电流输入为4mA)

回:01 04 02 02 BD 78 21 (电流输入为15mA)

回:01 04 02 03 A8 B8 7E (电流输入为20mA)

读取寄存器数据ModBus指令说明 (如01 04 00 01 00 01 60 0A)

RTU 地址

功能码

寄存器地址

寄存器个数

CRC 校验

01

04

00

 01

00

01

 60

0A

回包 01 04 02 00 B8 B9 42)

RTU 地址

功能码

字节数

采集值

CRC 校验

01

04

02

04

B8

B9

42

电流换算公式:3.3/1023 *采集值/150 *1000=    (mA)

电压换算公式:3.3/1023 *采集值/12.1*20.16=   (V)

(采集值需转换成十进制)


附件下载:20210408103505935.pdf