VM算法平台-PLCS7通讯-二维码字符串接收及发送至S7的string类型相关问题-二维码命名存图
目前VM所遇到的和西门子S7进行通讯,将二维码字符发送或接收PLC发送过来的字符串的问题,以及相关问题的延伸,如有其他一些更方便实用的小技巧可留言补充,互相学习

这篇主要是关于S7接收或者发送二维码的字符串或者其他类型的字符串;内容中的上升沿触发(接收事件)和心跳(心跳管理)可忽略,权当拓展

先将简易的环境搭建好

I. 搭建西门子PLC 的环境 (如果没有直接跳过,既然会看到这篇文章,那这个S7的环境应该是存在的,或者直接问电气工程师,简单给你搭一个string类型的变量的DB块地址)


II. VM连接上西门子PLC

设置好“接收事件”,为了接收到上升沿信号(寄存器地址Start必须开启轮询读取才可正常进行上升沿的触发)

设置好“心跳管理”,为了发送心跳信号给PLC

设置好“全局触发”,为了上升沿信号能进行触发流程

“设备管理”中将需要读取或写入的寄存器地址设置好(Heart字节长度为1因为是bool类型;Start不能设置为bool类型,因为目前VM好像不支持,只能设置为int类型进行上升沿触发,并且需要开启轮询读取,上述也说到了;QR Code 字节长度设置为33,因为我后续加载的图片,识别到的字符信息为31位的:E3001629ACV37377002001GY2600035,为什么要设置为33位,往后看就明白了)

并新建好“S7”的VM流程(此处简易搭了一下)

至此,简易的环境已搭好,VM可正常连接PLC,并可以读取或写入变量至PLC的DB块的地址中

III. 进入主题,该对二维码的字符串进行操作了

1. 先尝试直接运行流程,“接收QR”模块中的模块结果:QR Code目前也是空的 (这不是废话!!!并不完全是空的,而是看不到,显示不出来)


2. 我们手动在PLC的偏移量4.0中,将值修改一下,修改成A1B2C3(随便什么字符都行),再运行读取,此时将原图命名直接绑定为接收到的字符信息“接收QR”,那输出图像模块会抛出异常,显示保存文件数据失败


此处是因为,接收到的字符,并不只有A1B2C3,如下:


在A1B2C3之前,会存在两个特殊字符([1F][06],或者其他的字符,在VM的模块中接收时并不会显示出来)占用导致无法直接使用接收到的字符进行命名并存图,当使用脚本模块“去除特殊字符”时,使用正则表达式进行筛选,并输出不带特殊字符的字符串“QROutput”,再使用输出图像模块的原图命名绑定脚本的“QROutput”,这样就可以将处理过后的无特殊字符的二维码信息进行图片命名
!!!这也就是之前字节长度需要多设置两位的原因,因为不多设置两位为33,正常31位的二维码信息,由于前面两个特殊字符的原因,最后两位在VM中就读取不到了


IV. 拓展一下发现的其他问题

前面的是接收PLC发送过来的字符,现在需要将识别的字符发送给PLC

1. 当图像中本来就有二维码的信息,通过“二维码识别”出来的字符,直接绑定到“输出图像”当然也可以直接保存图片


2. 现在尝试将识别到的字符发送给PLC

字符串可以直接发送给PLC,但是在PLC的DB块中显示会不显示前两位的字符信息

但是我们重新读取PLC此DB块中的内容,就没有特殊字符在前面了,但是最后会多出两个字节

(这就是前面为什么将字节长度设置为33的原因,因为要测试发送二维码信息给PLC,此处的二维码信息为31位)

再来看一个问题:我们将发送给PLC的地址,手动再修改为短一点的字符,修改为A1B2C3,然后使用VM的“接收QR”再进行读取DB块的字符信息,会发现此时明明DB块内只有A1B2C3,但是接收到的确是修改后的字符加上之前的一堆的二维码的字符,之前的字符并没有被清空,所以在正常情况下,如果我们发送过二维码的信息,然后PLC又重新发送给我们新的字符信息,需要PLC在他们那边进行完全清空或其他处理,视觉方面才能再次读取,否则会出现其他之前未被清除的字符

总结:① Plc给我们发送字符,如果PLC不经过处理,VM接收到的是存在特殊字符的,需要多增加两个字节长度,并通过脚本进行处理特殊字符;

② 我们给PLC发送字符,是不存在特殊字符的,但是在PLC的DB块显示方面会有点异常,但是我们重新接收,也是不存在特殊字符的
③ 当视觉方面给plc发送过字符,PLC再重新给我们发送字符,PLC需要将原来的数据完全清空(或者发送同样长度的字节信息进行覆盖原字符信息),我们才能再此接收(当然目前只是举例,得看实际应用场景)

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

VM算法平台-齿轮测量方案(Group+脚本输出+TCP通讯+圆拟合)

下一篇

【智能相机】SC6500-AI-WID二次开发

评论请先登录 登录
全部评论 1

第一个字节代表发送的数据长度

2024-10-09 09:05:47 湖北省
回复
  • 1
Lv.0
2
关注
16
粉丝
2
创作
35
获赞
相关阅读
  • usb共享网络更改路由
    2024-09-24 浏览 0
  • usb共享网络更改路由
    2024-09-24 浏览 0
  • 第三届“悉灵杯”基于MV-DT01SDU相机识别果蔬等数据集
    2024-10-14 浏览 0
  • 第三届“悉灵杯”基于MV-DT01SDU相机识别果蔬等数据集
    2024-10-14 浏览 0
  • 【保姆级教程】算法模块封装详解
    2024-10-17 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器