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.
 
 
 
 
 
 

422 lines
8.0 KiB

FUNCTION BS_Scale2 : 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; (*补�值*)
Filter :BOOL;
END_VAR
VAR
BS_ScaleTemp :REAL;
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 **)
(** Filter Êý¾Ý¸ôÀë 0ʱÇгý³¬¶ÁÖµ·¶Î§Öµ£¬1ʱ²»Çгý **)
(** *} **)
(** 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_ScaleTemp := (INT_TO_REAL(Input_Isolate)/100.0)+Offset; **)
(* assign - Stmt *)
LD Input_Isolate
INT_TO_REAL
DIV 100.0
ADD Offset
ST BS_ScaleTemp
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_ScaleTemp := ((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_ScaleTemp
JMP ODK_END_IF_000000000000003
(** else **)
(* else *)
ODK_SKIP_000000000000003_000000000000001:
(* else - Stmts *)
(** BS_ScaleTemp := (((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_ScaleTemp
(** 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_ScaleTemp := (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_ScaleTemp
JMP ODK_END_IF_000000000000004
(** else **)
(* else *)
ODK_SKIP_000000000000004_000000000000001:
(* else - Stmts *)
(** BS_ScaleTemp := (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_ScaleTemp
(** 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_ScaleTemp := (((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_ScaleTemp
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_ScaleTemp := ((((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_ScaleTemp
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:
(** **)
(** {*ÉÏÏÂÏÞÖµÇгý*} **)
(** if Filter=0 then **)
(* if - Cond *)
LD Filter
EQ 0
JMPCN ODK_SKIP_000000000000005_000000000000001
(* then - Stmts *)
(** if BS_ScaleTemp<INT_TO_REAL(PVL) then **)
(* if - Cond *)
LD BS_ScaleTemp
LT ( PVL
INT_TO_REAL
)
JMPCN ODK_SKIP_000000000000006_000000000000001
(* then - Stmts *)
(** BS_Scale2:=INT_TO_REAL(PVL) ; **)
(* assign - Stmt *)
LD PVL
INT_TO_REAL
ST BS_Scale2
JMP ODK_END_IF_000000000000006
(** else **)
(* else *)
ODK_SKIP_000000000000006_000000000000001:
(* else - Stmts *)
(** BS_Scale2:=BS_ScaleTemp; **)
(* assign - Stmt *)
LD BS_ScaleTemp
ST BS_Scale2
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000006:
(** **)
(** if BS_ScaleTemp>INT_TO_REAL(PVH) then **)
(* if - Cond *)
LD BS_ScaleTemp
GT ( PVH
INT_TO_REAL
)
JMPCN ODK_SKIP_000000000000007_000000000000001
(* then - Stmts *)
(** BS_Scale2:=INT_TO_REAL(PVH) ; **)
(* assign - Stmt *)
LD PVH
INT_TO_REAL
ST BS_Scale2
JMP ODK_END_IF_000000000000007
(** else **)
(* else *)
ODK_SKIP_000000000000007_000000000000001:
(* else - Stmts *)
(** BS_Scale2:=BS_ScaleTemp; **)
(* assign - Stmt *)
LD BS_ScaleTemp
ST BS_Scale2
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000007:
JMP ODK_END_IF_000000000000005
(** else **)
(* else *)
ODK_SKIP_000000000000005_000000000000001:
(* else - Stmts *)
(** BS_Scale2:=BS_ScaleTemp ; **)
(* assign - Stmt *)
LD BS_ScaleTemp
ST BS_Scale2
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000005:
(** **)
(** **)
(** **)
(** **)
(** **)
(** **)
END_FUNCTION