VAR_TEMP
RawVal : INT; //原始转换值
Range : INT; //范围值
MaxVal : REAL := 0; //最大值
MinVal : REAL := 0; //最小值
END_VAR
//模拟量输入通道配置
CASE AI_Channel OF
1: RawVal := AI_1;
2: RawVal := AI_2;
3: RawVal := AI_3;
4: RawVal := AI_4;
ELSE
//输出错误信息
DebugText(\"Invalid AI channel\");
RawVal := 0;
END_CASE
//模拟量输入范围配置
CASE AI_Range OF
1: Range := 20000; //4-20mA
2: Range := 20000; //0-20mA
3: Range := 5000; //0-5V
ELSE
//输出错误信息
DebugText(\"Invalid AI range\");
Range := 0;
END_CASE
//计算模拟量输入值
IF RawVal <= Range THEN
AI_Val := ((MaxVal - MinVal) / Range) * RawVal;
ELSE
//输出错误信息
DebugText(\"Invalid AI value\");
AI_Val := 0;
END_IF