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
| Name | Type | Range / Units | Description |
|---|---|---|---|
| Module_ID | USINT | 1 - 15 | Unique identifier of the AI module. |
| Ch0 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 0. |
| Ch1 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 1. |
| Ch2 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 2. |
| Ch3 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 3. |
| Ch4 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 4. |
| Ch5 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 5. |
| Ch6 | UINT | 4,000 - 20,000 µA 0 - 10,000 mV | Input for channel 6. |
| Ch7 | UINT | 4,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
| Name | Type | Description |
|---|---|---|
| STS_Done | BOOL | TRUE when all AI data has been successfully retrieved from the module. |
| STS_Failed | BOOL | TRUE if the AI data read operation failed. |
| STS_Fault_Code | USINT | Diagnostic code indicating the reason for failure. |
Fault Codes
| Code | Meaning | Description |
|---|---|---|
| 97 | Module Faulted | The AI module reported an internal fault. |
| 98 | Module Mismatch | The detected module type does not match the expected AI module. |
| 99 | Module Not Found | The 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