Поправил скрипт, поправил неточности в библиотеке
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
(*
|
||||
===============================================================================
|
||||
Project : PLC_Library
|
||||
Device : -
|
||||
Path : Преобразование значений
|
||||
Name : DWORD_OF_2WORD
|
||||
Type : FUNCTION
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION DWORD_OF_2WORD : DWORD
|
||||
VAR_INPUT
|
||||
W1 : WORD;
|
||||
W0 : WORD;
|
||||
END_VAR
|
||||
|
||||
(*----- IMPLEMENTATION -----*)
|
||||
DWORD_OF_2WORD := SHL(WORD_TO_DWORD(W1),16) OR WORD_TO_DWORD(W0);
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,23 @@
|
||||
(*
|
||||
===============================================================================
|
||||
Project : PLC_Library
|
||||
Device : -
|
||||
Path : Преобразование значений
|
||||
Name : DW_TO_REAL
|
||||
Type : FUNCTION
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION DW_TO_REAL : REAL
|
||||
VAR_INPUT
|
||||
X : DWORD;
|
||||
END_VAR
|
||||
VAR
|
||||
pt : POINTER TO REAL;
|
||||
END_VAR
|
||||
|
||||
(*----- IMPLEMENTATION -----*)
|
||||
pt := ADR(X);
|
||||
DW_TO_REAL := pt^;
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,29 @@
|
||||
(*
|
||||
===============================================================================
|
||||
Project : PLC_Library
|
||||
Device : -
|
||||
Path : Преобразование значений
|
||||
Name : NTC_termistor_T
|
||||
Type : FUNCTION
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION NTC_termistor_T : REAL
|
||||
(* Перевод сопротивдления в температуру для NTC-type термистолров *)
|
||||
VAR_INPUT
|
||||
Res: REAL; (* Значение сопротивления *)
|
||||
R0: REAL; (* Сопротивление при T0 *)
|
||||
T0: REAL; (* T0 *)
|
||||
b: REAL; (* Beta *)
|
||||
END_VAR
|
||||
VAR
|
||||
END_VAR
|
||||
|
||||
(*----- IMPLEMENTATION -----*)
|
||||
IF (Res <= REAL#0.0) OR (R0 <= REAL#0.0) OR (b = REAL#0.0) THEN
|
||||
NTC_termistor_T := REAL#0.0;
|
||||
RETURN;
|
||||
END_IF;
|
||||
NTC_termistor_T := (1.0 / ((1.0 / (T0 + 273.15)) + (1.0 / b) * LN(Res / R0))) - 273.15;
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,23 @@
|
||||
(*
|
||||
===============================================================================
|
||||
Project : PLC_Library
|
||||
Device : -
|
||||
Path : Преобразование значений
|
||||
Name : REAL_TO_DW
|
||||
Type : FUNCTION
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION REAL_TO_DW : DWORD
|
||||
VAR_INPUT
|
||||
X : REAL;
|
||||
END_VAR
|
||||
VAR
|
||||
pt : POINTER TO DWORD;
|
||||
END_VAR
|
||||
|
||||
(*----- IMPLEMENTATION -----*)
|
||||
pt := ADR(X);
|
||||
REAL_TO_DW := pt^;
|
||||
END_FUNCTION
|
||||
@@ -0,0 +1,20 @@
|
||||
(*
|
||||
===============================================================================
|
||||
Project : PLC_Library
|
||||
Device : -
|
||||
Path : Преобразование значений
|
||||
Name : WORD_OF_DWORD
|
||||
Type : FUNCTION
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION WORD_OF_DWORD : WORD
|
||||
VAR_INPUT
|
||||
in : DWORD;
|
||||
N : BYTE;
|
||||
END_VAR
|
||||
|
||||
(*----- IMPLEMENTATION -----*)
|
||||
WORD_OF_DWORD := DWORD_TO_WORD(SHR(in,SHL(n,4)));
|
||||
END_FUNCTION
|
||||
Reference in New Issue
Block a user