Skip to content

AO (Analog Output) Block Documentation

Overview

The AO block converts a real-valued analog signal (e.g., a PID output) into a hardware-compatible raw value to be sent to an analog output module (DAC). The output can be scaled and reversed, and alarms are triggered based on configured thresholds with hysteresis and acknowledgment logic.

This block can be used for: - Valve or actuator control - VFD output signal - Pressure or level control - Process output signal representation


AO Logic Block Illustration

The following illustration shows how the AO block is linked with the physical analog output channel. It receives inputs from logic (e.g., PID output) and sends processed, scaled, raw values to the hardware.

../../Images/Programing_Manual/Logic_Manual/AO/Bl_AO.png

Showing the AO block with AO channel in the above picture.

../../Images/Programing_Manual/Logic_Manual/AO/Signal_AO.png

In the above picture, we are showing that how to use the AO block

Pins Information

Signal Type Direction Description
AO_IN REAL Input Analog value from logic (e.g., PID block output)
IN_LO REAL Input Minimum Input value (e.g., 0.0)
IN_HI REAL Input Maximum Input value (e.g., 100.0)
OP_LO WORD Input Minimum raw Output value for AO Channel
OP_HI WORD Input Maximum raw Output value for AO Channel
DIR BOOL Input FALSE = Direct scaling, TRUE = Reverse
ACK BOOL Input Alarm acknowledge input
RTN_ACK_REQD BOOL Input Return-to-normal condition requires acknowledgment if TRUE
OPLL REAL Input Very low limit of process value
OPLO REAL Input Low limit of process value
OPHI REAL Input High limit of process value
OPHH REAL Input Very high limit of process value
HYST REAL Input Hysteresis for alarm reset
OP WORD Output Final raw value to be written to DAC module
OP_LL_ALM BOOL Output Alarm: TRUE if AO_IN ≤ OPLL
OP_LO_ALM BOOL Output Alarm: TRUE if AO_IN ≤ OPLO
OP_HI_ALM BOOL Output Alarm: TRUE if AO_IN ≥ OPHI
OP_HH_ALM BOOL Output Alarm: TRUE if AO_IN ≥ OPHH
Acknowledged BOOL Output Becomes TRUE after alarm is acknowledged

Functional Description

Input Scaling Logic

The AO block linearly maps AO_IN from the engineering range [IN_LO … IN_HI] to a corresponding raw value between [OP_LO … OP_HI].

Alarm Handling

The AO block monitors AO_IN for the following alarm conditions:

Condition Alarm Bit
AO_IN <= OPLL OP_LL_ALM = TRUE
AO_IN <= OPLO OP_LO_ALM = TRUE
AO_IN >= OPHI OP_HI_ALM = TRUE
AO_IN >= OPHH OP_HH_ALM = TRUE

Example:

If OPHH = 100.0 and HYST = 2.0, then:

  • Alarm triggers when AO_IN >= 100.0
  • Alarm resets when AO_IN < 98.0

Alarm Acknowledgment Logic

  • When any alarm becomes active, Acknowledged = FALSE
  • Operator must set ACK = TRUE to acknowledge it
  • If RTN_ACK_REQD = TRUE, the alarm remains latched even after AO_IN normalizes, and must be acknowledged manually

Typical Application Example

Parameter Example Value Description
AO_IN 62.5 PID output value
IN_LO 0.0 Minimum setpoint (engineering unit)
IN_HI 100.0 Maximum setpoint (engineering unit)
OP_LO 800 Raw output for 0% (e.g., 4 mA)
OP_HI 4000 Raw output for 100% (e.g., 20 mA)
DIR FALSE Output action (Direct/Reverse)

Advanced View

  • Configure IN_LO, IN_HI, OP_LO, OP_HI
  • Set alarm thresholds (OPLL, OPLO, etc.)
  • Configure RTN_ACK_REQD behavior

Summary

Feature Description
Input to Output Scales REAL input to WORD output using defined engineering and raw ranges
Direction Selectable direct/reverse output
Alarm Generation 4 levels of process alarm detection
Hysteresis Reduces flickering by buffering alarm limits
Acknowledgment Manual ACK with auto/manual return-to-normal control
Faceplate Support Structured views for Operator, Technician, Engineer

Best Practices

  • Always scale IN_LO/HI and OP_LO/HI based on actual signal range.
  • Keep HYST small but effective (e.g., 1–5% of signal range).
  • Display OP and alarm bits on HMI faceplate.
  • Use consistent logic for ACK and RTN_ACK_REQD across all analog signals.

Notes

  • For current output use (4–20mA), scale OP_LO = 800, OP_HI = 4000
  • Ensure AO_IN is bounded within [IN_LO, IN_HI] to avoid incorrect scaling