Добавил комментарии к блокам

This commit is contained in:
2026-07-31 12:20:05 +03:00
parent 9627b0abb9
commit a62be1c4bd
41 changed files with 190 additions and 213 deletions
+2 -3
View File
@@ -5,16 +5,15 @@
Path : Fastwel
Name : AIM721_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM721_AI : REAL
(*
Перевод значений входов модуля AIM721 из единиц АЦП в 0..20 мА
Перевод значений входов модуля AIM721 из единиц АЦП в 0..20 мА
*)
VAR_INPUT
ADC: DINT;
ADC : DINT; (* Единицы АЦП *)
END_VAR
(*----- IMPLEMENTATION -----*)
+2 -3
View File
@@ -5,16 +5,15 @@
Path : Fastwel
Name : AIM722_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM722_AI : REAL
(*
Перевод значений входов модуля AIM722 из единиц АЦП в 0..20 мА
Перевод значений входов модуля AIM722 из единиц АЦП в 0..20 мА
*)
VAR_INPUT
ADC: DINT;
ADC : DINT; (* Единицы АЦП *)
END_VAR
(*----- IMPLEMENTATION -----*)
+2 -3
View File
@@ -5,16 +5,15 @@
Path : Fastwel
Name : AIM723_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM723_AI : REAL
(*
Перевод значений входов модуля AIM723 из единиц АЦП в 4..20 мА
Перевод значений входов модуля AIM723 из единиц АЦП в 4..20 мА
*)
VAR_INPUT
ADC: DINT;
ADC : DINT; (* Единицы АЦП *)
END_VAR
(*----- IMPLEMENTATION -----*)
+34 -36
View File
@@ -5,50 +5,48 @@
Path : Fastwel
Name : AIM725_Status
Type : FUNCTION_BLOCK
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION_BLOCK AIM725_Status
(*
Модуль формирования статуса
Гистерезис по отключению и задержка по включению
-1 - нет связи с датчиком
0 - не определено
1 - норма
2 - предупредительный по нижнему уровню
3 - аварийный по нижнему уровню
4 - предупредительный по верхнему уровню,
5 - аварийный по верхнему уровню
Модуль формирования статуса
Гистерезис по отключению и задержка по включению
-1 - нет связи с датчиком
0 - не определено
1 - норма
2 - предупредительный по нижнему уровню
3 - аварийный по нижнему уровню
4 - предупредительный по верхнему уровню,
5 - аварийный по верхнему уровню
*)
VAR_INPUT
Input: REAL;
fail_hi: REAL:=3.402823466E+38;
delta_fail_hi: REAL := 0;
time_fail_hi: TIME :=t#0s;
warn_hi: REAL:=3.402823466E+38;
delta_warn_hi: REAL := 0;
time_warn_hi: TIME :=t#0s;
warn_low: REAL:=-3.402823466E+38;
delta_warn_low: REAL := 0;
time_warn_low: TIME :=t#0s;
fail_low: REAL:=-3.402823466E+38;
delta_fail_low: REAL := 0;
time_fail_low: TIME :=t#0s;
Modul_status: BYTE;
Chanel_num: BYTE;
Input: REAL; (* Контролируемое значение *)
fail_hi: REAL:=3.402823466E+38; (* Порог аварии по верхнему уровню *)
delta_fail_hi: REAL := 0; (* Гистерезис возврата из fail_hi *)
time_fail_hi: TIME :=t#0s; (* Выдержка времени на срабатывание fail_hi *)
warn_hi: REAL:=3.402823466E+38; (* Порог предупреждения по верхнему уровню *)
delta_warn_hi: REAL := 0; (* Гистерезис возврата из warn_hi *)
time_warn_hi: TIME :=t#0s; (* Выдержка времени на срабатывание warn_hi *)
warn_low: REAL:=-3.402823466E+38; (* Порог предупреждения по нижнему уровню *)
delta_warn_low: REAL := 0; (* Гистерезис возврата из warn_low *)
time_warn_low: TIME :=t#0s; (* Выдержка времени на срабатывание warn_low *)
fail_low: REAL:=-3.402823466E+38; (* Порог аварии по нижнему уровню *)
delta_fail_low: REAL := 0; (* Гистерезис возврата из fail_low *)
time_fail_low: TIME :=t#0s; (* Выдержка времени на срабатывание fail_low *)
Modul_status: BYTE; (* Байт статуса модуля АЦП (биты диагностики по каналам) *)
Chanel_num: BYTE; (* Номер канала модуля (1 или 2), определяет какие биты Modul_status проверяются *)
END_VAR
VAR_OUTPUT
Status: INT;
T_mod: INT;
Status: AnalogValueState; (* Итоговый статус аналогового значения *)
T_mod: INT; (* Значение Input, приведенное к INT; -500 при отсутствии связи (no_signal) *)
END_VAR
VAR
(* !!! ВНУТРЕННИЕ НЕВЫХОДНЫЕ ПЕРЕМЕННЫЕ!!! *)
TON_fail_hi: TON;
TON_warn_hi: TON;
TON_warn_low: TON;
TON_fail_low: TON;
(* !!! ВНУТРЕННИЕ ВЫХОДНЫЕ ПЕРЕМЕННЫЕ!!! *)
fail_hi_st: BOOL;
warn_hi_st: BOOL;
normal_st: BOOL;
@@ -75,18 +73,18 @@ IF TON_warn_hi.Q THEN warn_hi_st := TRUE; ELSIF (Input < warn_hi - delta_warn_hi
normal_st := (NOT(no_signal_st) AND NOT(fail_low_st) AND NOT(warn_low_st) AND NOT(warn_hi_st) AND NOT(fail_hi_st));
IF no_signal_st THEN
Status := - INT#1;
Status := AnalogValueState.no_signal;
ELSIF fail_hi_st THEN
Status := INT#5;
Status := AnalogValueState.fail_hi;
ELSIF fail_low_st THEN
Status := INT#3;
Status := AnalogValueState.fail_low;
ELSIF warn_hi_st THEN
Status := INT#4;
Status := AnalogValueState.warn_hi;
ELSIF warn_low_st THEN
Status := INT#2;
Status := AnalogValueState.warn_low;
ELSIF normal_st THEN
Status := INT#1;
Status := AnalogValueState.normal;
ELSE
Status := INT#0;
Status := AnalogValueState.undefined;
END_IF;
END_FUNCTION_BLOCK
+2 -3
View File
@@ -5,16 +5,15 @@
Path : Fastwel
Name : AIM726_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM726_AI : REAL
(*
Перевод значений входов модуля AIM726 из единиц АЦП в 0..40 В
Перевод значений входов модуля AIM726 из единиц АЦП в 0..40 В
*)
VAR_INPUT
ADC : DWORD; (*Единицы АЦП*)
ADC : DWORD; (* Единицы АЦП *)
END_VAR
(*----- IMPLEMENTATION -----*)
AIM726_AI := DWORD_TO_REAL(ADC) * REAL#4.768372E-006;
+1 -2
View File
@@ -5,13 +5,12 @@
Path : Fastwel
Name : AIM727_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM727_AI : REAL
(*
Перевод значений входов модуля AIM727 из единиц АЦП в 0..40 V
Перевод значений входов модуля AIM727 из единиц АЦП в 0..40 V
*)
VAR_INPUT
ADC: DINT; (*Единицы АЦП*)
+2 -6
View File
@@ -5,20 +5,16 @@
Path : Fastwel
Name : AIM730_AO
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM730_AO : WORD
(*
Перевод значений 0..20 мА или 4..20 мА в единицы АЦП выходов модуля AIM730
Диапазон:
RANGE = 0 - 0..20 мА
RANGE = 1 - 4..20 мА
Перевод значений 0..20 мА или 4..20 мА в единицы АЦП выходов модуля AIM730
*)
VAR_INPUT
DAC : REAL; (*Миллиамперы*)
RANGE : BYTE; (*Диапазон: 0..20 мА - 0; 4..20 мА - 1 *)
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;
+2 -6
View File
@@ -5,20 +5,16 @@
Path : Fastwel
Name : AIM731_AO
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM731_AO : WORD
(*
Перевод значений -10..+10 В или 0..+10 В в единицы АЦП выходов модуля AIM731
Диапазон:
RANGE = 0 - -10..+10 В
RANGE = 1 - 0..+10 В
Перевод значений -10..+10 В или 0..+10 В в единицы АЦП выходов модуля AIM731
*)
VAR_INPUT
DAC : REAL; (*Вольты*)
RANGE : BYTE; (*Диапазон -10..+10 В - 0; 0..+10 В - 1 *)
RANGE : BYTE; (*Диапазон: 0 - -10..+10 В; 1 - 0..+10 В *)
END_VAR
(*----- IMPLEMENTATION -----*)
CASE RANGE OF
+3 -9
View File
@@ -5,23 +5,17 @@
Path : Fastwel
Name : AIM791_AI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION AIM791_AI : REAL
(*
Перевод значений входов модуля AIM791 из единиц АЦП в 0..5 мА / 0..20 мА / 4..20 мА
Диапазон:
RANGE = 0 - 0..5 мА
RANGE = 1 - 0..20 мА
RANGE = 2 - 4..20 мА
Перевод значений входов модуля AIM791 из единиц АЦП в 0..5 мА / 0..20 мА / 4..20 мА
*)
VAR_INPUT
ADC: WORD;
RANGE: BYTE := 0;
ADC: WORD; (* Значение АЦП *)
RANGE: BYTE := 0; (* Диапазон: 0 - 0..5 мА; 1 - 0..20 мА; 2 - 4..20 мА *)
END_VAR
(*----- IMPLEMENTATION -----*)
CASE RANGE OF
0 : AIM791_AI := WORD_TO_REAL(ADC) * REAL#7.820248722E-005;
+4 -3
View File
@@ -5,14 +5,15 @@
Path : Fastwel
Name : DIM764_DI
Type : FUNCTION
Exported : 2026-07-31 11:16:16
===============================================================================
*)
FUNCTION DIM764_DI : REAL
(*На выходе - Частота в Гц*)
(*
На выходе - Частота в Гц
*)
VAR_INPUT
IN: DWORD;
IN: DWORD; (* Значение периода/интервала с модуля, единицы АЦП *)
RANGE: BYTE; (* 0-Period; 1-Interval; *)
END_VAR
(*----- IMPLEMENTATION -----*)