摘要:在拖拉机牵引试验中, 为了实现负荷车测试系统对试验进程的实时监视与控制, 针对负荷车通信系统展开研究。提出了一种主机与基于Windows CE操作系统的监视器之间的无线通信方案。阐述了通信系统功能, 主机与监视器通信的Modbus协议, 并在VB.NET编程环境中使用Serial Port控件实现监视器串口通信软件的开发。通过搭建通信系统试验平台进行了试验验证, 结果表明, 通信系统运行稳定, 实现了对数据的实时、准确的接收与发送, 达到了试验操作人员对测试数据实时监视及对试验进程实时控制的目的。该研究为负荷车测控系统的设计与开发提供了参考。
关键词:拖拉机牵引试验; 负荷车; 通信系统; Modbus协议; VB.NET;
Abstract:In order to realize real time monitoring and controlling of mobile dynamometer vehicle test system on test process in tractor traction test system, a communication system of mobile dynamometer vehicle is studied. A wireless communication scheme between computer and monitor which is based on Windows CE operating system is proposed. The functions of the communication system and Modbus protocol between the computer and monitors are mainly expounded, and the Serial Port control is used to achieve the development of monitor communication software in the VB. NET programming environment. The communication system is verified by experiment. The test results show that the communication system is stable, and it can receive and send the data timely and accurately, and realize the real time monitoring and controlling of test data and test process. This study provides a reference for the design and development of mobile dynamometer vehicle communication system.
Keyword:Tactor traction test; Mobile dynamometer vehicle; Communication system; Modbus protocol; VB.NET;
随着科技的发展, 拖拉机牵引特性试验对测试系统的自动化程度提出了越来越高的要求。试验中负荷车测试系统包括数据的接收、处理及通信等方面, 负荷车通信系统的设计与开发可实现试验人员对试验进程的实时监视与控制。
目前, 串口通信技术以其开发简单、可靠性高及抗干扰性强的特点, 被广泛应用于工业通信系统[1-4]。李建华等[5]根据自定义的通信协议, 以VC++6.0为开发工具, 利用MSComm控件实现了PC机与80C552单片机的多机串口通信;孙伟等[6]使用MSComm控件, 实现了PC机与单片机基于视图-文档类模式下的串口通信系统开发;王富东等[7]阐述了单片机多串口通信方法, 并利用软件模拟方法在MSC-51单片机上实现了多串口通信;康萍等[8]提出了一种智能家具网关与信息家电之间的串口通信方案, 设计了通信协议, 并利用C语言编制了串口通信软件;马兴等[9]利用VB6.0的串口通信控件实现了PC机与单片机的串口通信;陈斌等[10]利用Lab VIEW虚拟仪器开发平台, 基于Modbus总线通信协议, 实现了工业过程各参数的实时采集与控制。串口通信系统已在多种测试系统中得到应用, 但是针对负荷车测试系统中串口通信应用研究较少。笔者主要是以VS2005为开发工具, 在VB.NET编程环境下利用Serial Port控件对负荷车测试系统监视器串口通信软件进行设计和开发。该研究为负荷车通信系统的设计与开发提供了参考。
1、负荷车通信系统组成及功能
负荷车通信系统组成如图1所示, 主要包含主机、被试车监视器、负荷车监视器、加载器监视器及YL-500IW无线数传模块。监视器是基于Window CE操作系统的工业触摸屏电脑, 型号分别为WLT_T4827_043 (2个) 、WLT_T8048_070B_A8, 集成有以太网控制器、串口、SD卡控制器、USB Host控制器及四线电阻触摸屏驱动。被试车监视器、负荷车监视器分别安装于被试车和负荷车驾驶室内, 加载器监视器安装于负荷车工作仓内。YL-500IW无线数传模块是一款高稳定性、低功耗、高性价比的采用GF-SK调制方式的无线数据收发模块, 不改变用户的任何数据及协议, 完成无线传输数据功能。
图1 负荷车通信系统组成
负荷车通信系统主要功能是实时将试验过程中所测得试验数据、当前主机状态、被试车状态、负荷车状态及加载器运行状态等信息呈现给试验操作人员, 有利于试验人员实时掌握试验进程, 确保试验过程稳定, 测试数据准确, 并判断下一步操作。
主机负责将试验系统中的全部数据进行汇总, 同主机工作状态一并发送至各个监视器。被试车监视器功能:接收主机发送的数据, 显示主机试验状态、试验挡位、当前车速、发动机转速及行驶距离, 并将被试车试验状态回发至主机。负荷车监视器功能:接收主机发送试验数据, 显示主机试验状态、试验挡位、当前车速、行驶距离、目标牵引力、当前牵引力、负荷车发电机电流及加载器电流, 并将负荷车试验状态回发至主机。加载器监视器功能:接收主机发送试验数据, 显示主机试验状态、试验挡位、当前车速、行驶距离、发动机转速、目标牵引力、当前牵引力, 接收负荷车数据采集器采集的发电机电流及加载器电流并显示, 并将发电机电流、加载器电流及加载器状态回发至主机。无线数传模块功能:实现笔记本电脑与监视器及被试车数据采集器的无线通信。
2、系统通信协议
Modbus网络是一个工业通信系统, 应用于各种数据采集和过程控制, 其只有一个主机, 可包含多个从机。负荷车测试系统中的主机为笔记本电脑, 从机为被试车监视器、负荷车监视器及加载器监视器, 采用RS232接口, 主机广播模式, 半双工通信方式, 数据传输采用RTU模式。YL-500IW无线数传模块参数设置信道为16, 串口传输速率为57 600 bps, 空中传输速率为57 600 bps。通信协议中的数据包格式如图2所示。
图2 通信协议中的数据包格式
主机写入数据包括单个字节代表的目标地址、试验状态、试验挡位和备妥指示, 以及4个字节代表的单精度浮点型数据目标牵引力、当前牵引力、当前车速、行驶距离、发动机转速、发电机电流及加载器电流, 协议中主机发送字节的规定如表1~表4所示。
表1 协议中目标地址字节规定
表2 协议中试验状态字节规定
表3 协议中试验挡位字节规定
表4 协议中备妥指示字节规定
被试车监视器回应数据包括单字节的被试车监视器地址、备妥指示;负荷车监视器回应数据包括单个字节的负荷车监视器地址、备妥指示;加载器监视器的回应数据包括单个字节的加载器监视器地址、备妥指示、加载器状态4个字节表示的单精度浮点型数据发电机电流和加载器电流。协议中加载器运行状态字节规定如表5所示。
表5 协议中加载器运行状态字节规定
3、基于Windows CE操作平台的监视器开发
Windows CE是微软公司嵌入式、移动计算平台的基础, 它是一个开放的、可升级的32位嵌入式操作系统。基于Windows CE操作平台的监视器开发主要包含两个方面:显示界面开发及串口通信软件开发[11-16]。笔者的开发工具为VS2005, 同步软件为Windows mobile设备中心, 使用VB.NET编程语言。软件功能:实现对主机数据的接收显示, 同时做出应答。监视器开发过程中所用的控件主要包括Label、Text Box、Button、Combo Box、串口控件Serial Port及时钟Timer。负荷车测试系统中监视器界面如图3所示。
图3 监视器界面
串口通信软件开发中惯用MSComm控件以及API函数实现串口程序编写, 在VS2005中推出的Serial Port控件可以方便地实现所需要串口通信的多种功能。串口通信软件工作流程如图4所示。
1) 串口初始化
串口初始化时对通信端口号及通信格式 (波特率、数据位、停止位和校验位) 进行设置, 其程序如下所示:
图4 监视器串口通信软件工作流程图
2) 数据接收处理
Serial Port控件的DataReceived事件用于表示处理Serial Port对象的数据接收事件的方法。数据接收的设计方法较为重要, 笔者采用DataReceived事件触发的方法, 因为接收的数据长度为38个字节, 将Received Bytes Threshold值设置为38, 即当接收缓冲区数据达到38个字节时触发一次事件。在DataReceived事件中定义字节数组buffer存放接收数据, 利用Read从接收缓冲区读取数据并存放入buffer字节数组中, 其语句为Serial Port1.Read (buffer, 0, 38) ;并对接收到数据进行CRC校验, 其校验程序为:
当校验值与接收到的主机发送的校验码相同时, 对数据进行解析, 分别解析出主机发送的目标地址、试验状态、试验挡位、备妥指示、目标牵引力、当前牵引力、当前车速、行驶距离、发动机转速、发动机电流及加载器电流, 并对数据类型进行转换。
数据更新显示时, 利用Timer控件实现对数据的实时更新, 将Enabled属性设置为Ture, Interval属性设置为100, 表示每隔100 ms更新一次界面数据。
3) 监视器应答
监视器根据接收到的目标地址对其是否响应做出判断, 当接收到的目标地址为该监视器地址时, 该监视器做出响应, 回发数据给主机。回发数据的处理方法:将全部数据存入定义的sendbuffer字节数组中, 对所有回发字节进行CRC校验, 并且将CRC校验结果拆分为CRC校验低及CRC校验高分别存放两个字节中, 将所有回发数据字节 (包含校验字节) 通过Serial Port1.Write (sendbuffer, 0, n) 写入到发送缓冲区完成发送 (n表示发送数据的总字节数) 。
4) 关闭串口
4、通信系统试验验证
搭建试验平台如图5所示, 分别将被试车数据采集器、数据采集器无线数传模块、主机、主机无线数传模块 (2个) 、监视器 (包括被试车监视器、负荷车监视器、加载器监视器) 及监视器无线数传模块进行连接, 并针对无线数传模块特性和通信系统实时性和可靠性进行试验研究。
试验结果:YL-500IW无线数传模块传输速率为57 600 bps时两模块间的传输延迟为10 ms, 误码率为0.05%;整个通信系统工作稳定可靠, 所要求显示的数据每隔100 ms更新一次, 实时性好, 通过对通信数据的校验保证了数据的准确度, 满足了负荷车试验系统的要求。
图5 负荷车通信系统调试
5、结论
1) 依据Modbus通信协议制定了试验系统串口通信协议, 协议对目标地址、主机试验状态、试验挡位、备妥指示及加载器运行状态的代码进行了定义, 并确定了通信方式及数据传输模式, 该协议满足负荷车测试系统的通信要求。
2) 基于VS2005开发工具, 在VB.NET编程环境中实现了监视器界面及串口通信软件的开发。所设计的通信系统, 已经顺利通过了试验调试。调试过程中, 主机与各个监视器之间通信实时性及可靠性均满足要求, 实现了试验操作人员对试验进程的实时监视和控制。该系统已应用于负荷车测试系统中, 系统实时性、可靠性已经得到验证, 提高了负荷车测试系统的自动化程度。
参考文献
[1]张新良, 杜韶.基于Win CC和串口通信的炉温监控系统设计[J].仪表技术与传感器, 2013 (12) :58-60, 63.
[2]姜川, 卢建宁, 孟祥宇, 等.西门子S7-200串口通信研究与应用实例[J].制造业自动化, 2016 (4) :154-156.
[3]LEON W.II Counch.Digital&analog communication systems (7thEd.) [M].New York:Macmillan, 2007:327-333.
[4]马敏, 杨胜伟.基于Lab VIEW的气体监测系统串口通信设计[J].自动化与仪表, 2016 (11) :43-46.
[5]李健华, 王建平, 李彩琴.基于RS 485总线自动清洗控制器串口通信系统的设计[J].现代电子技术, 2005 (12) :41-44.
[6]孙伟, 贾丹平, 伞宏力.基于VC++6.0视图文档模式下的串口通信系统的研究[J].现代电子技术, 2006 (22) :88-95.
[7]王富东, 邵光庆.单片机多串口通信技术及其应用[J].仪器仪表学报, 2002 (S1) :262-264.
[8]康萍, 宋小杉, 王洛欣, 等.智能家居网络的串口通信实现方案[J].西北大学学报:自然科学版, 2005 (4) :388-391.
[9]马兴, 童卓, 周丽娟.基于VB的PC机与单片机间串口通信及程序设计[J].兵工自动化, 2010 (10) :94-96.
[10]陈斌, 袁雪, 管国强, 等.基于Lab VIEW的生物发酵过程远程在线监控系统设计[J].农业工程学报, 2008 (8) :174-177.
[11]魏学哲, 戴海峰, 孙泽昌.汽车嵌入式系统开发方法、体系架构和流程[J].同济大学学报:自然科学版, 2012 (7) :1064-1070.
[12]Niolas Navet, Francoise Simonot-Lion.Automotive embedded systems handbook[M].Boca Raton:CRC Press, 2009.
[13]张鹏, 刘伯坤, 隋进民, 等.基于Win CE系统平台的自动校直机产品串口通信的设计[J].工程与试验, 2011 (3) :68-71.
[14]杨志兴.基于ARM与Win CE的微波变频器嵌入式系统设计[J].南京:仪器仪表学报, 2015 (36) :194-197.
[15]张瑛雷.基于Win CE的车载多功能系统平台的研制[D].南京:南京理工大学, 2010.
[16]黄福睿.基于ARM和Windows Embedded CE 6.0的嵌入式车载系统的设计及研究[D].沈阳:沈阳理工大学, 2011.