硬件:plc ST20。一个屏。一个变频器。一个电度表。
连接:plc通过Modbus RTU与变频器电度表连接。三者都是装在一个电柜内。没有别的主要电气了。屏用网线连plc。没有终端电阻。感觉线路很短,没加。
需求:读变频器两个信息。一个信息两个字节。一个信息20几个字节。
读电度表两个信息。一个信息4个字节。一个信息40个字节。
程序:自己常用的MB读写程序套路。自我感觉程序稳定,未明显发现存在BUG。可以暂时简单理解成上述4个信息固定轮训。ctrl设定超时1000毫秒。上述需求对应Q0.1到Q0.4四个状态灯。我把4个信息的轮训状态都输出到Q点。比如轮训到第一个信息Q0.1亮,轮训到第三个信息Q0.3亮。正常情况可以看见Q0.1到Q0.4以很快的速度循环流水灯闪烁。字节多的信息感觉灯更亮,字节少的信息对应的灯比较暗。一切都很正常。9600的波特率,还没尝试修改其他波特率。电度表最大就是9600 。
目前现象:变频器两个灯一直都反应很灵敏。一闪而过。但是电度表的第一个灯Q0.3,偶然会亮很久,之后又可以继续轮训,MSG没有报错误码。Q0.4,是读电度表的40个字节的长信息,从来没有出现过卡住。
刚才说的Q0.3亮很久,正确时间就是Ctrl设定的超时时间。这个很好证实,我把超时时间设定成5秒,那么就卡住5秒。设定成500毫秒,就卡住500毫秒。
还有,它不是每次都会卡住。大概有……从连续5次都卡 到连续10次都不卡 的情况都有。(这个5次,10次不确定。因为眼睛看不过来)
花絮:早期变频器运行时候有无序的卡顿,完全观察不出卡顿的规律。关掉变频器就好了。这样明显是干扰了。这个问题后期我已经暂时解决。即使没有杜绝,影响也不至于影响到面前我讨论的问题。现在无论开变频器关变频器都不出现干扰事件。都能明显看见Q0.3卡住的情况。
电度表买了两个了。都一样。
程序把读电度表的MSG改成面向变频器地址,其余什么都不变,Q0.3就没有卡住了。证明程序是没有问题的。
大家说这个卡住的情况是什么问题?能分析出什么原因吗?我好像没招了。
诸位有需要我补充的我可以继续说明。谢谢。