快捷实现MCGS人机界面的ASCII自由通讯(文末有彩蛋)

2021-11-09 10:44:26 浏览数 (1)

JZGKCHINA

工控技术分享平台

因为MCGS HMI完善的曲线功能、灵活海量的历史报表功能以及丰富的硬件及软件接口,目前在各类单机检测设备中应用广泛,但在这类设备中应用时,经常会需要接入各类测试仪表,并且这些专业仪表很大一部分不支持modbus/OPC等相对通用化通讯协议接口,仅支持SCPI或者ascii格式的非标准通讯协议。为了方便客户接入各种仪表,抽空做了个专门用于ascii格式通讯的设备驱动,通过剑指工控独家分享给大家,希望能对大家有帮助。

一、 驱动样例说明

设备帮助:

驱动目录: D:MCGSEPROProgramDrivers用户定制设备万能STR收发

由于建议驱动开发工具不支持字符型通道,所以需在“工程>实时数据库> ”对应手动添加同名变量,请注意变量名如果有误,则无法使用。

变量1:自动发送STR 设备地址值

类型:字符型

含义:周期性通过串口发送的字符串内容

变量2:自动接收STR 设备地址值

类型:字符型

含义:周期性通过串口返回的字符串内容

变量3:命令发送STR 设备地址值

类型:字符型

含义:需要通过串口设备命令发送的字符串,无论是带返回的命令还是无返回的命令,均使用改变量

变量4:命令接收STR 设备地址值

类型:字符型

含义:通过设备命令发送指令后,接收到的字符串,仅对返回的发送命令有效

通道1:自动命令采集

类型:开关型

含义:为1时打开自动采集功能,后台周期行发送字符串内容,并接收返回的字符串

通道2:自动采集

类型:开关型

含义:为1时打开自动采集功能,后台周期性接收返回的字符串

通道3:结束符CR

类型:开关型

含义:为1时打开,发送的字符串内容会自动加上回车符0x0D(请注意,最少要使用其中一个结束符,否则可能无法接收返回数据)

通道4:结束符LF

类型:开关型

含义:为1时打开,发送的字符串内容会自动加上换行符0x0A(请注意,最少要使用其中一个结束符,否则可能无法接收返回数据)

如上图所示所以,在通用串口父设备下添加万能STR收发设备,按照设备帮助说明连接设备通道变量,并且在实时数据库手动建立四个存放收发字符串的变量,对应在工程内调用即可。

二、 测试样例画面组态

随驱动文件还提供完整功能的测试样例,可以按照通讯协议往STR变量内赋值对应的指令字符串即可,目前驱动可以实现周期性地发送变量1:自动发送STR,对应等待一定周期,或者读到特定结束符后,将读回来的数据储存在变量2:自动接收STR中,实现周期性的应答通讯;当然,如果下位机为主动上传数据,打开通道2:自动采集,串口所读到的数据也会直接存在变量2:自动接收STR中,并且可以通过简单的开关按钮选择是否验证结束符;

另外驱动还支持触发式的命令语句,可按照上图步骤添加触发命令,在需要时收发特殊的字符串,配合脚本系统,实现灵活的收发命令操作。

三、 实例测试

某检测设备厂商工程师跟我联系,表示需要通过串口读取一个称重天平的数据,通讯说明如下:

1. 通讯协议:波特率9600;数据位:8位;停止位1位;无校验。

2. 输出数据:按一次打印键或串口接收到一次打印命令就输出一次数据,数据为14位ASCII码。

符号 数据 单位 回车 换行

1位 8位 3位 1位 1位

数据不为负时,第一位为空格,不显示的数据输出为空格。

例:显示为123.45g时,输出数据为□□□123.45□g□↓←

例:显示为-123.45g时,输出数据为-□□123.45□g□↓←

共14位数据。

3. 接收命令:需要先接收到对应的通讯号,再接收命令。当通讯号为27(出厂状态),即16进制的1B时,命令如下(数据为16进制);

1B70:打印

1B71:校准

1B72:计数

1B73:单位转换

1B74:去皮

由通讯协议说明可以了解到,想读取当前天平读数的话,需要先发送打印命令,才能对应接收到当前读数,那我们就可以按照通讯协议要求设置通讯参数与收发数据。

我们先用电脑串口连接天平通讯,使用串口调试工具测试一下,发现每次发送 1B70:打印 指令,并且按照要求加上回车和换行,我们都能收到天平返回的称重数据,格式也没有问题,然后我们使用MCGS HMI软件对应测试:

1. 使用自动周期发送命令功能,启动策略内设置后,每次开机对应给 变量1:自动发送STR赋值打印指令,这样HMI启动后,就会一直周期性发送打印指令给天平。

2. 使用后台策略或者循环策略,对应把周期性读回来的ascii字符串数据转换成浮点数,方便做运算或者写入PLC。

3. 运行MCGS HMI程序,对应分别打开自动命令采集功能、结束符回车、结束符换行,就可以看到 变量2:自动接收STR 接收到了天平发回的数据,并且也对应完整地转换成了浮点数据,简单的仪表通讯就完成了;当然也还可以使用设备命令功发送校准、去皮等指令,这里就不再赘述。

4. 因为ascii格式通讯读回来的数据都是字符串格式,大家可以按照上面路径到软件帮助查找可以用得上的字符串函数,可以实现很灵活的字符串拆分查找格式化等功能,方便解析通讯数据。

四、彩蛋

由于手上没有上面提到的称重天平实物,为了测试截图,只能手动利用万能STR收发功能,用MCGS HMI模拟该称重天平,截图内所有读取到的数据,均为一台MCGS HMI实时响应发送;步骤也非常简单,按照下图配置即可,希望大家可以灵活的把这个通讯驱动应用在各种ascii数据通讯场景上:

万能STR收发工具(点击阅读原文,输入密码)

链接:https://share.weiyun.com/5W3KoVD

密码:44av5j

作者简介:

阮旭芬:广州番禺 昆仑通态 技术服务 销售

0 人点赞