S7-1200 PID Compact V1 常见问题

为什么PID控制器没有运行?

PID控制器被添加后,要靠PID_Compact指令块控制,其中工艺对象数据块中的sRet.i_Mode参数用于设置控制器运行方式,共有如下5种模式:

0 : Inactive(未激活)

1 : Start Up整定方式

2 : Tuning in Run整定方式

3 : Automatic Mode自动模式

4 : Manual Mode手动模式

PID控制器未使能自整定,则sRet.i_Mode默认值为0,控制器处于未激活模式,需要手动给sRet.i_Mode参数赋值,如将3写入参数中,PID控制器处于自动模式。

使能运行自整定与启动自整定的条件是什么?

Start Up(启动自整定)

①| 设定值 – 反馈值 | > 0.3 * | 输入高限 – 输入低限 |
②| 设定值 – 反馈值 | > 0.5 * | 给定值 |
③指令块的状态应为“Manual Mode”(手动模式) 或 “Inactive Mode”(未激活模式)

Tune in Run(运行中整定)

①| 设定值 – 反馈值 | < 0.3 * | 输入高限 – 输入低限 |
②| 设定值 – 反馈值 | > 0.5 * | 给定值 |
③指令块的状态应为“Manual Mode”(手动模式) ,“Inactive Mode”(未激活模式)或Automatic Mode(自动模式)

假如使能运行自整定时满足启动自整定的条件,则会先执行启动自整定,结束后再执行运行中整定,整定完成后系统进入自动模式,假如整定失败控制器会进入模式0,且在error管脚输出错误代码

PID控制器产生错误,使能Reset端为何不能让控制器重新运行?

当PID控制器在自动模式时发生错误,如反馈值超限,则PID控制器将会进入未激活模式,这时使能Reset只能清除错误,若想要控制器重新运行,需要将3写入sRet.i_Mode以使控制器进入自动模式,但此参数只对数值 变化响应,在大多数情况下sRet.i_Mode参数已经被设为3了,所以需要先将此参数清零后,再写入3才能使控制器进入自动模式

循环中断时间与PID控制器的采样时间有什么关系?

循环中断时间为添加循环中断后对指定两次中断的间隔时间,PID控制器采样时间:sRet.r_Ctrl_Cycle是控制器两次计算之间的间隔时间。PID控制器的采样时间是循环中断时间的整数倍。若用户使能自整定择系统会自动计算sRet.r_Ctrl_Cycle参数,若用户使用手动方式设定,则一定要注意此参数为循环中断时间的整数倍

例如:PID控制器的采样时间是1s,循环中断时间为100ms,则在1S的时间内,循环中断执行了10次,但前9次PID控制器都不进行运算,只在第10次运算若用户使能PWM输出,则PWM的周期即为sRet.r_Ctrl_Cycle,其分辨率为循环中断的时间。

例如:PID控制器的采样周期为1S,循环中断时间为100ms,则PWM的周期为1S,分辨率为100ms,一个周期内可能的脉宽为:0(关闭),100,200,300,400,500,600,700,800,900,1000ms(全开)