博客
关于我
汇川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实现多关键字查找方法
查看>>
PHP实现微信公众号H5支付
查看>>
PHP实现微信公众号网页授权
查看>>
PHP实现微信小程序推送消息至公众号
查看>>
rabbitmq逻辑与开发
查看>>
php实现根据身份证获取年龄
查看>>
PHP实现的MongoDB数据增删改查
查看>>
PHP实现的SSO单点登录系统,拿走就用吧
查看>>
php实现短信验证功能
查看>>
RabbitMQ连接报错(1)—— None of the specified endpoints were reachable
查看>>
php实现逆转数组
查看>>
PHP实现通过geoip获取IP地理信息
查看>>
PHP实现页面静态化、纯静态化及伪静态化
查看>>
php容许ajax跨域,PHP设置允许ajax跨域请求的两种常见方法
查看>>
RabbitMQ进程结构分析与性能调优
查看>>
PHP对接百度地图
查看>>
PHP对表单提交特殊字符的过滤和处理
查看>>
php对象引用和析构函数的关系
查看>>
RabbitMQ HTTP 认证后端项目常见问题解决方案
查看>>
PHP将图片转换成base64格式(优缺点)
查看>>