peakerhear的个人空间 https://bbs.21ic.com/?696186 [收藏] [复制] [RSS]

日志

MODBUS梳理系列笔记(一)

已有 295 次阅读2016-9-5 12:16 |个人分类:MODBUS相关|系统分类:原稿与翻译| MODBUS, MODBUS

前阵子开始重拾MODBUS,打算将MODBUS全面的梳理一下,把常用的命令自己写一遍去实现,
不全面阐述协议,只把过程中的零碎点做个笔记记录。

笔记一   工控采集常用命令总结梳理

1.常用ModBus功能码
由于MODBUS协议来源工控现场PLC等,一些线圈、输入寄存器、保持寄存器的叫法比较混乱,所以做个表格,把RTU下最常用的命令对应成工控采集上常用的DO, DI, AI, AO。
01H  读线圈状态READ COIL STATUS
02H 读输入位状态READ INPUT STATUS
03H  读保持寄存器READ HOLDING REGISTER
04H  读输入寄存器READ INPUT REGISTER
05H  强制单个线圈WRITE SINGLE COIL
06H  预置单个寄存器WRITE SINGLE REGISTER
0FH   强制多个线圈   WRITE MULTIPLE COIL
10H  预置多个寄存器WRITE MULTIPLE REGISTER

2 .DO, DI, AI, AO分类与实际用途:
DO,用来作开关量输出,可以是继电器输出,或者晶体管输出等;可读可写RW;
DI,做开关量输入,比如光耦输入;只读RO;
AI,可以是ADC输入;只读RO;
AO,可以做DAC的输出使用,同时也可以定位为一些内部的控制与功能寄存器;可读可写RW;

3.DO, DI, AI, AO对应的命令码:     
   
类型 连续读 R-Multi连续写 W-Multi单个写 W-One
Input  Status(DI)      位操作  02H\\
Coil  Status(DO)       位操作  01H0FH(15)05H
Input Register(AI) 字节操作  04H\\
Hold Register(AO) 字节操作  03H10H(16)06H

下次把这8个命令的查询和响应的功能代码格式总结下,并举实际的RTU下的例子;

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)