博客
关于我
汇川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/

你可能感兴趣的文章
PHP $_FILES函数详解
查看>>
PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
查看>>
php & 和 & (主要是url 问题)
查看>>
php -- 魔术方法 之 判断属性是否存在或为空:__isset()
查看>>
php -- 魔术方法 之 获取属性:__get()
查看>>
php -树-二叉树的实现
查看>>
PHP -算法-二路归并
查看>>
php 2条不一样 的json数据 怎么放在一个json里面_如果你是PHP开发者,请务必了解一下Composer...
查看>>
php 360 不记住密码,JavaScript_多种方法实现360浏览器下禁止自动填写用户名密码,目前开发一个项目遇到一个很 - phpStudy...
查看>>
regExp的match、exec、test区别
查看>>
php 404 自定义,APACHE 自定义404错误页面设置方法
查看>>
PHP 5.3.0以上推荐使用mysqlnd驱动
查看>>
php 7.2 安装 mcrypt 扩展: mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl...
查看>>
php aes sha1解密,PHP AES加密/解密
查看>>
php array 分片,PHP常用数组函数小结
查看>>
php CI框架单个file表单多文件上传例子
查看>>
php composer
查看>>
reflow和repaint引发的性能问题
查看>>
Reflection反射机制原理、使用场景 及 缺陷
查看>>
php csv 导出
查看>>