Labview与汇川PLC通讯:官方协议下的报文读取与配置辅助,安全稳定的命令帧读写程序源码
Labview 与汇川AM400 AM600 AM800 AC800 PLC 通讯 官方协议报文读取安全稳定。 通讯配置辅助测试。 无程序网络通讯实现。 常用功能一网打尽。 1.命令帧读写。 2.支持 I16 I32 Float 批量读写。 3.支持字符串读写。 4.支持Bool批量读写。 5.支持Q单点读写。 程序源码命令帧文本编写不调用dll不安装插件完胜OPC 等。最近在工业自动化项目里倒腾LabVIEW和汇川AM系列PLC通讯发现市面上的方案不是要装插件就是要买授权库实在忍不了这种绑架式开发。咱们直接掏出TCP/IP协议搞报文交互实测AM400到AM800全系通用这才是工程师该有的姿势。先甩个通讯配置的硬核操作TCP创建侦听器 - 设置超时(2000ms) - TCP打开连接 - 写入握手报文重点在握手报文得按汇川的规矩来十六进制格式的魔数头不能错0x4C4D5F5FASCII码是LM后面跟着两字节的协议版本号AM800用0x0103版本。记得用强制类型转换处理字节序别被大小端坑了。读32位浮点数的命令帧长这样LM__0103RDDM4.100.10拆解这个字符串R表示读取D表示双字DM4是数据区地址100是起始地址10是读取个数。LabVIEW里用字符串拼接生成命令帧时记得地址要转成PLC认的格式比如DM1000要写成DM4.1000前边4代表双字区域处理返回数据的时候得注意报文结构TCP读取 - 取第7字节开始的有效数据 - 按I32数组转换这里有个坑点返回的每个数据项占4字节前两字节是序号后两才是实际数值。用分割数组类型强转才能准确解析别直接用字符串转数值Labview 与汇川AM400 AM600 AM800 AC800 PLC 通讯 官方协议报文读取安全稳定。 通讯配置辅助测试。 无程序网络通讯实现。 常用功能一网打尽。 1.命令帧读写。 2.支持 I16 I32 Float 批量读写。 3.支持字符串读写。 4.支持Bool批量读写。 5.支持Q单点读写。 程序源码命令帧文本编写不调用dll不安装插件完胜OPC 等。写布尔量批量操作更刺激命令帧里每个bit对应一个点位LM__0103WX0.10.2 //写X0开始的2个布尔量 数据部分转成字节0x03二进制00000011这表示X0ONX1ON其他位保持原状。LabVIEW处理时要玩位运算把布尔数组压成字节流实测过同时写256个点只需31毫秒。字符串读写需要处理变长问题命令帧里带长度标识LM__0103RDS4.100.20 //读20个字符 返回数据前两字节是实际长度后面跟着UTF8编码的内容建议用平铺字符串处理避免编码转换时的乱码问题。注意汇川的字符串存储是预分配空间的超过定义长度会截断。最骚的操作是直接读写Q点不用经过中间寄存器LM__0103WQ0.5.1 //写Q0.5单点 数据部分直接给0x01或0x00配合LabVIEW的事件结构做HMI画面简直不要太爽。实测这种直连方式比OPC快3倍以上特别是多标签同步刷新时优势明显。源码里最关键的是报文校验算法别用常见的CRC16汇川用的是累加和校验字节数组逐字节相加 - 取低16位 - 转十六进制字符串补零这步要是错了PLC直接不搭理你。建议封装成子VI反复验证曾经因为校验位少个零折腾了一下午...项目实测这套方案连续运行72小时无丢包关键是在VI里加了心跳检测机制。每5秒发个空包探测连接配合错误队列处理重连比那些靠GUI设置重试次数的方案靠谱多了。代码仓库里已经扔了封装好的AM系列驱动VI拿走不谢。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2500643.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!