基于VB6.0的工控机与空气检漏仪的串行通信

2018-02-26 07:34梁增提赵佳萌王莉莉覃京翎曾庆文林峻锋
装备制造技术 2018年12期
关键词:工控机控件上位

梁增提,赵佳萌,王莉莉,覃京翎,曾庆文,林峻锋

(1.柳州城市职业学院,广西 柳州 545036;2.广西汽车集团有限公司,广西 柳州545007)

0 引言

在汽车零部件的生产线上,后桥油管气密性检测站使用COSMO空气检漏仪检测产品的气密性[1],并通过PLC的I/O接口监控空气检漏仪,再辅以按钮、警示灯等电器实现检测工位的自动化。但这种方式只能进行产品合格与否判断、起动/停止检测或故障报警等简单的监控,无法实现数据的动态显示和记录以及更复杂的信息处理。

为了读写空气检漏仪内部的数字信息,以便对其进行数字控制和检测数据采集、显示、运算、存储、追溯及上传等信息化的处理,必须通过其自带的串行接口进行数据通信。而在工业控制领域中,通常使用专业的工业控制计算机(简称工控机)来应对现场的电磁干扰、震动、粉尘、潮湿、腐蚀、高/低温等对稳定性和可靠性要求较高的监控及信息处理需求。工控机通常支持串行接口、USB接口和以太网等多种通信方式以满足各种工业应用。本文就使用PPC-3120S型工控机连接LS-1863X型COSMO空气检漏仪,并用VB6.0软件编写上位机监控程序,实现两者之间的串行接口数据通信进行阐述研究。

1 总体方案

使用DB9串口线连接PPC-3120S型工控机和LS-1863X型COSMO空气检漏仪的RS232串行接口(简称串口),并于工控机中运行VB6.0软件编写的上位机程序(如图1所示)。由上位机向检漏仪发出起动测试命令,然后读取检漏仪测试结束后自动返回的检测结果,最后解析检测结果得到产品合格与否及泄漏量、高低限、测试压力等数据以进行显示和存储。

图1 串行通信结构示意图

2 串口连接和通信原理

2.1 串行通信接口连接

PPC-3120S型工控机和LS-1863X型空气检漏仪均自带两个串口(COM1和COM2),可通过专用的DB9串口连接线,采用NULL MODEM形式直接连接(如图2所示)。即把检漏仪COM1口的数据接收端RXD(#2)连接到工控机的COM1口数据发送端TXD(#3),把工控机的COM1口数据接收端RXD(#2)连接到检漏仪的COM1口数据发送端TXD(#3),并连接双方的信号地SG(#5)和屏蔽层FG.

检漏仪的COM2为厂家维修接口,用户不能用来做通信接口;工控机的COM2口可以进行RS-232/422/485三种方式的通信,可通过BIOS进行调整。另外,检漏仪还可以通过USB转串口线连接到工控机的USB口进行通信。USB转串口的数据线会在工控机中模拟出一个串口,如COM3、COM4…等,具体是哪个串口编号,需在工控机操作系统的设备管理器中查看。

图2 串口接线原理图

2.2 检漏仪串口参数设定

要正确进行串行数据通信,必须规约通信双方的串口参数。检漏仪可根据内存开关#18的设定,改变通信波特率,本文设定为0,波特率为9 600 bps.

检漏仪的其他串口参数,默认是:起始位1位,数据位8位,无奇偶校验,分隔符<CR>。

2.3 检漏仪的数据输出格式

检漏仪的串行数据输出有三种格式,可以根据内存开关#19、#20的设定进行选择,各个格式的设定值如表1所示。

表1 串行数据的设定格式

其中:

T格式:以固定长输出,只输出泄漏数据,为出厂时的标准设定。

I格式:以固定长输出,除泄漏数据以外还输出极限值等其它数据。

P格式:用于串行打印机的输出,数据与标题一起输出。

在本案例中,检漏仪的数据输出格式设定为I格式,即内存开关#19、#20分别设定为0和1.检漏仪输出的数据用ASCII码表示,数据的形态以字符“#”(23H)开始,<CR>回车(ODH)结束,其间的各个部分由空格(20H)分隔。数据包含检漏仪编号S、测试品合格与否或错误判断J、泄漏量L、泄漏量高限W、泄漏量低限M、测试压力A、频道号码C和校验和G等。

检漏仪测试结果的详细数据格式如表2所示,该数据在每次测试结束后,于结束行程中自动从串口输出。

表2 检漏仪测试结果数据格式

从“#”开始至<CR>回车结束符,总字符长度固定为75个。泄漏量和测试压的有效位数是3位,有效位以外的数位填“0”。校验和用 16进制表示,各校验和之间用冒号“:”(3AH)分隔。当整数用3位表示时,省略小数点,在数字前面添加“00”。

3 上位机程序设计

3.1 总体设计

VB工程中,一般使用MSComm控件的Input与Output两个属性,对串行端口的数据进行接收和对命令进行发送[2]。检漏仪可接收的命令和响应的数据较多,本案例仅简单的设计一个能起动检漏仪的泄漏测试,而后接收其测试结果的数据反馈(I格式),并进行解析和显示的上位机程序。程序流程如图3所示。

图3 上位机程序流程图

3.2 窗体设计

上位机程序画面中只需添加一个MSComm控件;一个“开始测试”的命令按钮用于发送起动命令;6个TextBox文本框用于显示解析后的接收数据;一个定时器控件用于数据的定时刷新(默认开启定时器,定时时间 10 μs)。

3.3 串口初始化

程序画面打开时,调用串口初始化函数Comm_initial.设置 MSComm1控件的串口编号为 1(COM1),通信波特率为9 600 bps,无奇偶校验,数据位8位,停止位1位。此处设置的各参数必须和检漏仪中设置的串口参数一致,否则两者将无法正确通信。

串口初始化函数Comm_initial,主要用于设置MSComm1控件的串口通信参数;接收/发送缓冲区大小(1024字节);清空输入/输出缓冲区;数据通过Input属性取回的方式(以文本形式);产生OnComm接收事件的最少字符数(每1个字符);设置完成后打开串口。

3.4 起动泄漏测试

通过点击“开始测试”命令按钮,向MSComm1控件的Output属性写入简缩命令:STT<CR>,即可往串口输出缓冲区写数据流,起动检漏仪的泄漏测试行程。代码如下:

其他控制命令、读取数据命令、写入数据命令以及检漏仪的响应等请参考检漏仪的使用说明书。

3.5 接收串口数据

检漏仪于每次测试结束后,自动发出I格式的检测结果数据,而每当MSComm控件接收到1个字符时,就会产生一次OnComm事件,此时,MSComm控件的 CommEvent属性值为 2(即常数 comEvReceive),据此属性值来调用函数textReceive,对接收缓冲区中的数据进行接收处理。代码如下:

把接收到的字符数据转存到Text2里,并清除接收缓冲区缓存。代码如下:

3.6 数据解析和显示

定时器1每经过10 μs,自动执行Timer1_Timer函数。首先,计算并判断存于Text2中的字符数据长度,如果已达到检漏仪发出的数据长度(75个字符),则开始拆分各个检测数据。本案例只对5个数据进行解析:1)取第8个字符的产品合格与否代码,2为合格,其他为错误或不合格,于控件Text1(0)中显示该结果;2)取第10至17共8个字符的产品泄漏量数据,于控件Text1(1)中显示;3)取第19至26共8个字符的泄漏量高限,于控件Text1(2)中显示;4)取第28至35共8个字符的泄漏量低限,于控件Text1(3)中显示;5)取第37至42共6个字符的测试压力值,于控件Text1(4)中进行显示(详细的数据格式见1.5检漏仪的数据输出格式)。解析完成后清空Text2,以便重新接收数据。代码如下:

4 通信实验

完成上述的串口连接、通信参数设定和程序设计后,调节空气检漏仪上的调压阀使测试压力为40 kPa,使用检漏仪手动测试出一个泄漏量为5 Pa的合格产品。把检漏仪的泄漏量高限修改为+5 Pa(人为设置高泄漏报警),运行上位机程序并发出开始测试命令,检漏仪正确接受到了命令并起动测试。结束后,读取检漏仪的面板信息(如图4)可知:产品的泄漏量为5 Pa,低限为-15 Pa,高限为+5 Pa,产品高泄漏报警。对比上位机程序接收和解析后的信息(如图5)可知,工控机能够正确读取到检漏仪的各项测试数据,两者之间成功进行了串行数据通信。

图4 空气检漏仪的测试结果

图5 上位机接收并解析后的数据信息

5 结束语

通过本文的设计,建立了工控机和空气检漏仪之间的串行数据通信,实现了对空气检漏仪的数字控制和检测数据的实时监测、动态显示和记录,为后续的产品质量检验以及工艺优化提供了确切的数据支持,确保供应产品的质量。该系统已通过调试实验,并已在工程现场应用。将该系统稍做修改,即可应用于类似的其它场合中,具有一定的推广价值。

猜你喜欢
工控机控件上位
基于.net的用户定义验证控件的应用分析
定制工控机在老旧线路计算机联锁设备中的应用
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
广州地铁3号线CC工控机电源国产化改造
关于.net控件数组的探讨
特斯拉 风云之老阿姨上位
基于ZigBee和VC上位机的教室智能监测管理系统
中国工控机市场新Style
新汉 前插拔CoreTM-i系列无风扇工控机
基于嵌入式MINIGUI控件子类化技术的深入研究与应用