一种基于modbus串行通讯协议的通讯方法

文档序号:6337560阅读:744来源:国知局
专利名称:一种基于modbus串行通讯协议的通讯方法
技术领域
本发明涉及串行通讯协议的相关技术领域,特别是一种基于MODBUS串行通讯协 议的通讯方法。
背景技术
MODBUS是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器 (PLC)而发表的。事实上,它已经成为工业领域通信协议标准,并且现在是工业电子设备之 间相当常用的连接方式。传统模拟控制系统采用一对一的设备连线,按控制回路分别进行连接。位于现场 的测量变送器与位于控制室的控制器之间,控制器与位于现场的执行器、开关、电动机之间 均为一对一的物理连接。现场总线控制系统可实现一对电线上传输多个信号,如运行参数 值、多个设备状态、故障信息等。这样就为简化系统结构、节约硬件设备、节约连接电缆与各 种安装、维护费用创造条件。现在有多种流行现场总线,它们非常成熟可靠,但是这些总线不管是主站设备还 是从站设备都非常昂贵。对于中小型自动化控制系统,现场设备只有400台以下,通讯的 数据量并不太大,在这样条件下使用当前流行现场总线太过昂贵。而使用串口通讯基于 MODBUS协议,成本非常低,并且MODBUS协议使用非常广泛。可惜MODBUS协议很多年都没有 进一步发展,各个厂家根据MODBUS协议自己做主站或从站程序,这样兼容性很差,可靠性 也没有办法保证,通讯的速率一般为9600bps,从站相应时间也很慢,所以很不适应自动化 控制应用。

发明内容
本发明提供一种基于MODBUS串行通讯协议的通讯方法,以解决现有技术中使用 MODBUS协议兼容性差的技术问题。为了实现本发明的发明目的,采用的技术方案如下一种基于MODBUS串行通讯协议的通讯方法,所述通讯方法用于在主站和从站之 间实现串行通讯,所述方法包括主站方面执行如下步骤首先主站向从站发送检测字符数据;然后根据保存在主站的从站地址查询从站是否准备就绪;如果从站准备就绪,主站发送组态数据给从站;主站查询从站是否进入交换状态,如果从站进入交换状态,则主站发送接收输入 输出数据;从站方面执行如下步骤从站初始化后,进入准备就绪状态,然后等待检测字符数据;当接收到检测字符数据,则根据检测字符数据确定波特率,向主站返回准备就绪信息,并等待主站发送组态数据;当检测到组态数据,且组态数据和保存在从站的输入输出数据一致则从站进入交 换状态,并向主站发送进入交换状态信息,和主站进行数据交换。作为一种优选方案,所述方法还包括主站向从站发生检测字符数据后,主站根据保存在主站的从站地址多次查询从站 是否准备就绪,如果超过预先设定的准备状态查询阈值,仍未收到从站准备就绪信息,则判 断查询出错并给出告警信息。作为一种优选方,所述方法还包括主站多次查询从站是否进入交换状态,如果超过预先设定的交换状态查询阈值, 仍未收到从站发送的进入交换状态信息,则主站判断查询出错并给出告警信息。作为一种优选方,所述方法还包括主站检测由用户提供的头文件,根据头文件中的通讯参数,设置向从站发送的检 测字符数据。作为一种优选方,所述方法还包括主站与从站发送的输入输出数据,根据输入输出数据的数据帧的功能码判断数据 帧的传输服务类型如果传输服务类型判断为发送数据需应答类型则接收端需要发送确认帧,如果发送端在规定的时间内没有接收到确认帧,则判 断数据帧发送出错,将重复数据传输;如果传输服务类型判断为发送数据无需应答类型则接收端不发送确认帧;如果传输服务类型判断为发送和请求数据需回答类型则发送端向接收端发送数据时,请求接收端回答数据,接收端需要发送确认帧且 回答数据,如果发送端在规定的时间内没有接收到确认帧或没有收到接收端发送的回答数 据,则判断数据帧发送出错,将重复数据传输。本发明在三个方面进行改进,第一 =MODBUS的基础上丰富功能,增加总线状态查 询,组态数据等功能。第二 提供标准主站程序,用户可以只要修改提供的头文件,就能很方 便实用。第三从站能自动适应多个波特率,提供总线状态,多种诊断信息。


图1为本发明实施例主站的流程图;图2为本发明实施例从站的流程图。
具体实施例方式下面结合附图和具体实施例对本发明做进一步详细的说明。如图1和图2所示为本发明实施例的流程图,包括如下步骤主站方面执行如下步骤首先主站向从站发送一串特殊字符数据;然后根据保存在主站的从站地址查询从站是否准备就绪;
如果从站准备就绪,主站发送组态数据给从站;主站查询从站是否进入交换状态,如果从站进入交换状态。则主站发送接收输入 输出数据;从站方面执行如下步骤从站初始化后,进入准备就绪状态,然后等待检测字符数据;当接收到特殊字符数据,则根据特殊字符数据确定波特率,向主站返回准备就绪 信息,并等待主站发送组态数据;当检测到组态数据,且组态数据和保存在从站的输入输出数据一致则从站进入交 换状态,并向主站发送进入交换状态信息,和主站进行数据交换。本实施例使用OSI参考模型7个层次中的3个次,分别是物理层、数据链路层、用户层。1. 1物理层是一种介质,包括长度和拓扑结构、总线接口、站点数和在9. 61Ait/S 到5001cbit/S之间可变的数据传输速率可适应不同的应用。在用户接口上,具有共同的存 取方式、传输协议和共同的服务。物理层类型1 (包含在本规范的第二部分中)是根据EIA标准RS-485制定的·拓扑线性总线,在两端有终端器,短截线< 0. 3m,无分支;·介质屏蔽双绞线 总线长度彡1200米·站点数32(主站,从站或中继器)·数据传输速率9· 6/19. 2/93. 75/187. 5/500kbits/s.物理层类型2 (依据IEC 61158-2制定的,包含在本规范的第九部分中)满足本质安全(IS)的要求·拓扑线性总线,在两端有终端器,短截线(Spur)总长彡120米;·介质双绞线或多心电缆(屏蔽或非屏蔽);·总线长度1900米,与电缆类型有关;·站点数32 (主站,从站或中继器);·数据传输速率31. 25kbits/s。1.2数据链路层介质存取控制协议(MAC),数据传输服务和管理服务符合标准DIN 19241-2, GB/ T9469 (PR0WAY C),ISO 8802-2 和 IS0/IEC JTC I/SC 6N 4960 (LLC 类型 1 和 LLC 类型 3)的定义。八位位组(字符)格式是UART格式FT 1. 2 (带起-停同步的异步传输),如同对 远程控制设备和系统(IEC 870-5-1)定义的那样。传输方式为RTU模式。Modbus信息帧使 用RTU模式,信息发送至少要以3. 5个字符时间的停顿间隙开始。在网络波特率下多样的 字符时间,这是最容易实现的。传输的第一个域是设备地址。可以使用的传输字符是十六 进制的0...9,^。网路设备的不断侦测总线,包括停顿间隙时间内。当第一个域接收到, 每个设备都进行解码以判断是否发往给自己的。在最后一个传输字符之后,一个至少3. 5 个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。
整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过1. 5个字符时间 的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样 地,如果一个新消息在小于3. 5个字符时间内接着前个消息开始,接收的设备将认为它是 前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一典型 的消息帧如下所示
权利要求
1.一种基于MODBUS串行通讯协议的通讯方法,所述通讯方法用于在主站和从站之间 实现串行通讯,其特征在于,所述方法包括主站方面执行如下步骤首先主站向从站发送检测字符数据;然后根据保存在主站的从站地址查询从站是否准备就绪;如果从站准备就绪,主站发送组态数据给从站;主站查询从站是否进入交换状态,如果从站进入交换状态,则主站发送接收输入输出 数据;从站方面执行如下步骤从站初始化后,进入准备就绪状态,然后等待检测字符数据;当接收到检测字符数据,则根据检测字符数据确定波特率,向主站返回准备就绪信息, 并等待主站发送组态数据;当检测到组态数据,且组态数据和保存在从站的输入输出数据一致则从站进入交换状 态,并向主站发送进入交换状态信息,和主站进行数据交换。
2.根据权利要求1所述的通讯方法,其特征在于,所述方法还包括主站向从站发生检测字符数据后,主站根据保存在主站的从站地址多次查询从站是否 准备就绪,如果超过预先设定的准备状态查询阈值,仍未收到从站准备就绪信息,则判断查 询出错并给出告警信息。
3.根据权利要求1所述的通讯方法,其特征在于,所述方法还包括主站多次查询从站是否进入交换状态,如果超过预先设定的交换状态查询阈值,仍未 收到从站发送的进入交换状态信息,则主站判断查询出错并给出告警信息。
4.根据权利要求1所述的通讯方法,其特征在于,所述方法还包括主站检测由用户提供的头文件,根据头文件中的通讯参数,设置向从站发送的检测字 符数据。
5.根据权利要求1所述的通讯方法,其特征在于,所述方法还包括主站与从站发送的输入输出数据,根据输入输出数据的数据帧的功能码判断数据帧的 传输服务类型如果传输服务类型判断为发送数据需应答类型则接收端需要发送确认帧,如果发送端在规定的时间内没有接收到确认帧,则判断数 据帧发送出错,将重复数据传输;如果传输服务类型判断为发送数据无需应答类型 则接收端不发送确认帧;如果传输服务类型判断为发送和请求数据需回答类型则发送端向接收端发送数据时,请求接收端回答数据,接收端需要发送确认帧且回答 数据,如果发送端在规定的时间内没有接收到确认帧或没有收到接收端发送的回答数据, 则判断数据帧发送出错,将重复数据传输。
全文摘要
本发明涉及串行通讯协议的相关技术领域,特别是一种基于MODBUS串行通讯协议的通讯方法,包括首先主站向从站发送检测字符数据;然后根据保存在主站的从站地址查询从站是否准备就绪;主站发送组态数据给从站;则主站发送接收输入输出数据;从站初始化后,进入准备就绪状态,根据检测字符数据确定波特率,向主站返回准备就绪信息,当检测到组态数据,且组态数据和保存在从站的输入输出数据一致则从站进入交换状态,和主站进行数据交换。本发明第一MODBUS的基础上丰富功能,增加总线状态查询,组态数据等功能。第二提供标准主站程序,用户可以只要修改提供的头文件,就能很方便实用。第三从站能自动适应多个波特率,提供总线状态,多种诊断信息。
文档编号G06F13/38GK102053935SQ201010571338
公开日2011年5月11日 申请日期2010年11月25日 优先权日2010年11月25日
发明者龙斌 申请人:广东雅达电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1