宋国清 刘 畅
基于BTF340开发板的Modbus从机协议实现
宋国清 刘 畅
借助BTF340开发版的串口,按照GB/Z 19582.2—2004的规范,编写了Modbus的下位机通讯协议。介绍了通讯协议的实现过程,并且结合JCBus串口调试助手的Modbus调试功能,验证了程序的正确性。
Modbus;国家标准;程序流程
Modbus是目前国内外应用最普遍的工业现场总线协议,结构上属于主从协议。系统通讯时,主站按照预先特定的格式向从站发送指令,从站接受到指令后按照该格式解析该指令的含义,并进行相应的数据处理或采集。然后按照规定格式将处理结果发回主机。并且从站在没有接到主站指令前,不向主机和其它从机发送数据。具体格式规定可以参考GB/Z 19582.2—2004的第2部分:Modbus协议在串行链路上的实现指南。由于该协议通讯效率高,实现简单,各大知名厂家的PLC、DCS和多数的智能仪表都嵌入了Modbus从机协议,同时组态王等工控软件可以支持上述符合Modbus规范的设备,这样很容易对工业控制变量的状态进行集中监控。
JCBus串口调试助手是上海集成仪器仪表研究所有限公司开发的软件,它可以自动添加CRC16校验码,按需存储8条调试消息,软件关闭后自动存储,收发对应且时间戳精确1毫秒,易于查找等。调试过程中发现其它的串口调试工具,比如:ModBusTest-CSEC通讯测试软件,ModbusRTU,ModbusSim11等都存在不同程度的缺陷,像不能进行奇偶校验,不能进行CRC16校验等问题,相比之下JCBus串口调试助手显示了较强的通讯和测试能力,因此测试过程主要是在该软件下完成的。软件界面如图1所示。
图1
BTF340开发板是针对C8051F340单片机片上资源及功能特点,而推出的一款开发、评估板。可通过开发板上的各种经典电路的实际操作及附带光盘提供的完整的范例程序,可迅速地进行程序代码的编写,达到缩短产品开发周期的目的,程序主要是在该开发板上完成的,并开始进入电机软启动控制仪器测试阶段。
图2
在硬件方面按照图2进行连接,一路,采用BTF340开发版的DB9接口经过串口线和PC的RS232接口相连,用来检查是否实现了Modbus的正常通讯功能,另外一路,采用BTF340开发版的JTAG接口连接上仿真器U-EC5,然后经USB线与电脑的USB相连,用来调试编写的代码。在软件方面采用应用广泛的keil 公司的开发环境uvision 3开发环境,针对BTF340开发板,要安装SiC8051F_uv2、SiC8051F_uv3、U—PDC、U-EC5等程序,这样就可以进行程序的编写和调试,借助JCBus串口调试助手检查程序正确性。下面简述程序的实现步骤:
图3
1.当PC机发送数据时,从机C8051F340的串口产生中断对发来的数据计数和存储。与此同时,定时器3中的“虚拟时钟”启动,当时钟发现有3.5个字符的时间没有接收到数据时,认为一帧数据接收完毕,马上对接收的数据进行功能代码识别,并做出标记。
2.主程序检测到该标记后,对刚刚接收完毕的数据进行CRC16校验,如果不成功就丢掉该数据,校验成功后才调用功能解析子函数。
3.解析子函数分析数据接收的功能代码范围、数据长度是否正确,不正确,发送对应的错误代码;正确后进行处理或采集,然后发回对应的数据。
图3是程序主要部分的流程图,详细介绍了程序的思想和实现方法。左边是定时器中断程序,右边是串口中断程序。
流程图中的字母说明:
在定时器中定一个167um的周期。并将该周期设置为虚拟时钟A。
定义以下时件:时间超过传输1.5个字符所用时间为B;时间超过传输3个字符所用时间为C;检查从传输1.5个字符~3个字符的时间间隔内接收到的数据变化与否为D;检测接受过程中有无奇偶校验错误出现E。流程图如图3所示。
本通讯协议经过测试后可以进行数据的接收,并正确回传处理数据,实现了常用的功能,功能代码是GB中定义的:3、4、5、6。希望协议实现方法,能为进一步简化协议的软件编写过程提供参考。
[1]Modbus通讯协议国家标准,GB/Z 19582.2—2004[S],GB/Z 19582.1—2004[S].
[2]400/420/430/530控制器通信协议[Z],深圳市达英行电器有限公司.
[3]崔鹏.基于Modbus协议的单片机智能电炉温度采集系统[D],昆明理工大学,2008.
[4]李娜.基于Modbus协议的智能仪表的设计[D].北京邮电大学,2008.
[5]代航阳,等.基于ModbusRTU通讯的组态王与ADAM5510通讯[J].工业控制计算机,2005.
ClassNo.:TP393.04DocumentMark:A
(责任编辑:孔祥春 郑英玲)
OnImplementationofSubordinatedComputerProtocolBasedonBTF340developingProgram
Song Guoqing Liu Chang
In accordance with GB/Z 19582.2—2004 specification and with the help of the serial port of BTF340 ,the modbus communication protocol running in the subordinate computer has been developed . The implementation process is described in this paper and the testing of the program has been done to prove be correctness by using JCBus serial debugging assistant test .
Modbus ;National Standards;program flow
宋国清,硕士,助教,齐齐哈尔高等师范专科学校,黑龙江·齐齐哈尔。邮政编码:161005
刘畅,硕士,讲师,齐齐哈尔高等师范专科学校,黑龙江·齐齐哈尔。邮政编码:161005
1672-6758(2011)01-0044-2
TP393.04
A