前不久开始弄S7-200与英威腾CHV系列变频器的modbus通讯,途中遇到了一些问题,在朋友的帮助下和自己的努力下取得了一些进展,现在CHV变频器的各种状态都可以读到PLC上了,现在遇到的问题是,我需要不停的轮流查询变频器的频率、电压、电流、功率、故障状态等参数,我发现通讯过程中,有些数据会出现短时间的跳变,跳变的值有时候是别的参数的值,有时候是个很大的值,基本偏离了正常值.
我设定的读状态子程序是每500ms读一次,每读一次,读出2个参数出来,我觉得这个速度应该不至于引起通讯的冲突吧,但现在我把读状态子程序设置为每700ms执行一次,还是有时候出现错误的值,
还有一个问题就是,当与CHV的通讯建立起来以后,如果我将变频器突然断电或者停止以后断电,再给变频器通电的话,通讯就建立不起来了,要关掉PLC或者,PLC停止一下再启动才能重新通讯,我不知道这个问题怎么解决好,因为我的PLC控制变频器,是要求PLC控制变频器的通电、断电的,如果断电再通电后要复位PLC才能恢复通讯的话,会影响系统运行!
以上说得比较多,希望朋友们能给我点提示,建议或者方法,在此多谢了,希望大家一起交流!
最佳答案
1、数据跳变比较大,应该是PLC向变频器发送指令后,变频器向PLC返回来的数据和PLC再次向变频器发送的指令在路上给撞上了,你可适当加大PLC向变频器发送第一个指令后到再次发送第二个指令之间的时间。
2、变频器断电后再上电不能通讯估计也是你的通讯程序没写好,永远记住:RS485是半双工的,在发送之前必须先停止接收功能,反之亦然。
提问者对于答案的评价:
感谢你的帮助
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc355504.html