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

你可能感兴趣的文章
php7和PHP5对比的新特性和性能优化
查看>>
PHP7安装pdo_mysql扩展
查看>>
PHP7实战开发简单CMS内容管理系统(7) 后台登录架构 用户登录校验
查看>>
php7,从phpExcel升级到PhpSpreadsheet
查看>>
PHP8.1 + ThinkPHP实战指南:高效构建现代化网站的六大技巧
查看>>
PHP8中match新语句的操作方法
查看>>
PHP:第一章——PHP中常量和预定义常量
查看>>
PHP:第一章——PHP中的位运算
查看>>
phpcms
查看>>
phpcms 2008 product.php pagesize参数代码注射漏洞
查看>>
phpcms V9 自定义添加 全局变量{DIY_PATH}方法
查看>>
Redis五种核心数据结构的基本使用与应用场景
查看>>
Redis五种数据结构简介
查看>>
PHPCMS多文件上传和上传数量限制
查看>>
phpEnv的PHP集成环境
查看>>
PHPExcel一些基本设置总结
查看>>
phpexcel中文手册
查看>>
PHPExcel导入导出 若在thinkPHP3.2中使用(无论实例还是静态调用(如new classname或classname::function)都必须加反斜杠,因3.2就命名空间,如/c...
查看>>
phpize及其用法
查看>>
phpMailer发送邮件
查看>>