PAO feedback processing

The Process Analog Output (PAO) instruction evaluates feedback signals from limit switches provided by the device. The instruction reports device Open in one of these conditions:
  • Instruction is in virtual and Open limit switch is used and activated.
  • Instruction is not in virtual, Open limit switch is not used, Closed limit is used but not activated.
  • Instruction is in virtual, and Val_Pos > Cfg_MaxClosedPos.
  • No limit switch in use and Val_Pos > Cfg_MaxClosedPos.
The instruction reports device Closed in one of these conditions:
  • Instruction is not in virtual, Closed limit switch is used and activated.
  • Instruction is not in virtual, Open limit switch used and not activated, Closed limit switch not used.
  • Instruction is in virtual and Val_Pos ≤ Cfg_MaxClosedPos.
  • No limit switch in use and Val_Pos ≤ Cfg_MaxClosedPos.
Instruction logic used in processing of feedback from limit switches and device/actuator confirmed position is shown in this diagram.
PAO_FeedbackProcessing1
These diagrams show logic involved in IO fault, device fault, and deviation out of range alarm conditions:
PAO_FeedbackAlarmConditions1
PAO_FeedbackAlarmConditions1
PAO_FeedbackAlarmConditions1
Pulse Output
The PAO instruction can be used in connection with a pulse-driven device, typically a valve, if the instruction is configured for pulse outputs (Cfg_HasPulseOut=1). The instruction generates pulses with duration modulated by the position error, difference (Val_Dev) between desired position calculated by the instruction (Val_CVOut), and device confirmed actual position (Val_Pos). Actual position is either provided by the device via feedback (Inp_PosFdbk) or simulated by the instruction if the physical feedback is not available or used.
Pulses are generated in cycles, one pulse per cycle. Pulses cannot be too short and too long to minimize wear of the equipment, device, or actuator. These time constraints are user defined as Cfg_MinOnTime and Cfg_MaxOnTime. Cycle duration Cfg_CycleTime is also user defined.
The instruction uses three parameters associated with assumed behavior of the device or actuator, rate at which the device moves when opening Cfg_OpenRate, rate at which the device moves when closing Cfg_CloseRate, and delay Cfg_DeadTime in device or actuator reaction when the device or actuator is commanded to open or close. If the device or actuator responds to the Open/Close pulse with delay, e.g. due to stiction, compensate for the delay by entering Cfg_DeadTime. Uncompensated delay results in steady state position error.
IMPORTANT:
Failure to set correct values for Cfg_OpenRate, Cfg_CloseRate, and Cfg_DeadTime can result in undesired moves of the device or actuator.
The pulsing logic provides functionality of a position control loop. Pulse width is calculated for a cycle.
For Val_Dev /DIAGRAM_PATH_SPECIFIER>0 open pulse time is calculated as:
PulseDuration = min(Val_Dev/Cfg_OpenRate + Cfg_DeadTime, Cfg_MaxOnTime),
Val_OpenTime = PulseDuration, for PulseDuration ≥ Cfg_MinOnTime,
Val_OpenTime = 0, for PulseDuration < Cfg_MinOnTime.
For Val_Dev <0 pulse close time is calculated as:
PulseDuration = min(-Val_Dev/Cfg_CloseRate + Cfg_DeadTime, Cfg_MaxOnTime),
Val_CloseTime = PulseDuration, for PulseDuration ≥ Cfg_MinOnTime,
Val_CloseTime = 0, for PulseDuration < Cfg_MinOnTime.
These diagrams provide examples of device/actuator response to step in desired position, Val_CVOut, for different settings of configuration parameters.
This diagram demonstrates OpenTime for a cycle resulting from actual setting of instruction parameters. Three cases are shown for different relations between entered Cfg_OpenRate compared to the real open rate of the device/actuator.
PAO_FeedbackAlarmConditions1
When the device starts to move or reverses direction, the instruction delays calculated Val_Pos by configured dead time (Cfg_DeadTime).
This figure demonstrates OpenTime for a cycle resulting from actual setting of instruction parameters and a device or actuator responding to the command with delay. The diagram shows two cases: delay ignored and delay compensated.
PAO_FeedbackAlarmConditions1
The following figures show a sequence of pulses for various instruction parameter settings and actuator behavior. In this diagram, the constant speed of the actuator is equal to Cfg_OpenRate or Cfg_CloseRate when in move.
PAO_FeedbackAlarmConditions1
When configured rate Cfg_OpenRate is faster than the physical rate of the device, and position feedback is provided by the device, the position response differs. The Open pulse gets shorter when approaching the desired position until it violates the configured minimal On time (Cfg_MinOnTime), preventing the instruction from continuing pulsing.
Do not use the pulsing function of the instruction when position feedback is not used, Val_Pos is calculated by the instruction, and configured rate Cfg_OpenRate differs from physical rate of the device.
PAO_FeedbackAlarmConditions1
IMPORTANT:
Scan time of the instruction must be much shorter than Cfg_CycleTime. Failure to follow this recommendation can result in undesired movement of the device or actuator.
These figures show how larger scan time affects moves of the device or actuator driven by instruction pulse outputs.
PAO_FeedbackAlarmConditions1
PAO_FeedbackAlarmConditions1
The relationship between limit settings associated with device or actuator position is shown in the figure below for signals provided by normally open limit switches.
PAO_FeedbackAlarmConditions1
Position feedback simulation
When position feedback Inp_PosFdbk is not available, position Val_Pos is calculated. In virtual, or if the position feedback is not available, the position feedback is calculated from the last scan position, actual scan time, and configured open (closed) rate:
Val_Pos = Val_Pos + ScanTime*Cfg_OpenRate when opening,
Val_Pos = Val_Pos - ScanTime*Cfg_CloseRate when closing,
Val_Pos = max(min(Val_Pos,Cfg_CVEUMax),Cfg_CVEUMin).
When not in virtual and when position feedback is not available, the instruction relies on limit switch availability to reset the calculated position when limits are reached. Val_Pos is set to Cfg_CVEUMax if Open limit switch is activated and Closed limit switch is not active or not used. Val_Pos is set to Cfg_CVEUMin if Closed limit switch is activated and Open limit switch is not active or not used.
Bumping
The instruction can request the device to increment its position without position feedback. The user requests a bump to pulse the output. The pulse output is energized for configurable duration of time Cfg_BumpTime ≤ Cfg_CycleTime, as shown in the figure below.
The instruction is ready to execute bump open or bump close command when:
  • Bump timer is greater than zero (zero disables the bump function), and
  • Position feedback is infinite, not a number, or there is an I/O fault, or there is a device fault, and
  • Device is in Operator or Maintenance mode, and
  • Previous bump operation is not active, and
  • Device is not at the end of travel, or limit switch is not being used, for the target direction of travel.
PAO_FeedbackAlarmConditions1
Operator command request confirmation
The PAO instruction allows an operator to use operator setting OSet_CV and command requests OCmd_BumpOpen, OCmd_BumpClose. Enforced security might require the request to be confirmed or canceled before the selected command executes. The instruction checks the security rules inspecting Cfg_CnfrmReqd. If Cfg_CnfrmReqd=0, no confirmation is required and the request executes immediately. If Cfg_CnfrmReqd=1 the instruction waits for confirmation OCmd_CmdCnfrm=1 and/or cancellation OCmd_CmdCncl=1. For Cfg_CnfrmReqd=2 or 3, eSignature is needed before the confirmation and cancellation is enabled.
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.