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