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_ScaleTempINT_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