恭喜,你发布的帖子
发布于 2023-05-10 12:39:40
7楼
“给变频器频率(写频率)的MB-CLIENT指令要放到OB30里面,便于变频器能及时作出频率改变反应”,这因果关系成立吗。轮询是轮询,PID是PID,PID放中断中是因为要保证运算和采样周期,轮询则完全没必要,直接放在程序循环内即可,楼上有人也说了,根据串口的负载情况和PLC循环周期时间,轮询周期不定,但是几十至几百ms的时间在工程当中作为PID的反馈和给定值完全够了,你要考虑到执行机构的调整频率跟的上吗。
所以用户提出的所谓放在中断内,以保证周期性的通信和及时给PID完全是无稽之谈,有害无益,”莫名其妙掉频率”就是由其造成,Modbus直接放回程序循环内,同时根据“放中断内,变频器莫名其妙的掉频率“现象,我觉得你放回程序循环内后,死区好好设置下,否则也可能出现这类问题。
我个人也是觉得没有必要放在中断里面,轮询就是轮询。如果说按照他的理论,中断时间如果是100ms,那岂不是刚执行完中断,其他轮询还没轮几个指令又得去执行写频率指令,那其他指令还怎么轮询。
我目前完整的程序就是每组泵的轮询是一个独立的子程序,实际运行也都正常。频率给定正常,也不会出现掉频率现象,其他读回来的也都正常。
我认为要实现他要的目的,那就把中断时间调整成比轮询一圈的时间稍微长点,这样就能保证,本次OB30里面的数值在下次执行OB30前,已经全部下达给每台变频器了,不知这个思路是否正确。
请填写推广理由:
分享
只看
楼主