查看完整版本: [-- modbus 协议及modbus RTU 的C51 程序 --] 电子工程师之家 -> 51 单片机论坛 -> modbus 协议及modbus RTU 的C51 程序 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题 一线工人 2007-11-15 21:44 modbus 协议及modbus RTU 的C51 程序 完整的程序请下载 [attachment=1488] Modbus 通讯协议 Modbus 协议最初由Modicon 公司开发出来,在1979 年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus 已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485 和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用 Modbus 协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus 协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用 Modbus 协议发送给询问方。 Modbus 协议包括 ASCII、RTU、TCP 等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的 Modicon 控制器使用 RS232C 实现串行的Modbus。Modbus 的ASCII、RT U 协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用 Maser/Slave 方式,Master 端发出数据请求消息,Slave 端接收到正确消息后就可以发送数据到 Master 端以响应请求; Master 端也可以直接发消息修改 Slave 端的数据,实现双向读写。 Modbus 协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII 模式采用 LRC 校验,RTU 模式采用 16 位 CRC 校验,但 TCP 模式没有额外规定校验,因为TCP 协议是一个面向连接的可靠协议。另外,Modbus 采用主从方式定时收发数据,在实际使用中如果某Slave 站点断开后(如故障或关机), Master 端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus 协议的可靠性较好。 下面我来简单的给大家介绍一下,对于 Modbus 的ASCII、RTU 和 TCP 协议来说,其中TCP 和 RTU 协议非常类似,我们只要把 RTU 协议的两个字节的校验码去掉,然后在RT U协议的开始加上 5 个 0 和一个 6 并通过 TCP/IP 网络协议发送出去即可。所以在这里我仅介绍一下Modbus 的ASCII 和 RTU 协议。 下表是 ...