Get_AI_Data

Overview

The Get_AI_Data function block retrieves the analog values for the AI module’s input channels. Each of the eight channels can be configured for either voltage or current input.

Module_ID           :=  (USINT)
Ch0                 :=  (UINT)
Ch1                 :=  (UINT)
Ch2                 :=  (UINT)
Ch3                 :=  (UINT)
Ch4                 :=  (UINT)
Ch5                 :=  (UINT)
Ch6                 :=  (UINT)
Ch7                 :=  (UINT)
STS_Done            =>  (BOOL)
STS_Failed          =>  (BOOL)
STS_Fault_Code      =>  (USINT)

Interface

Inputs

NameTypeRange / UnitsDescription
Module_IDUSINT1 - 15Unique identifier of the AI module.
Ch0UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 0.
Ch1UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 1.
Ch2UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 2.
Ch3UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 3.
Ch4UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 4.
Ch5UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 5.
Ch6UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 6.
Ch7UINT4,000 - 20,000 µA
0 - 10,000 mV
Input for channel 7.
💡 Signal Type

Each channel uses only one signal type (V or mA), based on the module configuration. Any value set for the inactive type is ignored.

Outputs

NameTypeDescription
STS_DoneBOOLTRUE when all AI data has been successfully retrieved from the module.
STS_FailedBOOLTRUE if the AI data read operation failed.
STS_Fault_CodeUSINTDiagnostic code indicating the reason for failure.

Fault Codes

CodeMeaningDescription
97Module FaultedThe AI module reported an internal fault.
98Module MismatchThe detected module type does not match the expected AI module.
99Module Not FoundThe specified Module_ID is not part of the current hardware configuration.

Example:

(* Define custom data type *)
TYPE
  AI_8CH : STRUCT
    Ch0 : UINT;
    Ch1 : UINT;
    Ch2 : UINT;
    Ch3 : UINT;
    Ch4 : UINT;
    Ch5 : UINT;
    Ch6 : UINT;
    Ch7 : UINT;
  END_STRUCT;
END_TYPE


PROGRAM PROG_Read_AI
  VAR_EXTERNAL
    Module4_AI : AI_8CH;
    Module4_AI_Done   : BOOL;
    Module4_AI_Failed : BOOL;
    Module4_AI_Fault  : USINT;
  END_VAR
  VAR
    AI_Mode_Block : Set_AI_Mode;
    AI_Read_Instance : Get_AI_Data;
  END_VAR

    AI_Mode_Block(
        Module_ID := 4,
        Ch0_Mode := TRUE,       (* 0–10V *) 
        Ch1_Mode := TRUE,       (* 0–10V *)
        Ch2_Mode := FALSE,      (* 4–20mA *) 
        Ch3_Mode := FALSE,      (* 4–20mA *)
        Ch4_Mode := FALSE,      (* 4–20mA *)
        Ch5_Mode := FALSE,      (* 4–20mA *)
        Ch6_Mode := FALSE,      (* 4–20mA *)
        Ch7_Mode := FALSE       (* 4–20mA *)
        );
        
  (* Read from Module 4 *)
  AI_Read_Instance(Module_ID := 4);

  (* Map function block outputs to global structure *)
  Module4_AI.Ch0 := AI_Read_Instance.Ch0;
  Module4_AI.Ch1 := AI_Read_Instance.Ch1;
  Module4_AI.Ch2 := AI_Read_Instance.Ch2;
  Module4_AI.Ch3 := AI_Read_Instance.Ch3;
  Module4_AI.Ch4 := AI_Read_Instance.Ch4;
  Module4_AI.Ch5 := AI_Read_Instance.Ch5;
  Module4_AI.Ch6 := AI_Read_Instance.Ch6;
  Module4_AI.Ch7 := AI_Read_Instance.Ch7;

  (* Optional: expose status to globals for diagnostics *)
  Module4_AI_Done   := AI_Read_Instance.STS_Done;
  Module4_AI_Failed := AI_Read_Instance.STS_Failed;
  Module4_AI_Fault  := AI_Read_Instance.STS_Fault_Code;
END_PROGRAM


CONFIGURATION Config0
  RESOURCE PLC ON PLC
    VAR_GLOBAL
      Module4_AI : AI_8CH;
      Module4_AI_Done   : BOOL;
      Module4_AI_Failed : BOOL;
      Module4_AI_Fault  : USINT;
    END_VAR
    TASK Task_50ms(INTERVAL := T#50ms, PRIORITY := 1);
    PROGRAM Read_AI WITH Task_50ms : PROG_Read_AI;
  END_RESOURCE
END_CONFIGURATION