![](/assets/static/picture/ico_prin.png)
M100+拓展机点位读写说明示例
1、DI读取
寄存器参数:IO拓展机的DI的寄存器地址按照顺序依次顺延,比如拓展机的第一个DI寄存器地址为10003(0x0002)
读(采集)
点位名称 | 接入位置 | 寄存器地址 | 功能码 | 默认状态 |
DI1 | 主机 | 10001(0x0000) | 0x02 | 0 |
DI2 | 主机 | 10002(0x0001) | 0x02 | 0 |
DI3 | IO拓展机 | 10003(0x0002) | 0x02 | 0 |
DI4 | IO拓展机 | 10004(0x0003) | 0x02 | 0 |
... | IO拓展机 | ... | 0x02 | 0 |
DI 检测:
透传模式下,通过网络向M100发送Modbus指令可以读取DI状态,也可以通过网页调试界面获取DI状态。
边缘计算模式下,通过数据读写点位来实现DI的检测。
DI 状态默认为0,输入有效信号之后状态为1。通过Modbus协议02功能码进行读取,DI状态按位进行回复,例如回复状态0x01, 换算二进制:00000001,则表示DI1有效输入,DI2无效数据。
操作 | 示例 |
DI1状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 02 00 00 00 01 响应(闭合):00 00 00 00 00 04 64 02 01 01 响应(断开):00 00 00 00 00 04 64 02 01 00 |
DI1状态查询(modbus RTU) | 查询:64 02 00 00 00 01 B0 3F 响应(闭合):64 02 01 01 7E 84 响应(断开):64 02 01 00 BF 44 |
DI2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 02 00 01 00 01 响应(闭合):00 00 00 00 00 04 64 02 01 01 响应(断开):00 00 00 00 00 04 64 02 01 00 |
DI2状态查询(modbus RTU) | 查询:64 02 00 01 00 01 E1 FF 响应(闭合):64 02 01 01 7E 84 响应(断开):64 02 01 00 BF 44 |
DI1~DI2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 02 00 00 00 02 响应:00 00 00 00 00 04 64 02 01 03 状态值03,换算二进制0000 0011,DI1闭合,DI2闭合 响应:00 00 00 00 00 04 64 02 01 01 状态值01,换算二进制0000 0001,DI1闭合,DI2断开 响应:00 00 00 00 00 04 64 02 01 02 状态值02,换算二进制0000 0010,DI1断开,DI2闭合 响应:00 00 00 00 00 04 64 02 01 00 状态值00,换算二进制0000 0000,DI1断开,DI2断开 |
DI1~DI2状态查询(modbus RTU) | 查询:64 02 00 00 00 02 F0 3E 响应:64 02 01 03 FF 45 状态值03,换算二进制0000 0011,DI1闭合,DI2闭合 响应:64 02 01 01 7E 84 状态值01,换算二进制0000 0001,DI1闭合,DI2断开 响应:64 02 01 02 3E 85 状态值02,换算二进制0000 0010,DI1断开,DI2闭合 响应:64 02 01 00 BF 44 状态值00,换算二进制0000 0000,DI1断开,DI2断开 |
DI3状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 02 00 02 00 01 响应(闭合):00 00 00 00 00 04 64 02 01 01 响应(断开):00 00 00 00 00 04 64 02 01 00 |
DI3状态查询(modbus RTU) | 查询:64 02 00 02 00 01 11 FF 响应(闭合):64 02 01 01 7E 84 响应(断开):64 02 01 00 BF 44 |
DI4状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 02 00 03 00 01 响应(闭合):00 00 00 00 00 04 64 02 01 01 响应(断开):00 00 00 00 00 04 64 02 01 00 |
DI4状态查询(modbus RTU) | 查询:64 02 00 03 00 01 40 3F 响应(闭合):64 02 01 01 7E 84 响应(断开):64 02 01 00 BF 44 |
2、DO读写
寄存器参数:IO拓展机的DO的寄存器地址按照顺序依次顺延,比如拓展机的第一个DO寄存器地址为00003(0x0002)。
点位名称 | 接入位置 | 寄存器地址 | 功能码 | 默认状态 |
DO1 | 主机 | 00001(0x0000) | 0x01,0x05,0x0F | 断开(NO) |
DO2 | 主机 | 00002(0x0001) | 0x01,0x05,0x0F | 断开(NO) |
DO3 | IO拓展机 | 00003(0x0002) | 0x01,0x05,0x0F | 断开 |
DO4 | IO拓展机 | 00004(0x0003) | 0x01,0x05,0x0F | 断开 |
... | IO拓展机 | ... | 0x01,0x05,0x0F | 断开 |
DO控制:
透传模式下,通过网络向M100发送Modbus命令,即可读取DO状态,同时也可以通过网页调试界面来实现控制。
边缘计算模式下,通过数据读写方式对DO进行控制和采集。
DO默认状态为NO断开,可以通过Modbus命令码01读取DO状态,通过05或0F功能码对DO进行控制输出。 DO状态查询均按位进行回复,例如回复状态为0x02,则换算二进制为00000010,则表示DO1为NO闭合,DO2为NO断开。
操作 | 示例 |
DO1状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 01 00 00 00 01 响应(闭合):00 00 00 00 00 04 64 01 01 01 响应(断开):00 00 00 00 00 04 64 01 01 00 |
DO1状态查询(modbus RTU) | 查询:64 01 00 00 00 01 F4 3F 响应(闭合):64 01 01 01 8E 84 响应(断开):64 01 01 00 4F 44 |
DO1 NO闭合控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 00 FF 00 响应:00 00 00 00 00 06 64 05 00 00 FF 00 |
DO1 NO闭合控制(modbus RTU) | 控制:64 05 00 00 FF 00 85 CF 响应:64 05 00 00 FF 00 85 CF |
DO1 NO断开控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 00 00 00 响应:00 00 00 00 00 06 64 05 00 00 00 00 |
DO1 NO断开控制(modbus RTU) | 控制:64 05 00 00 00 00 C4 3F 响应:64 05 00 00 00 00 C4 3F |
DO2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 01 00 01 00 01 响应(闭合):00 00 00 00 00 04 64 01 01 01 响应(断开):00 00 00 00 00 04 64 01 01 00 |
DO2状态查询(modbus RTU) | 查询:64 01 00 01 00 01 A5 FF 响应(闭合):64 01 01 01 8E 84 响应(断开):64 01 01 00 4F 44 |
DO2 NO闭合控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 01 FF 00 响应:00 00 00 00 00 06 64 05 00 01 FF 00 |
DO2 NO闭合控制(modbus RTU) | 控制:64 05 00 01 FF 00 D4 0F 响应:64 05 00 01 FF 00 D4 0F |
DO2 NO断开控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 01 00 00 响应:00 00 00 00 00 06 64 05 00 01 00 00 |
DO2 NO断开控制(modbus RTU) | 控制:64 05 00 01 00 00 95 FF 响应:64 05 00 01 00 00 95 FF |
DO1~DO2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 01 00 00 00 02 响应:00 00 00 00 00 04 64 01 01 00 状态值00,换算二进制0000 0000,DO1断开,DO2断开 响应:00 00 00 00 00 04 64 01 01 01 状态值01,换算二进制0000 0001,DO1闭合,DO2断开 响应:00 00 00 00 00 04 64 01 01 02 状态值02,换算二进制0000 0010,DO1断开,DO2闭合 响应:00 00 00 00 00 04 64 01 01 03 状态值03,换算二进制0000 0011,DO1闭合,DO2闭合 |
DO1~DO2状态查询(modbus RTU) | 查询:64 01 00 00 00 02 B4 3E 响应:64 01 01 00 4F 44 状态值00,换算二进制0000 0000,DO1断开,DO2断开 响应:64 01 01 01 8E 84 状态值01,换算二进制0000 0001,DO1闭合,DO2断开 响应:64 01 01 02 CE 85 状态值02,换算二进制0000 0010,DO1断开,DO2闭合 响应:64 01 01 03 0F 45 状态值03,换算二进制0000 0011,DO1闭合,DO2闭合 |
DO1~DO2 NO控制(modbus TCP) | 控制(DO1断开,DO2断开):00 00 00 00 00 08 64 0F 00 00 00 02 01 00 响应:00 00 00 00 00 06 64 0F 00 00 00 02 控制(DO1闭合,DO2断开):00 00 00 00 00 08 64 0F 00 00 00 02 01 01 响应:00 00 00 00 00 06 64 0F 00 00 00 02 控制(DO1断开,DO2闭合):00 00 00 00 00 08 64 0F 00 00 00 02 01 02 响应:00 00 00 00 00 06 64 0F 00 00 00 02 控制(DO1闭合,DO2闭合):00 00 00 00 00 08 64 0F 00 00 00 02 01 03 响应:00 00 00 00 00 06 64 0F 00 00 00 02 |
DO1~DO2 NO控制(modbus RTU) | 控制(DO1断开,DO2断开):64 0F 00 00 00 02 01 00 18 80 响应:64 0F 00 00 00 02 DD FF 控制(DO1闭合,DO2断开):64 0F 00 00 00 02 01 01 D9 40 响应:64 0F 00 00 00 02 DD FF 控制(DO1断开,DO2闭合):64 0F 00 00 00 02 01 02 99 41 响应:64 0F 00 00 00 02 DD FF 控制(DO1闭合,DO2闭合):64 0F 00 00 00 02 01 03 58 81 响应:64 0F 00 00 00 02 DD FF |
DO3状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 01 00 02 00 01 响应(闭合):00 00 00 00 00 04 64 01 01 01 响应(断开):00 00 00 00 00 04 64 01 01 00 |
DO3状态查询(modbus RTU) | 查询:64 01 00 02 00 01 55 FF 响应(闭合):64 01 01 01 8E 84 响应(断开):64 01 01 00 4F 44 |
DO3 闭合控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 02 FF 00 响应:00 00 00 00 00 06 64 05 00 02 FF 00 |
DO3 闭合控制(modbus RTU) | 控制:64 05 00 02 FF 00 24 0F 响应:64 05 00 02 FF 00 24 0F |
DO3 断开控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 02 00 00 响应:00 00 00 00 00 06 64 05 00 02 00 00 |
DO3 断开控制(modbus RTU) | 控制:64 05 00 02 00 00 65 FF 响应:64 05 00 02 00 00 65 FF |
DO4状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 01 00 03 00 01 响应(闭合):00 00 00 00 00 04 64 01 01 01 响应(断开):00 00 00 00 00 04 64 01 01 00 |
DO4状态查询(modbus RTU) | 查询:64 01 00 03 00 01 04 3F 响应(闭合):64 01 01 01 8E 84 响应(断开):64 01 01 00 4F 44 |
DO4 闭合控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 03 FF 00 响应:00 00 00 00 00 06 64 05 00 03 FF 00 |
DO4 闭合控制(modbus RTU) | 控制:64 05 00 03 FF 00 75 CF 响应:64 05 00 03 FF 00 75 CF |
DO4 断开控制(modbus TCP) | 控制:00 00 00 00 00 06 64 05 00 03 00 00 响应:00 00 00 00 00 06 64 05 00 03 00 00 |
DO4 断开控制(modbus RTU) | 控制:64 05 00 03 00 00 34 3F 响应:64 05 00 02 00 00 34 3F |
3、AI读取
数据类型:AI数据为32位单精度浮点数(ABCD),每个AI占2个寄存器,单位是uA,转换为mA公式为:模拟量值=返回参数 值/1000,公式可在边缘点位添加。
寄存器参数:IO拓展机的AI的寄存器地址按照顺序依次顺延,因为AI为32位浮点数,所以每次地址顺延需要增加2,比如拓展机 的第一个AI寄存器地址为30005(0x0004)。
点位名称 | 接入位置 | 寄存器地址 | 功能码 |
AI1 | 主机 | 30001(0x0000) | 0x04(读离散量) |
AI2 | 主机 | 30003(0x0002) | 0x04(读离散量) |
AI3 | IO拓展机 | 30005(0x0004) | 0x04(读离散量) |
AI4 | IO拓展机 | 30007(0x0006) | 0x04(读离散量) |
... | IO拓展机 | ... | 0x04(读离散量) |
模拟量获取:通过网页调试界面获取AI的模拟量检测结果,透传模式下,也可以通过网络向M100发送Modbus命令进行查询,通过Modbus功能码04获取AI的值。
操作 | 示例 |
AI1状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 04 00 00 00 02 响应:00 00 00 00 00 07 64 04 04 45 8D 08 00 |
AI1状态查询(modbus RTU) | 查询:64 04 00 00 00 02 78 3E 响应:64 04 04 45 8D 08 00 4C 65 解析:45 8D 08 00为单精度浮点型,转换为十进制为4513ua |
AI2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 05 00 00 FF 00 响应:00 00 00 00 00 06 64 05 00 00 FF 00 |
AI2状态查询(modbus RTU) | 查询:64 04 00 02 00 02 D9 FE 响应:64 04 04 45 F9 98 00 60 7F 解析:45 F9 98 00为单精度浮点型,转换为十进制为7987ua |
AI1~AI2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 04 00 00 00 042 响应:00 00 00 00 00 0B 64 04 08 45 8D 08 00 45 F9 98 00 |
AI1~AI2状态查询(modbus RTU) | 查询:64 04 00 00 00 04 F8 3C 响应:Rx:023-64 04 08 45 8D 08 00 45 F9 98 00 FD 72 |
AI3状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 04 00 04 00 02 响应:00 00 00 00 00 07 64 04 04 45 9C 40 00 |
AI3状态查询(modbus RTU) | 查询:64 04 00 04 00 02 39 FF 响应:64 04 04 45 9C 40 00 2A 60 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |
AI4状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 04 00 04 00 02 响应:00 00 00 00 00 07 64 04 04 45 9C 40 00 |
AI4状态查询(modbus RTU) | 查询:64 04 00 06 00 02 98 3F 响应:64 04 04 45 A9 30 00 1F AE 解析:45 A9 30 00为单精度浮点型,转换为十进制为5414ua |
4、AO读写
数据类型:AO数据为32位单精度浮点数(ABCD),每个AO占2个寄存器,单位是mV,转换为V公式为:电压值 = 返回参数值 /1000,公式可在边缘点位添加。
寄存器参数:IO拓展机的AO的寄存器地址按照顺序依次顺延,因为AO为32位浮点数,所以每次地址顺延需要增加2,比如拓展机的第一个AI寄存器地址为40001(0x0000),第二个AI寄存器地址为40003(0x0002)。
点位名称 | 接入位置 | 寄存器地址 | 功能码 |
AO1 | IO拓展机 | 40001(0x0000) | 0x03,0x06,0x10 |
AO2 | IO拓展机 | 40003(0x0002) | 0x03,0x06,0x10 |
AO3 | IO拓展机 | 40005(0x0004) | 0x03,0x06,0x10 |
AO4 | IO拓展机 | 40007(0x0006) | 0x03,0x06,0x10 |
... | IO拓展机 | ... | 0x03,0x06,0x10 |
注:AO点位的模式配置只能在拓展机单独使用的时候通过拓展机串口发送才会响应,接到M100上之后AO的输出模式配置只能通过页面配置,不再支持指令配置
操作 | 示例 |
AO1电流输出4mA(modbus RTU) | 配置:64 10 00 00 00 02 04 45 7A 00 00 28 B7 响应:64 10 00 00 00 02 48 3D 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO1电流输出4mA(modbus TCP) | 配置:00 00 00 00 00 0B 64 10 00 00 00 02 04 45 7A 00 00 响应:00 00 00 00 00 06 64 10 00 00 00 02 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO1状态查询(modbus RTU) | 查询:64 03 00 00 00 02 CD FE 响应:64 03 04 45 9C 40 00 2B D7 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |
AO1状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 03 00 00 00 02 响应:00 00 00 00 00 07 64 03 04 45 9C 40 00 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |
AO2电流输出4mA(modbus RTU) | 配置:64 10 00 02 00 02 04 45 7A 00 00 A9 6E 响应:64 10 00 02 00 02 E9 FD 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO2电流输出4mA(modbus TCP) | 配置:00 00 00 00 00 0B 64 10 00 02 00 02 04 45 7A 00 00 响应:00 00 00 00 00 06 64 10 00 02 00 02 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO2状态查询(modbus RTU) | 查询:64 03 00 02 00 02 6C 3E 响应:64 03 04 45 9C 40 00 2B D7 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |
AO2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 03 00 02 00 02 响应:00 00 00 00 00 07 64 03 04 45 9C 40 00 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |
AO1~AO2电流输出4mA(modbus RTU) | 配置:64 10 00 00 00 04 08 45 7A 00 00 45 7A 00 00 38 4C 响应:64 10 00 00 00 04 C8 3F 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO1~AO2电流输出4mA(modbus TCP) | 配置:00 00 00 00 00 0F 64 10 00 00 00 04 08 45 7A 00 00 45 7A 00 00 响应:00 00 00 00 00 06 64 10 00 00 00 04 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO1~AO2状态查询(modbus RTU) | 查询:64 03 00 00 00 04 4D FC 响应:64 03 08 45 7A 00 00 45 7A 00 00 51 07 解析:45 7A 00 00为单精度浮点型,转换为十进制为4000ua |
AO1~AO2状态查询(modbus TCP) | 查询:00 00 00 00 00 06 64 03 00 00 00 04 响应:00 00 00 00 00 0B 64 03 08 45 7A 00 00 45 7A 00 00 解析:45 9C 40 00为单精度浮点型,转换为十进制为5000ua |