Files

28 lines
849 B
Smalltalk

(*
===============================================================================
Project : PLC_Library
Device : -
Path : Fastwel
Name : AIM730_AO
Type : FUNCTION
===============================================================================
*)
FUNCTION AIM730_AO : WORD
(*
Перевод значений 0..20 мА или 4..20 мА в единицы АЦП выходов модуля AIM730
*)
VAR_INPUT
DAC : REAL; (*Миллиамперы*)
RANGE : BYTE; (*Диапазон: 0 - 0..20 мА; 1 - 4..20 мА *)
END_VAR
(*----- IMPLEMENTATION -----*)
IF (RANGE = 1) AND (DAC < 4) THEN AIM730_AO := WORD#4; RETURN;END_IF;
CASE RANGE OF
0 : AIM730_AO := REAL_TO_WORD(DAC/REAL#0.00030518);
1 : AIM730_AO := REAL_TO_WORD((DAC - REAL#4)/REAL#0.00024414435);
ELSE
AIM730_AO := WORD#0;
END_CASE;
END_FUNCTION