尹梦超
级别: 略有小成
精华主题: 0
发帖数量: 98 个
工控威望: 258 点
下载积分: 6836 分
在线时间: 78(小时)
注册时间: 2012-05-24
最后登录: 2024-12-23
查看尹梦超的 主题 / 回贴
楼主  发表于: 2022-03-10 17:17
首先讲下,这片帖子不是讲200smart PLC和变频器通讯程序怎么编写的,因为类似的帖子网上其实有很多,而且大多数照着操作,编程就能成功。但是呢往往有一些钻牛角尖的人,就是照猫画虎还是会失败,比如说像我这样的。然而出错的原因,又是比较有意思的,可能有些人也会遇到,所以在此记录下。

现在的通讯基本都是用的Modbus通讯,西门子PLC的这个也是比较多见,而且帮助手册也都有介绍。Modbus通讯里面有一个指令码是连续多字节传送,功能码是03。我之前是用惯了S7-1200PLC,所以喜欢把连续的寄存器地址写在一起,举个例子,比如变频器启停命令是40005,变频器频率设定是40006,那么我自然就会连续发送2个字地址。于是我在200smart PLC也是这么用的。可实际调试的结果就是,这样的连续传送大于1个字的地址,变频器通讯控制是失败的。至于失败的原因是smart200不行,还是变频器端不行。我也没有具体研究,咱也没这个能力。




如图,在字节数改成1以后,如果接线正确,参数正确,程序正确,那就能正常启停变频器,以及更改变频器频率。但是字节数改成2及以上,那肯定是通讯异常。而且现在网上的编程说明文档也基本都是1个字节。
[ 此帖被尹梦超在2022-03-10 17:23重新编辑 ]