(完整版)Modbus-MODBUS-TCP-协议解析_第1页
(完整版)Modbus-MODBUS-TCP-协议解析_第2页
(完整版)Modbus-MODBUS-TCP-协议解析_第3页
(完整版)Modbus-MODBUS-TCP-协议解析_第4页
(完整版)Modbus-MODBUS-TCP-协议解析_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、modbus modbus 和和modbus/tcpmodbus/tcp协议协议基础介绍基础介绍epa推广应用中心 章雷 modbus协议在串行链路上的实现协议在串行链路上的实现3modbus 协议规范协议规范2概概 述述1modbus协议在协议在tcp/ip上的实现上的实现4主要内容主要内容 概概 述述1v modbusmodbus是是modiconmodicon公司于公司于19791979年开发的一种通讯协议年开发的一种通讯协议,是一种工业现场总线协议标准。是一种工业现场总线协议标准。19961996年施耐德公司年施耐德公司推出推出了了基于以太网基于以太网tcp/iptcp/ip的的mod

2、busmodbus协议协议modbustcpmodbustcp。v modbusmodbus协议是一项应用层报文传输协议,包括协议是一项应用层报文传输协议,包括asciiascii、rturtu、tcptcp三种报文类型,协议本身并没有定义物理层,三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管只是定义了控制器能够认识和使用的消息结构,而不管他们是经过何种网络进行通信的。他们是经过何种网络进行通信的。v 标准的标准的modbusmodbus协议物理层接口有协议物理层接口有rs232rs232、rs422rs422、rs485rs485和以太网口。采用和以

3、太网口。采用master/slavemaster/slave(主(主/ /从)方式通信。从)方式通信。v modbusmodbus在在20042004年成为我国国家标准。年成为我国国家标准。modbus 协议规范协议规范2modbusmodbus技术规范的关系技术规范的关系 modbus 应用层 在 tcp/ip 上的 modbus 映射 tcp/ip ietf rfc 793 ip ietf rfc 791 ethernet ii /802.3 ieee 802.2 以太网物理层 tia/eia-232-f 串行链路主站/从站 tia/eia-485-a modbus 协议在 tcp/ip

4、上的实现指南 modbus应用协议规范 modbus 协议在串行链路上的实现指南 modbus应用协议应用协议 modbusmodbus是一种简单客户机是一种简单客户机/ /服务器应用协议服务器应用协议v 客户机能够向服务器发送请求。客户机能够向服务器发送请求。v 服务器分析请求,处理请求,向客户机发送应答。服务器分析请求,处理请求,向客户机发送应答。通用通用modbus帧结构帧结构协议数据单元协议数据单元 (pdu) (pdu)modbusmodbus协议定义了一个与基础通信层无关的简单协议数协议定义了一个与基础通信层无关的简单协议数据单元(据单元(pdupdu),特定总线或网络上的),特定

5、总线或网络上的modbusmodbus协议映射协议映射能够在应用数据单元(能够在应用数据单元(aduadu)上引入一些附加域。)上引入一些附加域。 附加地址 功能码 数据 差错校验 adu pdu modbus事务处理(无差错)事务处理(无差错)v 当服务器对客户机响应时,它使用功能码域来指示正常当服务器对客户机响应时,它使用功能码域来指示正常(无差错)响应或者出现某种差错(称为异常响应)。(无差错)响应或者出现某种差错(称为异常响应)。v 对于一个正常响应来说,服务器仅复制原始功能码。对于一个正常响应来说,服务器仅复制原始功能码。 功能码功能码 数据请求数据请求 客户机 服务器 启动请求启动

6、请求 执行操作执行操作 启动响应启动响应 接收响应接收响应 功能码功能码 数据响应 modbus事务处理(异常响应)事务处理(异常响应) 客户机 服务器 启动请求启动请求 在操作中检测差错在操作中检测差错 启动差错启动差错 异常功能码异常功能码 接收响应接收响应 异常码异常码 功能码功能码 数据请求数据请求 v 对于异常响应,服务器将原始功能码的最高有效位设置对于异常响应,服务器将原始功能码的最高有效位设置逻辑逻辑1 1后返回。后返回。v 异常码指示差错类型。异常码指示差错类型。modbus协议在串行链路上的实现协议在串行链路上的实现3modbusmodbus协议在串行链路上的实现模型协议在串

7、行链路上的实现模型v 主要是在主要是在rs485rs485和和rs232rs232等物理接口上实现等物理接口上实现modbusmodbus协议。协议。v 在在modbusmodbus链路层上客户机的功能由主站提供而服务器的功链路层上客户机的功能由主站提供而服务器的功能由从站实现。能由从站实现。层iso/osi 模型 7应用层modbus应用协议6表示层空5会话层空4传输层空3网络层空2数据链路层modbus串行链路协议 1物理层eia/tia-485 (或 eia/tia232) eia/tia-485 (或 eia/tia-232) modbus 主站/从站 modbus 应用协议层 客户机

8、/服务器 modbusmodbus主站主站- -从站协议原理从站协议原理v modbusmodbus串行链路协议是一个主串行链路协议是一个主- -从协议。在同一时刻,只有从协议。在同一时刻,只有一个主节点连接与总线,一个或多个子节点(最大编号为一个主节点连接与总线,一个或多个子节点(最大编号为247247)连接于同一串行总线。)连接于同一串行总线。v modbusmodbus通信由主节点发起,子节点在没有收到来自主节点的通信由主节点发起,子节点在没有收到来自主节点的请求时,从不会发送数据。请求时,从不会发送数据。v 子节点之间互不通信。子节点之间互不通信。v 主节点在同一时刻只会发起一个主节点

9、在同一时刻只会发起一个modbusmodbus事务处理。事务处理。v 主节点以两种模式对子节点发送主节点以两种模式对子节点发送modbusmodbus请求:广播、单播。请求:广播、单播。v 主站工作状态图主站工作状态图v 从站工作状态图从站工作状态图v 主主/ /从通信的三种典型情况从通信的三种典型情况串行链路上的串行链路上的modbusmodbus地址规则地址规则v modbusmodbus寻址空间有寻址空间有256256个不同地址个不同地址v 地址地址0 0为广播地址为广播地址v modbusmodbus主节点没有地址,子节点必须有一个唯一的地址主节点没有地址,子节点必须有一个唯一的地址0

10、1247248255广播地址子节点单独地址保留串行链路上的串行链路上的modbusmodbus帧结构帧结构v m modbusodbus串行链路协议是一个主串行链路协议是一个主/ /从协议从协议v 网络上的每个从站必须有唯一的地址(从网络上的每个从站必须有唯一的地址(从1 1到到247247)v 从站地址用于寻址从站设备,由主站发起从站地址用于寻址从站设备,由主站发起v 地址地址0 0用于广播模式,不需要响应用于广播模式,不需要响应v rs-485rs-485和和rs-232 rs-232 定义了标准的物理端口,提高互可操作性定义了标准的物理端口,提高互可操作性 地址域 功能码 数据 crc

11、(或 lrc) modbus 串串行行链链路路 adu modbus pdu 两种两种modbusmodbus串行传输模式串行传输模式 从站 地址 功能码 数据 crc 1 字节 1 字节 0 至 252 字节 2 字节 crc 高位 crc 低位 ascii ascii模式:模式:信息中的每个信息中的每个8 bit8 bit字节需字节需2 2个个asciiascii字符字符, ,其其优点是准许字符的传输间隔达到优点是准许字符的传输间隔达到1 1 s s而不产生错误而不产生错误; ; rtu rtu模式:模式:每个每个8 bit8 bit字节包含两个字节包含两个4 bit4 bit的十六进制字

12、符的十六进制字符, ,其优点是在同样的波特率下其优点是在同样的波特率下, ,可比可比asciiascii方式传送更多的数方式传送更多的数据据, ,但是每个信息必须以连续的数据流传输但是每个信息必须以连续的数据流传输。 起始 地址 功能码 数据 lrc 结束 1个 字符 : 2个字符 2个字符 2个字符 2个字符 cr、lf 0至2x252个字符 优点优点:v 公开的协议,公开的协议,完全免费。完全免费。v 简单易用简单易用,性能稳定。,性能稳定。 v 广泛的知识资源支持广泛的知识资源支持。modbus 的优缺点的优缺点 缺点:缺点:v 自适应性差,需合理组态。自适应性差,需合理组态。v 通信效

13、率低。通信效率低。modbus协议在协议在tcp/ip上的实现上的实现4modbustcpmodbustcp简介简介v modbustcpmodbustcp是运行在是运行在tcp/iptcp/ip上的上的modbus modbus 报文传输协议。通过报文传输协议。通过此协议,控制器相互之间通过网络(例如以太网)和其它设此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信。备之间可以通信。v modbustcpmodbustcp是开放的协议,是开放的协议,ianaiana(internet assigned internet assigned numbers authoritynu

14、mbers authority,互联网编号分配管理机构)给,互联网编号分配管理机构)给modbusmodbus协议赋予协议赋予tcptcp编口号为编口号为502502,这是目前在仪表与自动化行业中,这是目前在仪表与自动化行业中唯一分配到的端口号。唯一分配到的端口号。v modbustcp/ipmodbustcp/ip协议模型协议模型modbustcpmodbustcp通信结构通信结构 modbus 客户机 tcp/ip modbus 服务器 tcp/ip modbus 服务器 tcp/ip modbus 服务器 串行链路 modbus 服务器 串行链路 modbus 客户机 串行链路 modb

15、us 客户机tcp/ip modbus tcp / ip 客客户户机机 tcp/ip 网网关关 服服务务器器 tcp/i 网网关关 modbus 串串行行链链路路 v modbusmodbus tcp/iptcp/ip的通信设备:连接至的通信设备:连接至tcp/iptcp/ip网络的网络的 modbusmodbus tcp/iptcp/ip客户机和服务器设备。客户机和服务器设备。 v 互连设备,如:在互连设备,如:在tcp/iptcp/ip网络和串行链路子网之间互连网络和串行链路子网之间互连的网桥、路由器或网关等设备。的网桥、路由器或网关等设备。modbustcp数据帧数据帧v modbust

16、cpmodbustcp数据帧与串行链路数据帧的区别数据帧与串行链路数据帧的区别mbapbap报文头报文头域长度描述客户机服务器事务处理标识符2字节modbus请求/响应事务处理的识别客 户 机 启动服务器从接收的请求中重新复制协议标识符2字节0=modbus协议客 户 机 启动服务器从接收的请求中重新复制长度2字节随后字节的数量客 户 机 启动(请求)服务器(响应)启动单元标识符1字节串行链路或其它总线上连接的远程从站的识别客 户 机 启动服务器从接收的请求中重新复制modbustcpmodbustcp报文传输服务结构报文传输服务结构用户应用通讯应用层modbus客户接口modbus客户接口m

17、odbus客户机modbus服务器tcptcp管理层栈参数化连接管理访问控制tcp/ip栈资源管理与流量控制通信应用层通信应用层v modbusmodbus客户机:允许用户应用控制与远程设备的信息交换。客户机:允许用户应用控制与远程设备的信息交换。modbusmodbus客户机根据用户应用向客户机根据用户应用向modbusmodbus客户机接口的发送要客户机接口的发送要求中所包含的参数来建立一个求中所包含的参数来建立一个modbusmodbus请求。请求。v modbusmodbus客户机接口:客户机接口:modbusmodbus客户机接口提供一个接口,使客户机接口提供一个接口,使得用户应用能

18、够生成各类得用户应用能够生成各类modbusmodbus服务的请求,该服务包括服务的请求,该服务包括对对modbusmodbus应用对象的访问。应用对象的访问。v modbusmodbus服务器:在收到一个服务器:在收到一个modbusmodbus请求以后,模块激活一请求以后,模块激活一个本地操作进行读、写、或完成其他操作。个本地操作进行读、写、或完成其他操作。tcptcp管理层管理层v 连接管理:连接管理: 在客户机和服务器的在客户机和服务器的modbusmodbus模块之间的通信需要使用模块之间的通信需要使用tcptcp连接管理模块,负责全面管理报文传输连接管理模块,负责全面管理报文传输t

19、cptcp连接。连接。v 访问控制:访问控制: 在某些至关重要的场合,必须禁止无关的主机对设备在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。内部数据的访问。 管理通信的建立和结束以及管理在所建立的管理通信的建立和结束以及管理在所建立的tcptcp连接上的连接上的数据流。数据流。tcp/iptcp/ip栈层栈层v 可以对可以对tcp/iptcp/ip的栈进行参数配置,以适用于不同的产品或的栈进行参数配置,以适用于不同的产品或 系统特定的约束条件,来进行数据流控制、地址管理和连系统特定的约束条件,来进行数据流控制、地址管理和连 接管理,使用接管理,使用bsdbsd套接字接口来管理套

20、接字接口来管理tcptcp连接连接。tcptcp连接管理连接管理v modbusmodbus通信需要建立客户机与服务器之间的通信需要建立客户机与服务器之间的tcptcp连接。连接。v 连接的建立可以由用户应用模块直接实现,也可以由连接的建立可以由用户应用模块直接实现,也可以由tcptcp连接连接管理模块自动完成。管理模块自动完成。v 在第一种情况下,用户应用模块必须提供应用程序接口,以在第一种情况下,用户应用模块必须提供应用程序接口,以便完全管理连接。这种方式为应用开发人员提供了灵活性,便完全管理连接。这种方式为应用开发人员提供了灵活性,但需要但需要tcp/iptcp/ip机制方面的专长。机制

21、方面的专长。v 在第二种在第二种情况情况,tcp tcp 连接管理完全不出现,用户应用仅需要连接管理完全不出现,用户应用仅需要发送和接受发送和接受modbus modbus 报文。报文。tcp tcp 连接管理模块负责在需要时建连接管理模块负责在需要时建立新的立新的tcptcp连接。连接。tcptcp连接的建立连接的建立v modbusmodbus报文传输服务必须在报文传输服务必须在502502端口上提供一个监听套接端口上提供一个监听套接字,允许接收新的连接和与其他设备交换数据。字,允许接收新的连接和与其他设备交换数据。v 当报文传输服务需要与远程服务器交换数据时,它必须当报文传输服务需要与远

22、程服务器交换数据时,它必须与远程与远程502502端口建立一个新的客户机连接,以便于远距离端口建立一个新的客户机连接,以便于远距离地交换数据。本地端口必须高于地交换数据。本地端口必须高于10241024,并且对每个客户,并且对每个客户机的连接各不相同机的连接各不相同 。设备设备客户机端口服务器端口502n(n1024)服务器端口客户机端口502n(n1024)连接( ip1 n, ip2502) ip1 ip2信息交换过程信息交换过程 完整的完整的m modbustcpodbustcp通信过程通信过程: 客户机建立一个连接,客户机建立一个连接,向向服务器发送服务器发送3 3 个个modbusm

23、odbus请请求,而不等待第一个请求的求,而不等待第一个请求的应答到来。在收到所有的应应答到来。在收到所有的应答后,客户机正常地关闭连答后,客户机正常地关闭连接。接。v 客户机客户机的通信过程如下的通信过程如下: : (1)(1)用用 connectconnect 命令建立与目标设备的连接命令建立与目标设备的连接; ; (2) (2)准备准备 modbus modbus 报文包括报文包括 7 7个字节的个字节的 mbap mbap 在在 内的请求内的请求; (3) (3)使用使用 send send 命令发送报文命令发送报文; ; (4) (4)在同一连接下等待应答在同一连接下等待应答; ; (5)(5)用用 recv recv 命令读取报文命令读取报文, , 完成一次数据交换过程。当完成一次数据交换过程。当通信任务结束时通信任务结束时, , 关闭关闭 tcp tcp 连接连接, , 使使 modbus tcp modbus tcp服务器服务器可为其它可为其它客户机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论