周明刚,余艳艳,陈 源,周敬东
(湖北工业大学机械工程学院,湖北 武汉 430068)
舰艇用的软管由于在使用中有反复高压充水、放水的过程,对其疲劳强度有严格的要求.为测试各个批次的软管是否满足疲劳强度要求,软管的疲劳强度试验测试系统采用对管道内注入一定压力的水并在管道内保持一段时间,然后排出,反复循环充放,直到管道发生漏水或者满足用户预设次数的方法,测试软管是否满足疲劳强度要求.
本系统由上位机和下位机两部分组成.上位机由台式PC机构成,运行用VC++开发的应用程序.下位机以PLC为核心控制块,对传感器进行数据采集分析,同时通过对电动球阀的开合控制液体的注入和排出.上位机与下位机之间通过485接口与台式PC机连接进行通讯,实现较远距离的智能化监控管理.系统的工作原理如图1所示.
图1 系统工作原理图
其工作过程为:
1)系统开启后,电磁球阀1开启,电动球阀2关闭,水泵工作,软管进水,压力传感器开始工作,管内压力开始上升.
2)当压力传感器测得管内压强达到指定的保压值时,系统将关闭电动球阀1与水泵.保压指定的时间后电动球阀2打开,水排出,管内压力下降.
3)当压力传感器测出压力小于指定的值时,电动阀2关闭,电动阀1打开,水泵工作,重新注水.
4)每注水一次“实验次数值”自动减1,直到实验次数值归零,实验结束,将实验数据存入数据库.
下位机中的PLC选用的是SIMENS公司的S7-200系列产品,它支持多种通信协议.系统设计过程中选用用户自定义协议(自由口协议),用户可以通过编程控制PLC通信口的操作模式,并与任何设备灵活地进行通信.下位机通过PPI电缆和485无源转换器与上位机的串口相连.
通讯方式采用半双工主从式,上位机为主机,下位机只有在收到上位机的信息后才根据当前的状态向上位机发送信息.如果下位机收到的信息不正确则不向上位机发送任何信息.上位机如果发送信息后收不到下位机的确认信息,则每0.5 s向下位机发送重复一次.待实验开始后,上位机每隔0.5 s向下位机发送讯问信息一帧数据,如果下位机收到的信息是正确的,下位机则将实时测的的压力值、当前实验次数、当前状态的信息等发送回主机.这样,上位机就可以得到实时的数据,显示在人机界面中并保存到数据库.
上位机运用VC++进行开发,通过串口与下位机进行通讯.在VC++中开发串口通信应用程序,通常有两种方法:使用串口通信控件和利用API函数[1].其中通信控件的工作原理类似于中断方式,当有通信事件(如发送或接受数据等)时就会触发OnComm事件,从而触发该事件的处理函数.应用这种方法实现串口通讯简单方便,不用了解复杂的API函数,因此选用控件的方法开发上位机通讯功能.
在作为上位机的PC机中运行的软件用VC++6进行开发,后台数据库使用ACCESS数据库管理软件.主要功能包括建立和管理试验项目、查询历史测试结果数据、自定义试验参数、试验过程实时监测、故障自诊断、试验启动与停止等.软件主界面如图2所示.
图2 上位机软件主界面
在上位机软件的设计过程中,首先需要在CFormView基类派生的对话框类中添加MSComm控件,并为该控件添加处理OnComm事件的消息处理函数OnComm().在CFormView基类派生的对话框类中还加入了一个定时器处理函数OnTimer(),定时器函数每500ms执行一次.定时器函数定时根据用户界面的交互结果向下位机发送命令,分析消息处理函数OnComm()接收的数据并修改用户界面,将下位机的返回值实时显示在用户界面上[2].其中部分处理函数的代码如下:
通信模块采用自由口通信模式.在通信之前通过设定SMB30来选择通讯模式,设定波特率以及数据长度和校验位.系统采取的通讯格式为无奇偶校验,波特率9600,8位字符[3].初始化部分需要进行相应的设置工作,其中的部分程序段如下:
数据发送和接收均采用专用指令实现,数据通讯过程用中断实现.初始化完成后,每收到一个正确的数据包都对该数据包进行回应,发送回一个对应的数据包.数据包的格式及各个字节的功能如表1所示.每个数据包由11个字节组成,其作用分别为起始位、本机地址、目的地址、功能号、数据、状态、校验字节、结束位.其中功能号0至6的含义分别见表2.地址字节中用00代表上位机,01代表下位机.CRC校验字节为起始位后所有的数之和取低位字节.状态为中是当前软管的试验状态,00为调压状态(升压状态),01为保压状态,02为放水状态.
表1 数据包格式表
表2 各个功能号的含义
本文运用VC++和MSComm控件实现上位机的应用软件,并用串口与下位机PLC进行通讯,通过PC机与PLC的通讯实现了一个可以远程监控的软管疲劳试验控制系统.本文介绍的控制系统构建简练,运行稳定,在实践中取得了良好的效果.
[1]朱正礼.基于VC++的PLC与上位机的通讯[J].电气传动,2002(2):25-27.
[2]李子彬.基于VC++6.0的PC机与PLC串口通信的实现及其应用[J].太原科技大学学报,2008,29:3-5.
[3]西门子有限公司.西门子S7-200可编程控制器系统手册[M].德国:西门子有限公司,1999.