SIMATIC S7-1200,CPU 1214C, 紧凑型 CPU,DC/DC/DC, 机载 I/O: 14 个 24V DC数字输入;10 个 24V DC 数字输出; 2 AI 0-10V DC, 电源:DC 20.4-28.8V DC,程序存储器/数据存储器 150 KB
S7-1200 PID Compact V2 常见问题
S7-1200 的 PID 功能支持仿真吗?
S7-1200 固件版本 V4.0 以上,TIA V13 SP1 以上,使用 S7-PLCSIM V13 SP1 可以仿真 PLC的程序,但不支持工艺功能(高速计数器、运动控制、PID 调节)的仿真。
S7-1200 系列 PLC 多能实现多少 PID回路的控制?
严格上说并没有具体数量的限制,实际应用中由以下因素决定数量:
1.CPU 的存储区的占用情况,及支持 DB 块数量的限制。
2.在循环中断里调用 PID 指令,需要保证中断里执行指令的时间远小于该中断的循环时间。
当出现过程值超限错误时,如何使 PID控制器不停止运行?
1.在PID Compact V1版本时,当过程值超限,PID 会自动切换到“未激活”模式,Error报错。通过错误位上升沿捕捉错误代码是 0001H(参数 “Input” 超出了过程值限值的范围),可以通过以下途径避免:
① 在工艺对象 PID 的组态界面,修改过程值的限值,进行适当放大。
② 程序中对反馈值进行比较,必须满足限值范围的再传送给 Input。可以在比较的过程中做个超限后的报警。
在 PID_Compact V2 > 组态 > 设置 > 对错误的响应中,可以预先设置发生错误时 PID的输出状态。以便在发生错误时,控制器在大多数情况下均可保持激活状态。以“反馈值超限”的错误为例,设置“对错误的响应”的不同模式,查看PID 控制器的状态变化:
① 对错误的响应 > 将 Output 设置为“非活动”,错误发生时,PID 会自动切换到“未激活”模式,Error报错。错误离开后,工作模式仍处于“未激活”模式。
图1.“非活动”错误响应_出现错误时 PID 控制器不活动
② 对错误的响应 > 将 Output 设置为“错误待定时的当前值”或“错误未决时的替代输出值”,错误发生时,PID会仍处于“自动”模式,Error 报错,输出为 0.0。错误离开后,切换到“自动”模式正常运行。
图2.“错误未决”错误响应_出现错误时 PID 控制器保留自动模式
具体“组态错误的响应区别与非活动时,控制器的状态及输出值的变化”
如何进行 PID Compact 的故障复位?
当 PID Compact 发生错误时 Error=1 且 ErrorBits 显示错误信息,当错误离开后,Error=0 且ErrorBits 会保留错误信息。
Error | 如果 Error = TRUE,则此周期内至少有一条错误消息处于未决状态。 |
ErrorBits | ErrorBits 参数显示错误消息。通过 Reset 或 ErrorAck 的上升沿来复位 ErrorBits。 |
如果错误一直存在无法消除时,建议检查错误信息排除故障。Reset 沿变化能够重启控制器,不建议使用 Reset来清除错误信息。通过 ErrorAck 的上升沿可以清除已经离开的错误信息,包括 ErrorBits 和Warning。
ErrorAck | FALSE -> TRUE 上升沿时,错误确认,清除已经离开的错误信息。 |
Reset | 重新启动控制器: |
如何切换 PID Compact控制器的工作模式?
若 PID 控制器未正常工作,请先检查 PID 的输出状态 State 来判断 PID 控制器的当前工作模式:
State | State 参数显示了 PID 控制器的当前工作模式。 可使用输入参数 Mode 和 ModeActivate处的上升沿更改工作模式: |
Mode 和 ModeActive 的上升沿组合、ManualEnable 的下降沿、Reset 的下降沿都可以切换 PID控制器的工作模式,为操作简便建议采用 ManualEnable 进行手/自动模式切换。
ManualEnable | 出现 FALSE -> TRUE 上升沿时会激活“手动模式”,与当前 Mode 的数值无关。 |
ModeActivate | FALSE -> TRUE 上升沿,PID_Compact 将切换到保存在 Mode 参数中的工作模式。 |
Reset | 重新启动控制器: |
如何切换 PID_Compact 手动/自动状态可参考以下流程图:
如何实现 PID Compact手/自动模式的无扰切换?
PID 自动/手动控制,就是看控制系统的输出是由 PID 控制器自动控制,还是由操作人员手动控制。在进行 PID自动/手动切换时,如果要求保持控制输出的无扰动切换,需要在编程时注意:
1.PID Compact 手动到自动的模式切换,就是无扰的。
2.PID Compact 自动到手动的模式切换,需要保证切换至手动模式前,PID回路的输出仍然是切换前的输出值。切换完成后,操作人员可以修改手动设定值。
图3.编写自动切换到手动时无扰的程序
在 PID Compact 组态界面里手动输入 PID参数,为什么重新下载后新的参数不起作用?
激活“手动输入”后可以在此对话框中修改 PID 参数,须重新下载 PID组态。因为工艺对象背景数据块的数据结构未发生变化,需要 CPU 从 STOP 到 RUN后才生效。
图4.PID 组态界面_启动手动输入 PID 参数
在 PID Compact 组态界面设置了 CPU重启后的工作模式,为什么重新启动 PLC 后不起作用?
图5.设置 CPU 重启后激活的 PID 工作模式
组态界面设置的 CPU 重启后激活的工作模式,属于组态功能直接作用于工艺对象的背景数据块。这要求 PIDCompact 指令中的 Mode 参数不使用其他变量控制,如图 6(右侧)。
图6.PID 指令中的 Mode 参数控制
当 CPU 从 STOP 到 RUN 后,系统根据组态界面的设置会自动往工艺对象数据块里的 Mode 参数赋值,使得 PID控制器切换至设置的重启模式。
已经在循环中断 OB30 中调用 PID Compact,为什么运行时PID 控制器报错 “16#0800H” ?(循环中断 OB 的采样时间内没有调用 PID_Compact)
在循环中断里调用 PID Compact 的 EN 参数中使用控制变量,若当 PID 控制器已经在自动运行模式后,禁用 EN处控制变量,则会报错“16#0800H” :循环中断 OB 的采样时间内没有调用 PID_Compact。
在循环中断里恒调用 PID 指令,EN 参数不允许串接任何条件。通过程序来控制参数,从而改变 PID 的运行模式:
1. PID Compact V1 时,使用 PID 工艺对象背景 DB 中,sRet 里的 i_Mode 参数来控制 PID的工作模式。
2. PID Compact V2 时,使用其 Mode 和 ModeActive 来控制 PID 的工作模式(如Mode=0,PID 未激活)。
如何修改 PID Compact 的 Output值的限值范围?ManualValue 的范围是多少?
1. 在“输出值的限值”窗口中,以百分比形式组态输出值的限值。 无论是在手动模式还是自动模式下,PID 的输出 Output都不允许超过限值范围。
2. 手动模式下的设定值 ManualValue,必须介于输出值的下限 (Config.OutputLowerLimit 默认值0.0) 与输出值的上限 ( Config.OutputUpperLimit 默认值 100.0)之间的值。
3.”错误未决时的输出替代值“也须在设置限值的范围内。如果修改了输出值的限值范围,未修改错误响应里的输出替代值,若替代值在限值范围外,则组态错误。
图7.PID Compact 输出值限值设置
如何通过第三方设备,实现 PID的预调节/jingque调节功能?
图8.第三方设备上启动 PID 调节模式且可恢复参数
1.在第三方设备上设置 Mode 和 ModeActive,State,ErrorBits 、LoadBackUp等变量(地址)访问PID 背景 DB 块变量。 请参见”工艺对象背景数据块的应用“
2.通过控制模式=1、2 来启动预调节或jingque调节,沿指令触发 ModeActive,PID 控制器进入调节模式。
3.可以查看输出参数 State 来判断 PID控制器的当前工作状态。调节成功后,控制器将切换到自动模式。如果jingque调节未成功,则工作模式的切换取决于ActivateRecoverMode。
4.PID 调节成功后自动将调节前的参数备份至“CtrlParamsBackUp”,调节出的参数更新至“CtrlParams”。如果需要恢复整定前的参数,将“LoadBackUp”=1,参数恢复后该参数自动变回 0。