forked from komatic1/SCL_modular_PID
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SPLT_RAN.scl
36 lines (36 loc) · 1.3 KB
/
SPLT_RAN.scl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
FUNCTION_BLOCK FB124
TITLE =" split ranging"
AUTHOR : AUT_1
FAMILY : MODCONT
NAME : SPLT_RAN
VERSION : " 1.0"
// reversed by komatic
(*
Переключатель диапазонов.
Выполняет автоматическое переключение пределов измерений.
*)
VAR_INPUT
INV : REAL ; //входная переменная
STR_INV : REAL ; //начало диапазона INV
EDR_INV : REAL := 5.000000e+001; //конец диапазона INV
STR_OUTV : REAL ; //начало диапазона OUTV
EDR_OUTV : REAL := 1.000000e+002; //конец диапазона OUTV
END_VAR
VAR_OUTPUT
SPL_LMNG : STRUCT
PID_OUTV : REAL ; //PID выходная переменная
PID_SCTR : REAL ; //PID выходная переменная для шагового регулятора
END_STRUCT ;
END_VAR
BEGIN
IF INV <= STR_INV
THEN
SPL_LMNG.PID_OUTV:=STR_OUTV;
ELSIF INV >= EDR_INV
THEN
SPL_LMNG.PID_OUTV:=EDR_OUTV;
ELSE
SPL_LMNG.PID_OUTV:=(((EDR_OUTV - STR_OUTV) * INV) / (EDR_INV - STR_INV) + STR_OUTV) -
((EDR_OUTV - STR_OUTV) * STR_INV) / (EDR_INV - STR_INV);
END_IF;
END_FUNCTION_BLOCK