You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
329 lines
6.3 KiB
329 lines
6.3 KiB
4 months ago
|
FUNCTION BS_Scale : REAL
|
||
|
VAR_INPUT
|
||
|
Input :INT;
|
||
|
Input_Type :BYTE; (*1,PT1000; 2,2-10V/4-20ma 3,0-10V/0-20ma *)
|
||
|
PVL :INT;
|
||
|
PVH :INT;
|
||
|
ROffset :INT; (*补偿值*)
|
||
|
Offset :REAL; (*补偿值*)
|
||
|
END_VAR
|
||
|
|
||
|
VAR
|
||
|
Input_Isolate:INT;
|
||
|
END_VAR
|
||
|
(** {* **)
|
||
|
(** **)
|
||
|
(** ʱ �䣺20210610 **)
|
||
|
(** �� ����1.2 **)
|
||
|
(** �� �ߣ�Ҧ�� **)
|
||
|
(** �� �ƣ�AIAOͨ������ת������ **)
|
||
|
(** ˵ ������������ת���ĺ��� **)
|
||
|
(** �� ע�� **)
|
||
|
(** 1.0 �������� **)
|
||
|
(** 1.1 �Ż��㷨 **)
|
||
|
(** 1.2 ��������IOM.0801U-E5�汾�¶����������Ĺ��˺��� **)
|
||
|
(** **)
|
||
|
(** �����飺BF_IOM0801U_E5 **)
|
||
|
(** **)
|
||
|
(** *} **)
|
||
|
(** **)
|
||
|
(** {* **)
|
||
|
(** Input_Type: ���� 1,PT1000; **)
|
||
|
(** 2,0-10V/0-20ma; **)
|
||
|
(** 3,2-10V/4-20ma; **)
|
||
|
(** ���� 4,PVL-PVH��Ӧ 0-10V/0-20ma; **)
|
||
|
(** 5,PVL-PVH��Ӧ 4-20ma/2-10V����; **)
|
||
|
(** **)
|
||
|
(** PVHΪʾֵ���ޣ�PVLΪʾֵ���ޣ�PVL����Ϊ��ֵ **)
|
||
|
(** Offset �������� **)
|
||
|
(** ROffset ������ AI��ֵ27648 AO��ֵ214 **)
|
||
|
(** *} **)
|
||
|
(** **)
|
||
|
(** Input_Isolate:=BF_IOM0801U_E5(Input,Input_Isolate); **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
BF_IOM0801U_E5 Input_Isolate
|
||
|
ST Input_Isolate
|
||
|
|
||
|
(** **)
|
||
|
(** if Input<>0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD Input
|
||
|
NE 0
|
||
|
JMPCN ODK_SKIP_000000000000001_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** case Input_Type of **)
|
||
|
(** 1: **)
|
||
|
(* case - Elm *)
|
||
|
ODK_SKIP_000000000000002_000000000000000:
|
||
|
|
||
|
(* case - Cond *)
|
||
|
LD Input_Type
|
||
|
EQ 1
|
||
|
JMPC ODK_CASE_000000000000002_000000000000001
|
||
|
|
||
|
JMP ODK_SKIP_000000000000002_000000000000001
|
||
|
|
||
|
(* case - Stmts *)
|
||
|
ODK_CASE_000000000000002_000000000000001:
|
||
|
|
||
|
(** BS_Scale := (INT_TO_REAL(Input_Isolate)/100.0)+Offset; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input_Isolate
|
||
|
INT_TO_REAL
|
||
|
DIV 100.0
|
||
|
ADD Offset
|
||
|
ST BS_Scale
|
||
|
|
||
|
JMP ODK_END_CASE_000000000000002
|
||
|
|
||
|
(** 2: **)
|
||
|
(* case - Elm *)
|
||
|
ODK_SKIP_000000000000002_000000000000001:
|
||
|
|
||
|
(* case - Cond *)
|
||
|
LD Input_Type
|
||
|
EQ 2
|
||
|
JMPC ODK_CASE_000000000000002_000000000000002
|
||
|
|
||
|
JMP ODK_SKIP_000000000000002_000000000000002
|
||
|
|
||
|
(* case - Stmts *)
|
||
|
ODK_CASE_000000000000002_000000000000002:
|
||
|
|
||
|
(** if PVL>0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD PVL
|
||
|
GT 0
|
||
|
JMPCN ODK_SKIP_000000000000003_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** BS_Scale := ((INT_TO_REAL(Input)/(27648.0+(INT_TO_REAL(ROffset))))*INT_TO_REAL(PVH-PVL))+Offset; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
INT_TO_REAL
|
||
|
DIV ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
)
|
||
|
MUL ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
ADD Offset
|
||
|
ST BS_Scale
|
||
|
|
||
|
JMP ODK_END_IF_000000000000003
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000003_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** BS_Scale := (((INT_TO_REAL(Input)/(27648.0+(INT_TO_REAL(ROffset))))*INT_TO_REAL(PVH-PVL))-INT_TO_REAL(abs(PVL)))+Offset; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
INT_TO_REAL
|
||
|
DIV ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
)
|
||
|
MUL ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
SUB ( PVL
|
||
|
abs
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
ADD Offset
|
||
|
ST BS_Scale
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000003:
|
||
|
|
||
|
JMP ODK_END_CASE_000000000000002
|
||
|
|
||
|
(** 3: **)
|
||
|
(* case - Elm *)
|
||
|
ODK_SKIP_000000000000002_000000000000002:
|
||
|
|
||
|
(* case - Cond *)
|
||
|
LD Input_Type
|
||
|
EQ 3
|
||
|
JMPC ODK_CASE_000000000000002_000000000000003
|
||
|
|
||
|
JMP ODK_SKIP_000000000000002_000000000000003
|
||
|
|
||
|
(* case - Stmts *)
|
||
|
ODK_CASE_000000000000002_000000000000003:
|
||
|
|
||
|
(** if PVL>0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD PVL
|
||
|
GT 0
|
||
|
JMPCN ODK_SKIP_000000000000004_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** BS_Scale := (INT_TO_REAL(Input-REAL_TO_INT((27648.0+INT_TO_REAL(ROffset))*0.2))/((27648.0+INT_TO_REAL(ROffset))*0.8)*INT_TO_REAL(PVH-PVL))+Offset; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
SUB ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
MUL 0.2
|
||
|
REAL_TO_INT
|
||
|
)
|
||
|
INT_TO_REAL
|
||
|
DIV ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
MUL 0.8
|
||
|
)
|
||
|
MUL ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
ADD Offset
|
||
|
ST BS_Scale
|
||
|
|
||
|
JMP ODK_END_IF_000000000000004
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000004_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** BS_Scale := (INT_TO_REAL(Input-REAL_TO_INT((27648.0+INT_TO_REAL(ROffset))*0.2))/((27648.0+INT_TO_REAL(ROffset))*0.8)*INT_TO_REAL(PVH-PVL))-INT_TO_REAL(abs(PVL))+Offset; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
SUB ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
MUL 0.2
|
||
|
REAL_TO_INT
|
||
|
)
|
||
|
INT_TO_REAL
|
||
|
DIV ( 27648.0
|
||
|
ADD ( ROffset
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
MUL 0.8
|
||
|
)
|
||
|
MUL ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
SUB ( PVL
|
||
|
abs
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
ADD Offset
|
||
|
ST BS_Scale
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000004:
|
||
|
|
||
|
JMP ODK_END_CASE_000000000000002
|
||
|
|
||
|
(** 4: **)
|
||
|
(* case - Elm *)
|
||
|
ODK_SKIP_000000000000002_000000000000003:
|
||
|
|
||
|
(* case - Cond *)
|
||
|
LD Input_Type
|
||
|
EQ 4
|
||
|
JMPC ODK_CASE_000000000000002_000000000000004
|
||
|
|
||
|
JMP ODK_SKIP_000000000000002_000000000000004
|
||
|
|
||
|
(* case - Stmts *)
|
||
|
ODK_CASE_000000000000002_000000000000004:
|
||
|
|
||
|
(** BS_Scale := (((INT_TO_REAL(Input)/INT_TO_REAL(PVH-PVL)/100.0))*(214.0+Offset)); **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
INT_TO_REAL
|
||
|
DIV ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
DIV 100.0
|
||
|
MUL ( 214.0
|
||
|
ADD Offset
|
||
|
)
|
||
|
ST BS_Scale
|
||
|
|
||
|
JMP ODK_END_CASE_000000000000002
|
||
|
|
||
|
(** 5: **)
|
||
|
(* case - Elm *)
|
||
|
ODK_SKIP_000000000000002_000000000000004:
|
||
|
|
||
|
(* case - Cond *)
|
||
|
LD Input_Type
|
||
|
EQ 5
|
||
|
JMPC ODK_CASE_000000000000002_000000000000005
|
||
|
|
||
|
JMP ODK_SKIP_000000000000002_000000000000005
|
||
|
|
||
|
(* case - Stmts *)
|
||
|
ODK_CASE_000000000000002_000000000000005:
|
||
|
|
||
|
(** BS_Scale := ((((INT_TO_REAL(Input)/INT_TO_REAL(PVH-PVL))/100.0)*((214.0+Offset)*0.8))+((214.0+Offset)*0.2)); **)
|
||
|
(* assign - Stmt *)
|
||
|
LD Input
|
||
|
INT_TO_REAL
|
||
|
DIV ( PVH
|
||
|
SUB PVL
|
||
|
INT_TO_REAL
|
||
|
)
|
||
|
DIV 100.0
|
||
|
MUL ( 214.0
|
||
|
ADD Offset
|
||
|
MUL 0.8
|
||
|
)
|
||
|
ADD ( 214.0
|
||
|
ADD Offset
|
||
|
MUL 0.2
|
||
|
)
|
||
|
ST BS_Scale
|
||
|
|
||
|
JMP ODK_END_CASE_000000000000002
|
||
|
|
||
|
(** end_case; **)
|
||
|
(* case - End *)
|
||
|
ODK_SKIP_000000000000002_000000000000005:
|
||
|
ODK_END_CASE_000000000000002:
|
||
|
|
||
|
JMP ODK_END_IF_000000000000001
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_000000000000001_000000000000001:
|
||
|
ODK_END_IF_000000000000001:
|
||
|
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
(** **)
|
||
|
|
||
|
END_FUNCTION
|