Modbus 和Modbus/TCP协议基础介绍
Modbus是MODICON公司于1979年开发的一种通讯协议,是一种工业现场总线协议标准。1996年施耐德公司推出了基于以太网TCP/IP的Modbus协议——ModbusTCP。 Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型,协议本身并没有定义物理层,只是定义了控制器能够认识和使用的消息结构,而不管他们是经过何种网络进行通信的。 标准的Modbus协议物理层接口有RS232、RS422、RS485和以太网口。采用Master/Slave(主/从)方式通信。 Modbus在2004年成为我国国家标准。
Modbus技术规范的关系
Modbus应用协议 Modbus是一种简单客户机/服务器应用协议 客户机能够向服务器发送请求。 服务器分析请求,处理请求,向客户机发送应答。
通用Modbus帧结构--协议数据单元 (PDU) Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),特定总线或网络上的Modbus协议映射能够在应用数据单元(ADU)上引入一些附加域。
Modbus协议在串行链路上的实现模型 主要是在RS485和RS232等物理接口上实现Modbus协议。 层 ISO/OSI 模型 7 应用层 Modbus应用协议 6 表示层 空 5 会话层 4 传输层 3 网络层 2 数据链路层 Modbus串行链路协议 1 物理层 EIA/TIA-485 (或 EIA/TIA232)
Modbus主站-从站协议原理 Modbus串行链路协议是一个主-从协议。在同一时刻,只有一个主节点连接与总线,一个或多个子节点(最大编号为247)连接于同一串行总线。 Modbus通信由主节点发起,子节点在没有收到来自主节点的请求时,从不会发送数据。 子节点之间互不通信。 主节点在同一时刻只会发起一个Modbus事务处理。 主节点以两种模式对子节点发送Modbus请求:广播、单播。
主站工作状态图
从站工作状态图
串行链路上的Modbus地址规则 Modbus寻址空间有256个不同地址 地址0为广播地址 1——247 248——255 广播地址 子节点单独地址 保留
串行链路上的Modbus帧结构 Modbus串行链路协议是一个主/从协议 网络上的每个从站必须有唯一的地址(从1到247) 从站地址用于寻址从站设备,由主站发起 地址0用于广播模式,不需要响应 RS-485和RS-232 定义了标准的物理端口,提高互可操作性
两种Modbus串行传输模式 RTU模式:每个8 Bit字节包含两个4 Bit的十六进制字符,其优点是在同样的波特率下,可比ASCII方式传送更多的数据,但是每个信息必须以连续的数据流传输。 ASCII模式:信息中的每个8 Bit字节需2个ASCII字符,其优点是准许字符的传输间隔达到1 s而不产生错误;
Modbus 的优缺点 优点: 缺点: 公开的协议,完全免费。 简单易用,性能稳定。 广泛的知识资源支持。 自适应性差,需合理组态。 通信效率低。
ModbusTCP简介 ModbusTCP是运行在TCP/IP上的Modbus 报文传输协议。通过此协议,控制器相互之间通过网络(例如以太网)和其它设备之间可以通信。 ModbusTCP是开放的协议,IANA(Internet Assigned Numbers Authority,互联网编号分配管理机构)给Modbus协议赋予TCP编口号为502,这是目前在仪表与自动化行业中唯一分配到的端口号。 ModbusTCP/IP协议模型
ModbusTCP通信结构 Modbus TCP/IP的通信设备:连接至TCP/IP网络的 Modbus TCP/IP客户机和服务器设备。
ModbusTCP数据帧 ModbusTCP数据帧与串行链路数据帧的区别
MBAP报文头 域 长度 描述 客户机 服务器 事务处理标识符 2字节 Modbus请求/响应事务处理的识别 客户机启动 服务器从接收的请求中重新复制 协议标识符 0=Modbus协议 随后字节的数量 客户机启动(请求) 服务器(响应)启动 单元标识符 1字节 串行链路或其它总线上连接的远程从站的识别
ModbusTCP报文传输服务结构 用户应用 通讯 资 源 管 理 与 流 量 管理层 控 制 应用层 TCP TCP/IP栈 MODBUS 客户接口 MODBUS客户机 MODBUS服务器 TCP 管理层 栈参数化 连接管理 访问控制 TCP/IP栈 资 源 管 理 与 流 量 控 制
Modbus/TCP的优缺点 优点: 缺点: 用户可免费获得协议及样板程序; 网络实施价格低廉,可全部使用通用网络部件; 网络的传输能力,100M以太网的传输结果为:每秒4000个Modbus TCP报文,而每个报文可传输125个字(16bit),故相当于4000×125=500000个模拟量数据(8000000开关量!); 缺点: 实时性较差
应用行业规模 TCP/IP 已成为信息行业的事实标准:世界上93%的网络都使用TCP/IP,只要在应用层使用Modbus TCP,就可实现工业以太网数据交换; 目前中国已把Modbus TCP作为工业网络标准之一。在国外,Modbus TCP被国际半导体业SEMI定为网络标准,国际水处理、电力系统也把它作为应用的事实标准,还有越来越多行业把Modbus TCP作为标准来用;