博客
关于我
汇川AM600 PLC及CODESYS数据采集的一点经验
阅读量:193 次
发布时间:2019-02-28

本文共 1019 字,大约阅读时间需要 3 分钟。

CODESYS 是一个广泛应用的PLC软件平台,许多PLC厂家选择它作为他们的开发平台。由于我之前较少接触相关产品,只有在研究数据采集软件时才开始深入了解它。

在初步研究中,我首先接触了倍福的数据采集功能。倍福提供了ADS通讯库,允许通过变量名进行高效数据采集,只需先确定变量的内部地址,便可批量采集。由于倍福基于CODESYS系统,这让我对其印象不错。

随后,我深入了解了汇川AM600PLC。它与CODESYS原始生态系统较为接近,编程软件与CODESYS开发系统高度相似。汇川PLC提供了丰富的变量类型,与高级语言相似,且不需要显式地址声明。PLC系统仍保留了硬件存储区域(如I、Q、M存储器),可灵活通过位、字节、字或双字进行寻址。

与西门子不同的是,CODESYS采用类型独立的编号方式(如图所示),因此外部访问时需进行地址转换和反转换,并注意字节顺序。CODESYS对系统保护机制严密,不允许外部直接访问内部变量,通常需通过gateway软件访问。

这让我产生了一个问题:尽管PLC-ANALYZER和IBA PDA都是德国公司,能直接通过变量名采集数据,为什么CODESYS系统无法直接实现这一功能?

通过研究,我了解到PLC厂家可以开放自己的通讯协议。例如,汇川PLC提供MODBUS TCP协议,默认开启从站模式,允许外部用户直接通过该协议访问I、Q、M区域。这种开放性使得第三方工具如PLC-ANALYZER和IBA PDA能够直接通过变量名进行数据采集。

在CODESYS系统中,M存储区域的地址指定方式具有灵活性。例如,real0可以用%MD1、%MW2或%MB4表示,且这些定义等效。CODESYS允许从单字节开始访问M区域,而MODBUS TCP则以字为单位进行访问,需确保访问长度为字的倍数。由于每个字包含两个字节(如MW1包括MB2和MB3),MODBUS采集需从偶数字节开始,并注意高低字节顺序。

在字符串处理方面,CODESYS与日系系统不同,日系在字符串尾部添加结尾标志字节,而CODESYS通常在字符串尾部添加空字节。对于ASCII字符串,需避免误解0字节为终止标志;对于Unicode字符串,需精确查找开始字节。

最后,我思考如何通过MODBUS TCP协议实现批量采集。由于软件已自动处理地址和类型,用户只需提供变量名称即可完成采集。通过实际测试和经验交流,我希望能够实现变量名批量采集的功能。

转载地址:http://afmj.baihongyu.com/

你可能感兴趣的文章
Node JS: < 一> 初识Node JS
查看>>
Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
查看>>
Node-RED中使用JSON数据建立web网站
查看>>
Node-RED中使用json节点解析JSON数据
查看>>
Node-RED中使用node-random节点来实现随机数在折线图中显示
查看>>
Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
查看>>
Node-RED中使用node-red-contrib-image-output节点实现图片预览
查看>>
Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
查看>>
Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
查看>>
Node-RED中实现HTML表单提交和获取提交的内容
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
node-request模块
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
Node.js 函数是什么样的?
查看>>
Node.js 历史
查看>>
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>