当前位置: 首页 > news >正文

【松下PLC.通信】——威卡力传感器如何和松下PLC进行Free协议的通讯

如果现在有这样一个需求,你接手了一个活,摆在你面前的是一个松下FP0H,还有一台威卡B6542传感器(只支持485或者232通讯),需求就是要你做一个称重仪器,你该怎么做。

图片

首先在成本考虑且没有要求传输速度等的情况下,应用的情况是单对单,那就选择232串口通讯。

具体的威卡传感器的232接线图和传感器和放大器的接线图可以参考官网,或者公众号发送B6542领取,这里不再赘述。

放大器的配置

这里截取一下威卡传感器的Free协议,使用这个协议的目的,就是想要做一个无协议通信,这样就不必关注Modbus或者其他协议对应的地址的内容了,只需要考虑报文发送过来的有效数值在数字哪一个位置即可。

图片

从上图可知厂家定义的协议内容,使用free协议可以直接在PLC中进行收发报文,对于初学者来说,不懂modbus的情况下,首选这种方式。可以在懂得了modbus协议内容的情况下,再去选择使用它。

那么如果要进行数值的读取,配好的报文就是

'FE 01 50  CF FC CC FF'

当然选择free协议的一个弊端就是,需要在使用此协议时,若发现通信内容不对或者通讯上了但就是收到的内容不对,这个时候就应该去考虑,是不是厂家把协议内容换掉了。

那我们默认选择了free协议,同时232通讯,这个时候就可以去参考说明书把放大器的选项配置一遍,这里截取部分为

图片

更详细的请看说明书。配置好它之后,我们就可以去松下Pro7中去配置FP0H的通信参数。

松下PLC的配置

通信配置:配置115200的目的是为了响应和传输尽可能及时。

这里再解释一下大小端,如果按照松下FP0HPLC来说,它的系统的网络字节序默认小端。也就是从左到右数,第一个字节是低8位,第二个字节是高8位,也就是如果是AB(我们这么读),那么把这个AB输入给PLC时,他先读到的是A低8位,然后再是B高8位,但PLC中展现的就是BA(PLC的意识中),发送时先发送A再发送B。大端的话,从左到右,第一个字节是高8位,第二个字节是低8位。也就是我们的意识是AB,plc的那边,也是AB。

又因为我们松下PLC是要发送给B6542的,他的脑子里,他只认识FE 01 ......这种顺序。

根据B6542的说明书给的内容进行报文配置,直接在程序中写出:

说明:底层通讯传输就是以字节数组进行传输的,这里以字为一个单位的话,就是有16位,即2个字节,松下plc中每个word存在高低字节转换,如果是以16进制存储的话,就可以存储下FE01。所以报文内容是反着,FE01反过来就是01FE。因为采用的是小端,存储时是01FE,发送出去的报文就是FE01,到传感器端就是先存储而传感器只认识FE01。

那么通信的代码就是:

这里代码说明:port表示的是我们的配置的端口,这里使用的是Com0口。SendData,Start表示的是发送的首地址,numberOfBytes是发少个字节过去,我们这里可以知道,整个报文过去是7个字节。

图片

那么接收就是,配置的时候,我们选择一个地址去接收整个内容

图片

这里还是以word类型的数组去接收整个内容。

按照说明书的应答模式,我们知道接收到的报文大致内容为"00 06 FE 01 00 00 50 xx XX CF FC CC FF 00",这里接收的字符数组,会在开头表示数组长度。

那么接下来的难点,就是对整个报文进行解析,我们可以知道,到时候回传回来的内容,16#01FE 16#xx50 16#CFXX等,是4个为一组在一个word里面,我们是以word数组去接收的,那么解析的时候,要取到整个值,xxXX(这个是传感器那边的报文值),但是现在有个问题,他们在数组不同的位置,一个在3一个在4,如果要拼接这两个,就需要使用到字符串,所以我想的方法是先把word转换为字符串,再用字符串进行拼接,最后再转成word。那么此时我们转完字符串之后,我们会发现,前面多了16#,这个时候就可以使用字符串移位去找到所需要的内容xx50和CFXX,之后得到xx50和CFXX之后,我们再继续使用Right移位(CFXX)和Left移位(xx50),得到xx和XX,这个时候再去拼接成xxXX。这里的这个xxXX就是我们正常的数据的形式,字符串就是是什么顺序就是什么样的顺序。

拼接后得到xxXX,然后再使用string_To_Word去获得整个字,再通过这个字去转Real类型就可以得到我们想要的值了。

部分代码如下:

图片

图片

图片

图片

这里的高位和低位,我们又是从大端角度来考虑的(人怎么读,左高右低),得到的这个实时数据1,可以根据需要去进行word转其他类型。

欢迎关注gzh,一起研究学习,不足之处请指正。


http://www.mrgr.cn/news/64046.html

相关文章:

  • java 第19天 Lambda、jdk8.0新方法、Optional
  • 机器人大模型GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
  • ssm毕业设计选题系统+jsp
  • 中仕公考:上海市25年公务员考试今日报名
  • Linux之实战命令64:bridge应用实例(九十八)
  • pdfkit | 利用python实现html文件转pdf
  • 域名购买需要多少钱
  • Spring Boot框架在信息学科平台开发中的高级应用
  • 真题与解析 202206三级 青少年软件编程(Python)考级
  • Nat Med病理AI系列|哈佛大学团队发表研究,探讨深度学习在病理诊断中的公平性问题及解决方案|顶刊精析·24-11-02
  • 从零开始学AIStarter:创作者模式全攻略【AI工作流、数字人、大模型、对话、设计...】
  • 【生物学&水族馆】观赏淡水鱼检测系统源码&数据集全套:改进yolo11-dysample
  • 2024年华为OD机试真题-最小的调整次数-Python-OD统一考试(E卷)
  • 第三百零九节 Java JSON教程 - JSON语法
  • 平安养老险党委书记、董事长甘为民: “养老金融”大发展正当其时,空间广阔
  • Spring Boot详解:从入门到精通
  • 最全面的AI大模型面试题集合,存一下吧很难找全的!
  • [含文档+PPT+源码等]精品基于PHP实现的鲜花批发销售网站的设计与实现
  • 运维工程师运维管理文档,运维建设方案,运维整体配套资料(word原件整套)
  • 阿里国际2025届校园招聘 0826算法岗笔试
  • 将数学学生搞糊涂的糊涂话:面积(路程)是一种对应规则(关系)
  • 数据挖掘(五)
  • Python数据类型探索:深入理解frozenset及其线程安全与进程安全性
  • “炼心”和“练心”的区别是什么
  • Linux命令学习记录
  • 公有云开发基础教程