forked from komatic1/SCL_modular_PID
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCRP_OUT.scl
29 lines (29 loc) · 1.19 KB
/
CRP_OUT.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
FUNCTION_BLOCK FB103
TITLE =" change range periphery output"
AUTHOR : AUT_1
FAMILY : MODCONT
NAME : CRP_OUT
VERSION : " 1.0"
// reverse by komatic
(*
В блоке производится приведение значений сигнала в формате
чисел с плавающей точкой (формат внутреннего представления в
модульном регуляторе) в значение сигнала в формате периферии.
*)
VAR_INPUT
INV : REAL ; //входная переменная
FACTOR : REAL := 1.000000e+000; //умножающий фактор
OFFSET : REAL ; //сдвиг
END_VAR
VAR_OUTPUT
OUTV_PER : WORD ; //выходная переменная (периферия)
END_VAR
VAR_TEMP
rTemp : REAL ; //выходная переменная (переферия)
END_VAR
BEGIN
rTemp:=(FACTOR * INV + OFFSET) * 27648.0 / 100.0;
IF rTemp > 32767.0 THEN rTemp:= 32767.0; END_IF;
IF rTemp < -32768.0 THEN rTemp:=-32768.0; END_IF;
OUTV_PER:=INT_TO_WORD(REAL_TO_INT(rTemp));
END_FUNCTION_BLOCK