PAO反馈处理
过程模拟输出 (PAO) 指令评估设备所提供的限位开关的反馈信号。该指令报告设备在下列情况之一下处于“打开”状态:
- 指令处于虚拟模式下,使用并激活“打开”限位开关。
- 指令不处于虚拟模式下,不使用“打开”限位开关,使用但不激活“关闭”限位开关。
- 指令处于虚拟模式下,Val_Pos > Cfg_MaxClosedPos。
- 不使用任何限位开关,Val_Pos > Cfg_MaxClosedPos。
该指令报告设备在下列情况之一下处于“关闭”状态:
- 指令不处于虚拟模式下,使用并激活“关闭”限位开关。
- 指令不处于虚拟模式下,使用但不激活“打开”限位开关,不使用“关闭”限位开关。
- 指令处于虚拟模式下,Val_Pos ≤ Cfg_MaxClosedPos。
- 不使用任何限位开关,Val_Pos ≤ Cfg_MaxClosedPos。
下图显示了用于处理反馈的指令逻辑,该反馈来自限位开关和设备/传动装置确认位置。

下图显示了输入/输出 (IO) 故障、设备故障和偏差超出范围报警条件所涉及的逻辑:



脉冲输出
如果为脉冲输出配置了 PAO 指令 (Cfg_HasPulseOut=1),则该指令可用于与脉冲驱动设备(通常是阀)的连接。该指令生成脉冲,脉冲的持续时间由指令计算的所需位置 (Val_CVOut) 与设备确认的实际位置 (Val_Pos) 之间的位置误差差值 (Val_Dev) 进行调节。实际位置由设备通过反馈 (Inp_PosFdbk) 提供,或者在物理反馈不可用或使用时由指令进行模拟。
脉冲按循环生成,每个循环一个脉冲。脉冲不能过短、过长,否则无法最大程度地降低设备、装置或传动装置的磨损。用户将这些时间限制定义为 Cfg_MinOnTime 和 Cfg_MaxOnTime。循环持续时间 Cfg_CycleTime 也是用户定义的。
该指令使用三个参数,这些参数与设备或传动装置的假定行为、设备在打开时移动的速率 Cfg_OpenRate、设备在关闭时移动的速率 Cfg_CloseRate,以及设备或传动装置在受控打开或关闭时设备或传动装置的反应延迟 Cfg_DeadTime 相关联。如果设备或传动装置在响应“打开/关闭”脉冲时出现延迟(例如因粘滞),则通过输入 Cfg_DeadTime 来补偿延迟。未补偿的延迟会产生稳态位置误差。
重要提示:
如果无法为 Cfg_OpenRate、Cfg_CloseRate 和 Cfg_DeadTime 设置正确的值,可能导致设备或传动装置发生意外移动。
脉冲逻辑提供了位置控制回路的功能。脉冲宽度是为循环计算的。
对于 Val_Dev/DIAGRAM_PATH_SPECIFIER>0,打开脉冲时间的计算方式如下:
PulseDuration = min(Val_Dev/Cfg_OpenRate + Cfg_DeadTime, Cfg_MaxOnTime),
Val_OpenTime = PulseDuration(适用于 PulseDuration ≥ Cfg_MinOnTime 的情况),
Val_OpenTime = 0(适用于 PulseDuration < Cfg_MinOnTime 的情况)。
对于 Val_Dev <0,脉冲关闭时间的计算方式如下:
PulseDuration = min(-Val_Dev/Cfg_CloseRate + Cfg_DeadTime, Cfg_MaxOnTime),
Val_CloseTime = PulseDuration(适用于 PulseDuration ≥ Cfg_MinOnTime 的情况),
Val_CloseTime = 0(适用于 PulseDuration < Cfg_MinOnTime 的情况)。
下图提供了不同配置参数设置下,设备/传动装置对所需位置步进 (Val_CVOut) 的响应示例。
该图展示了由指令参数的实际设置而产生的循环 OpenTime。对于输入的 Cfg_OpenRate 与设备/传动装置的实际打开速率之间的不同关系,存在三种情况。

当设备开始移动或反向时,指令按配置的死区时间 (Cfg_DeadTime) 对计算的 Val_Pos 进行延迟。
下图展示了由指令参数的实际设置和设备或传动装置对命令延迟响应而产生的循环 OpenTime。下图显示了两种情况:忽略延迟并补偿延迟。

下图显示了一系列脉冲来表示各种指令参数设置和传动装置行为。在下图中,传动装置的恒定速度等于移动时的 Cfg_OpenRate 或 Cfg_CloseRate。

如果配置的速率 Cfg_OpenRate 比设备的物理速率快,并且设备提供了位置反馈,则位置响应会有所不同。接近所需位置时,“打开”脉冲会变短,直至超出配置的最短打开时间 (Cfg_MinOnTime),从而防止指令继续产生脉冲。
不使用位置反馈时,请勿使用指令的脉冲功能,Val_Pos 由指令计算,配置的速率 Cfg_OpenRate 与设备的物理速率不同。

重要提示:
指令的扫描时间必须比 Cfg_CycleTime 短得多。如果不遵循此建议,可能导致设备或传动装置意外移动。
下图显示了较长的扫描时间如何影响由指令脉冲输出驱动的设备或传动装置的移动。


对于为常开限位开关提供的信号,下图显示了与设备或传动装置位置相关的限位设置之间的关系。

位置反馈仿真
当位置反馈 Inp_PosFdbk 不可用时,将计算位置 Val_Pos。在虚拟模式下,或者如果位置反馈不可用,则位置反馈是根据上一次扫描位置、实际扫描时间以及配置的打开(关闭)速率计算的:
Val_Pos = Val_Pos + ScanTime*Cfg_OpenRate(打开时),
Val_Pos = Val_Pos - ScanTime*Cfg_CloseRate(关闭时),
Val_Pos = max(min(Val_Pos,Cfg_CVEUMax),Cfg_CVEUMin)。
当未处于虚拟模式且位置反馈不可用时,指令将依靠限位开关可用性,在达到限值时重置所计算的位置。如果不激活“打开”限位开关,且不激活或不使用“关闭”限位开关,则 Val_Pos 设置为 Cfg_CVEUMax。如果不激活“关闭”限位开关,且不激活或不使用“打开”限位开关,则 Val_Pos 设置为 Cfg_CVEUMin。
干扰
该指令可请求设备在无位置反馈的情况下增加位置值。用户请求干扰以向输出发脉冲信号。脉冲输出在可配置 Cfg_BumpTime ≤ Cfg_CycleTime 时间内接通,如下图所示。
在下列情况下,该指令准备执行“干扰打开”或“干扰关闭”命令:
- 干扰计时器大于零(零表示禁用干扰功能),
- 位置反馈是无限值而非数字,或者发生了输入/输出 (I/O) 故障,或者发生了设备故障,
- 设备处于操作员或维护模式,
- 之前的干扰操作未处于活动状态,
- 对于目标行程方向,设备未处于行程末尾,或者未使用限位开关。

操作员命令请求确认
PAO 指令允许操作员使用操作员设置 OSet_CV 和命令请求 OCmd_BumpOpen、OCmd_BumpClose。强制安全性可能要求在所选命令执行之前确认或取消请求。该指令检查对 Cfg_CnfrmReqd 进行检查的安全规则。如果 Cfg_CnfrmReqd= 0,则无需确认,请求立即执行。如果 Cfg_CnfrmReqd= 1,该指令会等待确认 OCmd_CmdCnfrm=1 和/或取消 OCmd_CmdCncl=1。对于 Cfg_CnfrmReqd=2 或 3,需要使用 eSignature 才能启用确认和取消操作。
提供反馈