0
点赞
收藏
分享

微信扫一扫

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

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

JZGKCHINA

工控技术分享平台


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



一、 驱动样例说明

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

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


设备帮助:

驱动目录: D:\MCGSEPRO\Program\Drivers\用户定制设备\万能STR收发

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

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

类型:字符型

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


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

类型:字符型

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


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

类型:字符型

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


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

类型:字符型

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


通道1:自动命令采集

类型:开关型

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


通道2:自动采集

类型:开关型

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


通道3:结束符CR

类型:开关型

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


通道4:结束符LF

类型:开关型

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


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



二、 测试样例画面组态

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

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


随驱动文件还提供完整功能的测试样例,可以按照通讯协议往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:去皮


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

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


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

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


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

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


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

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


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

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


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



四、彩蛋

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

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


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

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

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

密码:44av5j

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

作者简介:

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


举报

相关推荐

人机界面实验报告二

0 条评论