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

你可能感兴趣的文章
PYTHON2.Git.1
查看>>
python20181211
查看>>
Python内存管理机制
查看>>
Python2中range 和xrange的区别??
查看>>
python2和3的区别
查看>>
python2和python3的pip版本升级
查看>>
python2和python3的区别
查看>>
python2备份交换机配置脚本
查看>>
Python3 - 在字符串格式化程序参数中使用变量
查看>>
Python3 A*寻路算法实现
查看>>
python3 grpc安装
查看>>
python3 mysql 封装多表_python3 mysql-多表查询
查看>>
python3 mysql8_Python MySQL8.0 错误:authentication plugin 'calling_sha2_password' is not supported....
查看>>
Python关键代码总览!从Zero到Hero必看的考点
查看>>
python3 robotframework+pycharm框架搭建
查看>>
Python3 shutil模块
查看>>
Python关于strftime函数详细解析 附实战代码
查看>>
Python3 tutorial day3
查看>>
python3 week4
查看>>
Python3 创建数组
查看>>