精品文档---下载后可任意编辑说明文档一、 Modbus RTU 通用规约说明1.1Modbus 协议简介Modbus 协议最初由 Modicon 公司开发出来,在 1979 年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在 Modbus 已经是工业领域全球最流行的协议。此协议支持传统的串口链路 RS-232、RS-422、RS-485 和以太网设备。许多工业设备包括 PLC,DCS,智能仪表等都在使用 Modbus 协议作为他们之间的通讯标准。Modbus 协议包括 ASCII、RTU、TCP 等,并没有规定物理层。此协议定义了控制器能够认识和使用的报文结构,而不管它们是经过何种网络进行通信的。标准的 Modicon 控制器使用 RS232C 实现串行的 Modbus。Modbus 的 ASCII、RTU 协议规定了报文、数据的结构、询问和应答的方式,数据通讯采纳主/从方式,主站发出数据请求报文,从站接收到正确报文后就可以发送数据到主站端以响应请求;主站也可以直接发报文修改从站的数据,实现双向读写。1.2Modbus 通用规约介绍Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII 模式采纳 LRC 校验,RTU 模式采纳 16 位 CRC 校验,但 TCP 模式没有额外规定校验,因为 TCP 协议是一个面对连接的可靠协议。另外,Modbus 采纳主从问答方式收发数据,在实际使用中假如某从站站点断开后(如故障或失电),主站可以诊断出来,而当故障修复后,网络又可自动接通。因此 Modbus 协议的可靠性较好。Modbus 协议在串行链路中 RTU 模式使用的最多,通用性很强,所以在这里仅介绍一下 Modbus RTU 协议即 Modbus 通用规约。下表是 Modbus Rtu 支持的功能码:功能码 名称 作用 01 读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF) 02 读取输入状态 取得一组开关输入的当前状态(ON/OFF) 03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值 04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值 05 强置单线圈 强置一个逻辑线圈的通断状态 06 预置单寄存器 把具体二进值装入一个保持寄存器 07 读取异常状态 取得 8 个内部线圈的通断状态,这 8 个线圈的地址由控制器决定 08 回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴 09 编程(只用于 484) 使主机模拟编程器作用,修改 PC 从机逻辑 10 控询(只用于 484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否...