JZGKCHINA
工控技术分享平台
尊重原创 勿抄袭
勿私放其他平台
一
应用背景
自动化工程师在设备开发中,可能会碰到一些行业专用仪器仪表,并不支持常用规范接口,没有现成的通讯驱动,这时就需要使用PLC或者其他网关的自由口通讯功能,今天也给大家介绍下McgsPro软件下,自由口通讯如何快捷地实现,上次因为大概讲过使用本人自制驱动实现ascii字符串通讯,所以这次主要讲一下hex数据类型的通讯。
二
软件介绍
McgsPro为昆仑通态MCGS最新E/K/G系列HMI所使用的组态开发软件,在自由口通讯这部分功能上,与原先的Mcgs嵌入版存在差异,增加了部分数据解析函数,提升了数据解析便利性与功能性,如果您还在使用Mcgs嵌入版及其对应HMI,建议尽快升级到新系列产品。
三
操作步骤
1. 添加驱动:将串口收发数据驱动,放置到以下路径后,即可在设备窗口添加调用
D:\McgsPro\Program\Drivers\用户定制设备\串口数据收发
2. 关联变量:设备窗口添加设备,按照所使用的的串口以及下位机串口参数,设置串口父设备参数,然后对应在串口收发数据设备内,添加一个我们后面要用到的字符型变量(可自由命名,本次设置为STRDATA)
串口收发数据设备的设备编辑窗口内,还有一些参数设置,仅应用于数据帧接收,如HMI只需发送指令,则无需设置;这里可以自由选择接收数据帧的格式、起始字符、结束字符等,这些项需要按照具体通讯协议情况,对应设置。例如我本次连接的设备数据帧结尾固定为0x7D,即10进制的125,具体说明如下:
备注:0.给定结束字符:在指定的通讯等待时间内收到结束字符则返回结束字符以前(包含结束字符)的字符串,否则全部返回
3. 发送命令帧:熟悉MCGS软件的朋友应该都知道,软件内各种构件和策略可以自由编写命令脚本,实现灵活的执行效果,例如我们这次以最简单的方式:写在按钮脚本。当用户点击该按钮,就会执行按钮设置内的脚本,发送你所设置的命令帧。
当然,一些周期性采集用的命令帧,可以写在我们的后台策略或者循环策略,实现后台周期性采集读取数据的效果。
例如我们通过按钮发送该停止测试的命令:
对应设置按钮指令:
按钮内直接给我们前面关联的字符型变量STRDATA赋值需要发送的指令即可,当用户点击该按钮,McgsPro监控就会到该变量的值有改变,立刻自动将变量内的数据通过串口发出,监控串口就能看到串口发出的数据帧,无需做其他任何操作;有时候为了第二次操作时,仍然可以正常发送,发送完之后我们需要把STRDATA的值清空,清空STRDATA的操作按照实际情况设置,不需要可以不写。
4. 接收数据帧:简单的操作命令发送按照第3点设置即可,但是串口通信更常用的是应答式的通讯方式,即:上位机发送命令,下位机响应回复相关结果。为了区分发出和收到的数据,这时就要分开处理了,使用Write设备命令发送,然后接收数据帧。
串口数据收发设备工作原理是:执行Write命令时,发出对应的指令,串口接收到数据时,自动放置到关联变量STRDATA内。
这时候我们要做其实也是很简单的,分三步:
① 发送命令:使用设备命令,执行Write指令发送需要的数据。
② 通讯等待:等待下位机回复数据,这时候可以参考前面提到的设备编辑窗口内,对应的参数设置,确保有足够的时间接收完所有的响应数据,这个时间主要跟下位机的响应速度以及数据的长度有关。
③ 解析数据:等待足够时间后,接收到的数据帧就会完整更新在变量STRDATA内,然后我们按照通讯协议,从接收到的数据帧内,对应分析提取数据即可。
上图就是一个简单的命令收发,然后我们按照前面提到的步骤,编写指令:
如上图所示,遵循应答式通讯的发送→等待→解析流程,对应编写脚本即可;新建一个字符型变量WriteData来放置需要发送的命令字段,然后执行Write指令发送,通讯等待过后,对应提取下位机回复数据的命令字,按照命令字所在的字符串位置及长度提取出来,转换成十进制的数值,就可以用来显示和判断当前的接地方式。如果有需要还可以提取对应的校验位,进行数据校验,保证数据准确性。
McgsPro内提供了大量字符串操作指令,可以灵活地实现各种进制数以及字符串的转换、比较、提取等操作;并且加入了单精度浮点数解析函数,直接调用即可,无需进行繁琐运算,方便了用户快速解析各种类型的数据。上图用到的两个字符串操作函数!!Hex2I()和!Mid()大家也可以到帮助里面查看具体用法,帮助位置如下图所示:
使用McgsPro的过程中,也建议大家有空多打开帮助内的脚本函数查看,相信能让您发现很多意想不到的小功能!
四
功能总结
MCGS软件内置了丰富的脚本函数和灵活的脚本系统,使用熟悉之后,可以很快捷的某些相对”复杂”的功能,但这也为软件入门带来了一些门槛,导致部分原先使用其他品牌人机界面的用户,使用初期会有点摸不着头脑,甚至觉得繁琐,希望能引导大家认识McgsPro在这方面的优势,更好地发挥出MCGS产品的价值。
通讯驱动文件(点击阅读原文,输入密码)
链接:https://share.weiyun.com/CXsvZ32k
密码:9za528
作者简介:
阮旭芬:广州番禺 昆仑通态 莞福大区客户经理