打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
像风一样自由———MCGS自由口通讯(通讯驱动文件下载)

JZGKCHINA

尊重原创 勿抄袭

应用背景

自动化工程师在设备开发中,可能会碰到一些行业专用仪器仪表,并不支持常用规范接口,没有现成的通讯驱动,这时就需要使用PLC或者其他网关的自由口通讯功能,今天也给大家介绍下McgsPro软件下,自由口通讯如何快捷地实现,上次因为大概讲过使用本人自制驱动实现ascii字符串通讯,所以这次主要讲一下hex数据类型的通讯。

软件介绍

McgsPro为昆仑通态MCGS最新E/K/G系列HMI所使用的组态开发软件,在自由口通讯这部分功能上,与原先的Mcgs嵌入版存在差异,增加了部分数据解析函数,提升了数据解析便利性与功能性,如果您还在使用Mcgs嵌入版及其对应HMI,建议尽快升级到新系列产品。

操作步骤

1. 添加驱动:将串口收发数据驱动,放置到以下路径后,即可在设备窗口添加调用

D:McgsProProgramDrivers用户定制设备串口数据收发

2. 关联变量:设备窗口添加设备,按照所使用的的串口以及下位机串口参数,设置串口父设备参数,然后对应在串口收发数据设备内,添加一个我们后面要用到的字符型变量(可自由命名,本次设置为STRDATA)

串口收发数据设备的设备编辑窗口内,还有一些参数设置,仅应用于数据帧接收,如HMI只需发送指令,则无需设置;这里可以自由选择接收数据帧的格式、起始字符、结束字符等,这些项需要按照具体通讯协议情况,对应设置。例如我本次连接的设备数据帧结尾固定为0x7D,即10进制的125,具体说明如下:

  • 协议类型: 指定收发帧的格式是16进制还是ASCII码形式。

  • 读串口的结束方式: 设置读取数据时的结束方式,配合下面4个参数共同使用.详细看一下备注

  • 通讯等待时间: 采集是收帧时的等待时间,超过等待时间后就返回。

  • 读串口停止字符 :设置收帧时串口的停止字符,以ASCII编码给出

  • 读串口停止长度: 设置收帧时的停止长度,当收到设置的长度时就返回

  • 读串口起始字符 :设置串口收帧时的起始字符

备注:0.给定结束字符:在指定的通讯等待时间内收到结束字符则返回结束字符以前(包含结束字符)的字符串,否则全部返回

  1. 给定长度: 在指定的通讯等待时间内收到指定的长度后立即返回,否则全部返回(注:如果没发帧,下次采集时会读到当前帧的后半部字符串)

  2. 给定时间: 读取在整个通信等待时间内收到的字符串

  3. 给定结束字符或给定长度: 综合0,1两个条件,谁先满足就执行谁

  4. 给定起始字符和结束字符: 在指定的通讯等待时间内,未收到起始字符则返回全部字符串,收到起始字符未收到结束字符,则返回起始字符以后(包含起始字符)的字符串,如果收到起始字符和结束字符,则返回起始字符和结束字符之间的字符串(包含起始字符和结束字符).

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

作者简介:

阮旭芬:广州番禺 昆仑通态 莞福大区客户经理

2.贝加莱直播课程:已更新16课

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
快捷实现MCGS人机界面的ASCII自由通讯
MCGS通讯状态
仪表通讯问题相关分析
一文搞懂:欧姆龙CP2E PLC通讯之Hostlink协议
昆仑通态MCGS触摸屏的100个经典问题及解决方案
案例丨MCGS与变频器、温度控制器进行通讯演示
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服