PIDE - 增强型 PID 功能块
操作状态
程序控制 | 使用应用程序控制所有的模式。 |
操作员控制 | 使用HMI系统控制PIDE 功能的正常操作。 |
表 1. 操作状态
标记为 “ProgOper”的布尔量输出用于指示PIDE 功能块的运行条件。它提供了这两种模式下功
能块控制状态的数据。如果它被设置为逻辑“1”,PIDE块会处于程序控制状态,如果它被设置为逻辑“0”, PIDE块会处于操作员控制状态。
图 2 – 带有操作员控制状态输入和输出的PIDE 功能块.
“OperOperReq” 输入 | “OperProgReq” 输入 | “ProgOperReq” 输入 | “ProgProgReq” 输入 | “ProgOper” 输出 | 程序模式 | 操作员模式 | ||
请求 “操作员”模式 | X | 0 | X | |||||
X | X | X | 0 | X | ||||
X | X | 0 | X | |||||
X | X | 0 | X | |||||
X | X | 0 | X | |||||
请求“程序”模式 | X | 1 | X | |||||
X | 1 | X | ||||||
X | X | 1 | X | |||||
表 3 – 操作员/程序模式选择.
表3显示了使PIDE功能块处于操作员模式或程序模式而所需的不同输入的逻辑状态。
操作员模式面板
RSLogix5000安装 CD上包括很多面板,它们可以和不同的功能块一起使用。一种面板专为PIDE 功能块而提供。 这个面板可以很容易地使用PIDE 和HMI控制软件包(例如RSView)。
《Process Control and Drives Instruction Manual(过程控制和驱动指令手册)》(出版号:1756-RM006A-EN-P)的第C-17到C-19页对这个面板进行了说明。
运行模式
串级/比率 | 指令计算CV的变化。指令会调节CV的数值,以使PV保持在SPCascade的数值等级(串级控制)或者保持在SPCascade乘以比率的数值等级。 |
自动 | 指令计算CV的变化。指令会调节CV的数值,以使PV保持在SP的数值等级。 |
手动 | 指令不计算CV的变化。CV = CVProg或CVOper 取决于操作条件。 |
覆盖 | 在这个模式下,指令不计算SP的变化。这个模式通常用于设置回路的“安全状态CV数值”。无论控制模式如何,CV = CVOverride。 |
手操 | 指令不计算CV的变化。无论控制模式如何,CV = HandFB。通常当外部手操/自动 工作站控制回路时,使用这个模式。 |
表 4. 运行模式
当处于程序控制状态时,串级/比率、自动和手动模式可以由用户的程序进行控制,当处于操作员控制状态时,串级/比率、自动和手动模式可以由操作员面板或其它接口进行控制。注意:覆盖 和手操 模式具有模式请求布尔量输入,它们只能由用户的程序进行控制。这些输入可以运行在程序控制和操作员控制状态。
从功能块的图标上我们可以看到:输入显示在功能块的左手侧,输出显示在功能块的右手侧。布尔量输入用于控制PIDE 功能块的状态,布尔量输出用于状态或反馈指示器。编程人员可以使用功能块图标上的设置箱来选择在程序中需要显示的输入和输出。鉴于此目的,模拟量变量以全部大写字母显示,布尔变量以小写字母显示并且在连接盒的内部有一个圆点。
不同的图例和图7显示了布尔量输入,它们的标签名以“Prog”开头,还有一系列当功能块处于操作员状态时使用的复制输入,它们的标签名以“Oper”开头。这些输入的名字前面显示一个星号。
图 5. 带自动、手动、手操和覆盖控制功能的PIDE 用于程序控制状态输入和输出
图 6. 串级和比率控制的额外输入和输出.
图例和表7显示了布尔量输入,它们的标签名以“Prog”开头,还有一系列当功能块处于操作员状态时使用的复制输入,它们的标签名以“Oper”开头。这些输入的名字前面显示一个星号。
表 7显示了如何由不同的输入组合实现PIDE功能块的不同控制模式。状态指示器的状态在右边的列中显示。
ProgHandReq | * ProgManualReg | * ProgAutoReq | ProgOverrideReq | * ProgCasRatReq | AllowCasRat | UseRatio | 自动 | 手动 | 覆盖 | 手操 | 串级 | ||
使能 “手操”模式 | X | X | |||||||||||
使能 “覆盖” 模式 | X | X | |||||||||||
使能 “手动” 模式 | X | X | |||||||||||
使能 “自动” 模式 | X | X | |||||||||||
从 “自动”到“手动” | X | X | X | ||||||||||
从“手动”到“自动” | X | X | |||||||||||
使能 “串级”模式 | X | X | X | ||||||||||
使能 “比率”模式 | X | X | X | X | |||||||||
返回到 “自动”模式 | X | X | |||||||||||
从“手动”到“手操” | X | X | X | ||||||||||
从“自动”到“手操” | X | X | X | ||||||||||
从“覆盖”模式到“手操” | X | X | X | ||||||||||
“覆盖” 模式 | X | X | X | ||||||||||
“手操” 模式 | X | X | X | X | |||||||||
表 7. 控制模式选择和反馈指示器.
状态字1和2
PIDE 控制结构中包含了两个状态字。它们的名称为“状态 1” 和 “状态2”。这些状态字都是DINT类型,并且如果正常运行应该具有零数值。这些状态字的每一位都具有不同的意义,这为在指令设置时的故障处理提供了很大的帮助。在PIDE 控制结构中这些偏差数据以十六进制表示。表 8 和9。
状态1提供了指令状态的信息。当它的数值为零时,代表一切正常。它使用位00到29。每一位具有不同的意义,例如,如果位00等于1,指示已经检测到故障。表8中显示了每个故障位的意义以及对不同数值产生反应的信息。
状态 2 提供了指令定时状态的信息。它使用位27到31来指示有效的定时状态。表 9 提供了关于这个状态字每一位意义的信息。
状态字位地址 | 参数 | 说明 | 注释 |
1.00 | InstructFault | 检测到指令故障。 | |
1.01 | PVFaulted | 过程变量 (PV) 无效。 | 18 |
1.02 | CVFaulted | 控制变量 (CV) 无效。 | 18 |
1.03 | HandFBFaulted | Hand FB 数值无效。 | 19 |
1.04 | PVSpanInv | PVEUMax <= PVEUMin | |
1.05 | SPProgInv | SPProg < SPLLimit或SPProg > SPHLimit | 1 |
1.06 | SPOperInv | SPOper < SPLLimit或SPOper > SPHLimit | 1 |
1.07 | SPCascadeInv | SPCascade < SPLLimit或SPCascade > SPHLimit | 1 |
1.08 | SPLimitsInv | SPLLimit < PVEUMin, SPHLimit > PVEUMax或SPHLimit < SPLLimit. | 2 |
1.09 | RatioProgInv | RatioProg < RatioLLimit或RatioProg > RatioHLimit | 3 |
1.10 | RatioOperInv | RatioOper < RatioLLimit或RatioOper > RatioHLimit | 3 |
1.11 | RatioLimitsInv | Low limit < 0或High limit < low limit. | |
1.12 | CVProgInv | 当 CVManLimiting 被置位时, CVProg < 0或CVProg > 100或CVProg < CVLLimit或CVProg > CVHLimit. | 4 |
1.13 | CVOperInv | 当 CVManLimiting被置位时, CVOper < 0或CVOper > 100或 CVOper < CVLLimit或CVOper > CVHLimit. | 4 |
1.14 | CVOverrideInv | CVOverride < 0或CVOverride > 100. | 4 |
1.15 | CVPreviousInv | 当处于自动或串级/比率模式时,CVPrevious < 0或CVPrevious > 100或 > CVHLimit. | 5 |
1.16 | CVEUSpanInv | 无效的CVEU 范围. | 6 |
1.17 | CVLimitsInv | CVLLimit < 0, CVHLimit > 100或CVHLimit < CVLLimit. | 7 |
1.18 | CVROCLimitInv | CVROCLimit < 0. | 8 |
1.19 | FFInv | FF < -100或FF > 100. | 9 |
1.20 | FFPreviousInv | FFPrevious < -100或FFPrevious > 100. | 10 |
1.21 | HandFBInv | HandFB < 0或HandFB > 100. | 11 |
1.22 | PgainInv | Pgain < 0. | 12 |
1.23 | IGainInv | Igain < 0. | 13 |
1.24 | DGainInv | Dgain < 0. | 14 |
1.25 | ZCDeadbandInv | ZCDeadband < 0 | 15 |
1.26 | PVDeadbandInv | PVDeadband < 0 | |
1.27 | PVROCLimitsInv | PVROCPostLimit < 0, PVROCNegLimit < 0或 PVROCPeriod < 0. | |
1.28 | DevLLimitsInv | Low low limit < 0, Low limit < 0, High limit < 0或High high limit < 0. | 16 |
1.29 | DevDeadbandInv | 偏差死区 < 0. | 17 |
表 8. 状态 1 – 指令故障
很多故障是由PIDE所使用的不同变量的极限值设置而引起的。确保何时使用极限值以及如何正确地设置它们是非常重要的。
注释:
1. 指令为SP使用极限值。
2. 指令使用SPLLimit 限制数值。
3. 指令为比率使用极限值。
4. 指令为CV使用极限值。
5. 指令为CVn-1使用极限值。
6. 指令使用CVEUMax = CVEUMin时的数值。
7. 如果 CVHLimit < CVLLimit,那么指令会使用CVLLimit限制CV的数值。
8. 指令会禁止 ROC 极限。
9. 指令为FF使用限制值。
10. 指令为FFn-1使用限制值。
11. 指令为CV使用极限值。
12. 指令使用Pgain = 0时的数值。
13. 指令使用 Igain = 0时的数值。
14. 指令使用 Dgain = 0时的数值。
15. 指令会禁止零交叉死区。
16. 指令为无效的极限值使用0值。
17. 指令使用DevDeadband = 0时的数值。
18. 故障位由模拟量输入或输出模块的故障指示器进行置位。
19. 故障位由模拟量输入模块(它从外部自动-手动工作站读取手操 信号)的故障指示器进行置位。
状态字位地址 | 参数 | 说明 |
27 | TimingModeInv | 无效的TimingMode数值 |
28 | RTSMissed | 只能用于实时采样模式。当 ABS[ DeltaT – RTSTime}> 1 (.oo1秒)时置位. |
29 | RTSTimeInv | 无效的 RTSTime数值. |
30 | RTSTimeStampInv | 无效的 RTSTimeStamp 数值 |
31 | DeltaTInv | 无效的 DeltaT数值 |
表 9. 状态2 – 定时状态错误
指示器
PIDE功能块有很多布尔量输出,它们可以用于状态或报警指示器。通过在功能块中点选或清除相应的复选框,就可以为特定的指示器选择或取消选择某些输出。有些指示器已经在这篇陈述中进行了回顾。如果某些输出没有选择,它们将不在功能块的管脚中显示。
这些指示器以及它们的触发值 在表10中进行说明。
描述 | 说明 |
CVInitializing | 初始化模式指示器。在指令第一次扫描的过程中,当CVInitReq 被置位时,CVInitializing 被置位,并且执行CVHealth的清除转换(由坏变好)。在指令被初始化完成后并且CVInitReq被清除,CVInitializing才会被清除。 |
CVHAlarm | CV 高报警指示器。当CV的计算值 > 100或CVHLimit时置位。 |
CVLAlarm | CV 低报警指示器。当CV的计算值< 0或CVLLimit时置位。 |
CVROCAlarm | CV变化速率 报警指示器。当CV的变化速率超过CVROCLimit时置位。 |
SPHAlarm | 设定点高报警指示器。当SP > SPHLimit时置位。 |
SPLAlarm | 设定点低报警指示器。当SP < SPHLimit时置位。 |
WindupHOut | 终止高指示器。当SP high、CV high或CV low极限(取决于控制动作)达到时置位。这个信号通常由主回路控制器的WindupHIn输入所使用,以防止它的输出终止。 |
WindupLOut | 终止低指示器。当SP high一块操、CV high或CV low极限(取决于控制动作)达到时置位。这个信号通常由主回路控制器的WindupLIn输入所使用,以防止它的输出终止。 |
RatioHAlarm | 比率高报警指示器。当比率 > RatioHLimit时置位。 |
RatioLAlarm | 比率低报警指示器。当比率< RatioLLimit时置位。 |
ZCDeadbandOn | 零交叉死区指示器。当置位时,CV的数值将不再变化。如果 ZCOff被置位,那么当偏差处于ZCDeadband 范围之内时,ZCDeadbandOn会置位。如果ZCOff 被清除,那么当偏差穿越零并且仍然处于ZCDeadband 范围之内时,ZCDeadbandOn会置位。当偏差超过死区范围或者当ZCDeadband = 0时,ZCDeadbandOn会被清除。 |
PVHAlarm | PV 高报警指示器。当PV => PVHLimit时置位。当 PV < (PVHLimit – PVDeadband)时清除。 |
PVLAlarm | PV 低报警指示器。当PV =< PVLLimit时置位。当PV > (PVLLimit + PVDeadband)时清除。 |
PVROCPosAlarm | PV正变化速率报警指示器。当PV变化速率的计算值=> PVROCPosLimit时置位。 |
PVROCNegAlarm | PV 负变化速率报警指示器。当PV变化速率的计算值=< (PVROCNegLimit x –1)时置位。 |
DevHHAlarm | 退出高-高报警指示器。当PV => (SP+DevHHLimit)时置位。当PV > (SP+DevHHLimit – DevDeadband时清除。 |
DevHAlarm | 退出高报警指示器。当PV => (SP+DevHLimit)时置位。当PV > (SP+DevHLimit – DevDeadband时清除。 |
DevLAlarm | 退出低报警指示器。当PV =< (SP-DevLLimit)时置位。当PV > (SP-DevHLimit + DevDeadband)时清除。 |
DevLLAlarm | 退出低-低报警指示器。当PV =< (SP-DevLLLimit)时置位。当PV > (SP-DevHLimit + DevDeadband)时清除。 |
表 10 – 报警指示器
发布评论