S7200MODBUSRTU变频器通讯求助! (s7200max增程版是啥车)

小弟求助一个问题哈;S7-200与台达变频器通讯,我需要时刻监控变频器的状态(故障和实际频率),如下图所示:

如果使用开关量来触发读取频率和故障,那就没有实效性。而且CPU一次只能处理一条MSG指令,因为激发MSG要上升沿触发,所以触发条件也不能做成一直接通。但是如果做成定时脉冲来触发,随时随地要激发其他MSG指令(如启动,停止等),所以这个MODBUS通讯来监控故障,频率(同时还要作启动,停止用),可不可行?

解决方案

可以使用以下方法来实现同时监控变频器状态和执行启动/停止命令:

1. 使用多重MSG指令

S7-200 CPU可以使用多个MSG指令,同时触发它们并读取不同寄存器的数据。例如: MSG "ReadFreq" TO "- - ID:3;P:30002,L:1,D:2" MSG "ReadFault" TO "- - ID:3;P:30003,L:1,D:1" 这将同时读取变频器的频率(寄存器30002)和故障状态(寄存器30003)。

2. 使用getS7Msg()函数

S7-200 CPU还提供了一个getS7Msg()函数,可以从一个MSG指令中接收多个寄存器的数据。例如: Dim msgData As Variant msgData = getS7Msg("ReadFreqFault", "- - ID:3;P:30002,L:2,D:1") print msgData(0) '频率 print msgData(1) '故障状态 这将同时读取变频器的频率和故障状态,并将其存储在msgData数组中。

3. 使用定时器中断

可以使用定时器中断来定期触发MSG指令。例如: TON "Timer" S50 IF TON.Q Then MSG "ReadFreqFault" TO "- - ID:3;P:30002,L:2,D:1" END IF 这将每50ms触发一次MSG指令,确保持续监测变频器的状态。

结论

通过使用多重MSG指令、getS7Msg()函数或定时器中断,可以同时监控变频器故障和频率,以及执行启动/停止命令。这将确保实时监测和控制变频器。

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论