发表于:2020/2/10 20:52:58
#0楼
硬件结构:一个加热棒插水杯里面,一个温度探头也放里面,物理位置保持不动。
PLC通过485读取温控器的PV值,通过PIDAT指令输出D值,TPO指令计算占空比输出一个点驱动继电器控制加热(不要考虑寿命啥的,纯玩)
现在有个问题,我不启动AT(PIDAT_C9.15),有输出,PV值也接近SV值。
但是我启动AT后,PIDAT_D输出就是0了,我看例程说,PV值要在SV附近来回震荡几次就完成了,
但是,没输出,这个怎么完成震荡啊
图来了:
PLC程序图:程序+PIDAT设定。
HMI实时曲线图:(未开启AT)
可以看到PV值超过SV后,输出IO接通时间明显短了。
HMI曲线图:开启AT后:
PIDAT_D直接是0了,不输出了,怎么完成震荡呢?
最后做了一个功能块,需要的自取; 我是继电器控制,周期T设置的5,第一次使用请把PID值初始化(功能块也可以自己改)
PV SV是浮点,我是通讯读取的只能精确到小数点一位,
PLC通过485读取温控器的PV值,通过PIDAT指令输出D值,TPO指令计算占空比输出一个点驱动继电器控制加热(不要考虑寿命啥的,纯玩)
现在有个问题,我不启动AT(PIDAT_C9.15),有输出,PV值也接近SV值。
但是我启动AT后,PIDAT_D输出就是0了,我看例程说,PV值要在SV附近来回震荡几次就完成了,
但是,没输出,这个怎么完成震荡啊
图来了:
PLC程序图:程序+PIDAT设定。
HMI实时曲线图:(未开启AT)
可以看到PV值超过SV后,输出IO接通时间明显短了。
HMI曲线图:开启AT后:
PIDAT_D直接是0了,不输出了,怎么完成震荡呢?
最后做了一个功能块,需要的自取; 我是继电器控制,周期T设置的5,第一次使用请把PID值初始化(功能块也可以自己改)
PV SV是浮点,我是通讯读取的只能精确到小数点一位,
附件:
[本地下载][此贴子已经被作者于2020/2/11 21:03:19编辑过]