【转】开放型modbus-tcp规范(三)

【转】开放型modbus-tcp规范(三)

ID:11240554

大小:76.41 KB

页数:7页

时间:2018-07-10

【转】开放型modbus-tcp规范(三)_第1页
【转】开放型modbus-tcp规范(三)_第2页
【转】开放型modbus-tcp规范(三)_第3页
【转】开放型modbus-tcp规范(三)_第4页
【转】开放型modbus-tcp规范(三)_第5页
资源描述:

《【转】开放型modbus-tcp规范(三)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【转】开放型MODBUS-TCP规范(三)简介:1MBAP报文头(MBAP:ModbusApplicationProtocol,Modbus应用协议)分四个域,共7个字节,见表1。表1域长度描述客户端服务器端传输标志2字节...关键字:Modbus通信协议TCP1 MBAP报文头(MBAP:ModbusApplicationProtocol,Modbus应用协议)   分四个域,共7个字节,见表1。表1域 长度  描述客户端  服务器端 传输标志 2字节标志某个Modbus 询问/应答的传输由客户端生成  应答时复制该值 协议标志 2字节 0=M

2、odbus协议1=UNI-TE协议由客户端生成  应答时复制该值 长度2字节 后续字节计数  由客户端生成应答时由服务器 端重新生成 单元标志 1字节定义连接于目的节点的其它设备 由客户端生成 应答时复制该值                             2 Modbus功能代码   共有三种类型分别为:   · 公共功能代码 已定义好的功能码,保证其唯一性,由Modbus.org认可。   · 用户自定义功能代码 有两组,分别为65~72和100~110,不需要认可,但不保证代码使用的唯一性,如想变为公共代码,需要RFC认可。   ·

3、 保留的功能代码 由某些公司使用在某些传统设备的代码,不可作为公共用途。   常用公共功能代码见表2。表2 常用公共功能代码 常用公共功能代码 功能码  十进码    子码 十六进制位操作 开关量输入 读输入点 02  02 内部位或开关量输出 读线圈 01  01 写单个线圈 05  05 写多个线圈 15  0F16位操作 模拟量输入 读输入寄存器 04  04 内部寄存器或输出寄存器(模拟量输出) 读多个寄存器 03  03 写单个寄存器 06  06 写多个寄存器 16  10 读/写多个寄存器 23  17 屏蔽写寄存器 22  16 

4、文件记录 读文件记录 20 6 14 封装接口 写文件记录 21 6 15 读设备标识 43 14 2B   功能代码划按应用深浅分,可分为三个类别:   (1) 类别0,对于客户机/服务器最小的可用子集。   · 读多个保持寄存器(fc.3);   · 写多个保持寄存器(fc.16)。   (2) 类别1,可实现基本互易操作的常用代码。   · 读线圈(fc.1);   · 读开关量输入(fc.2);   · 读输入寄存器(fc.4);   · 写线圈(fc.5);   · 写单一寄存器(fc.6)。   (3) 类别2,用于人机界面、监控系统

5、的例行操作和数据传送功能。   · 强制多个线圈(fc.15);   · 读通用寄存器(fc.20);   · 写通用寄存器(fc.21);   · 屏蔽写寄存器(fc.22);   · 读写寄存器(fc.23)。3 Modbus应用举例:读寄存器   请求   功能码                1字节     0x03                 起始地址           2字节     0x0000到0xFFFF                 寄存器数          2字节     1到125(0x7D)   应答    功

6、能码               1字节      0x03                 字节数               1字节     2xN                 寄存器的值           Nx2字节                                      (N为寄存器的数量)   出错     出错码              1字节     0x83                  例外码            1字节      01或02或03或044 ModbusTCP请求报文举例,见表3。

7、表3 描述  大小(字节)示例 备注  MBAP传输标志Hi1 0x15传输标志用于和应答配合使用传输标志Lo10x01每对传输使用唯一的标志协议标志20x0000该域可用作寻址Modbus/Modbus+子网络的路由,这时,此值含有目的设备的地址长度20x0006单元标志20xFFModbus请求功能代码10x03读寄存器起始地址20x0005 寄存器数20x00015 ModbusTCP客户端的实现   用Connect()命令建立对目标设备TCP502端口的连接。   数据通讯的过程如下:   (1) 准备Modbus报文,包括7个字节的M

8、BAP在内的请求;   (2) 使用Send()命令发送;   (3) 在同一连接等待应答;   (4) 用recv()读报文,完成一次

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。