FUNCTION BS_Scale6 : 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 END_VAR (** **) (** **) (** 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_Scale6 := (INT_TO_REAL(Input)/100.0)+Offset; **) (* assign - Stmt *) LD Input INT_TO_REAL DIV 100.0 ADD Offset ST BS_Scale6 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_Scale6 := ((INT_TO_REAL(Input)/(4096.0+(INT_TO_REAL(ROffset))))*INT_TO_REAL(PVH-PVL))+Offset; **) (* assign - Stmt *) LD Input INT_TO_REAL DIV ( 4096.0 ADD ( ROffset INT_TO_REAL ) ) MUL ( PVH SUB PVL INT_TO_REAL ) ADD Offset ST BS_Scale6 JMP ODK_END_IF_000000000000003 (** else **) (* else *) ODK_SKIP_000000000000003_000000000000001: (* else - Stmts *) (** BS_Scale6 := (((INT_TO_REAL(Input)/(4096.0+(INT_TO_REAL(ROffset))))*INT_TO_REAL(PVH-PVL))-INT_TO_REAL(abs(PVL)))+Offset; **) (* assign - Stmt *) LD Input INT_TO_REAL DIV ( 4096.0 ADD ( ROffset INT_TO_REAL ) ) MUL ( PVH SUB PVL INT_TO_REAL ) SUB ( PVL abs INT_TO_REAL ) ADD Offset ST BS_Scale6 (** 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_Scale6 := (INT_TO_REAL(Input-REAL_TO_INT((4096.0+INT_TO_REAL(ROffset))*0.2))/((4096.0+INT_TO_REAL(ROffset))*0.8)*INT_TO_REAL(PVH-PVL))+Offset; **) (* assign - Stmt *) LD Input SUB ( 4096.0 ADD ( ROffset INT_TO_REAL ) MUL 0.2 REAL_TO_INT ) INT_TO_REAL DIV ( 4096.0 ADD ( ROffset INT_TO_REAL ) MUL 0.8 ) MUL ( PVH SUB PVL INT_TO_REAL ) ADD Offset ST BS_Scale6 JMP ODK_END_IF_000000000000004 (** else **) (* else *) ODK_SKIP_000000000000004_000000000000001: (* else - Stmts *) (** BS_Scale6 := (INT_TO_REAL(Input-REAL_TO_INT((4096.0+INT_TO_REAL(ROffset))*0.2))/((4096.0+INT_TO_REAL(ROffset))*0.8)*INT_TO_REAL(PVH-PVL))-INT_TO_REAL(abs(PVL))+Offset; **) (* assign - Stmt *) LD Input SUB ( 4096.0 ADD ( ROffset INT_TO_REAL ) MUL 0.2 REAL_TO_INT ) INT_TO_REAL DIV ( 4096.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_Scale6 (** 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_Scale6 := (((INT_TO_REAL(Input)/INT_TO_REAL(PVH-PVL)/100.0))*(3000.0+Offset)); **) (* assign - Stmt *) LD Input INT_TO_REAL DIV ( PVH SUB PVL INT_TO_REAL ) DIV 100.0 MUL ( 3000.0 ADD Offset ) ST BS_Scale6 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_Scale6 := ((((INT_TO_REAL(Input)/INT_TO_REAL(PVH-PVL))/100.0)*((3000.0+Offset)*0.8))+((3000.0+Offset)*0.2)); **) (* assign - Stmt *) LD Input INT_TO_REAL DIV ( PVH SUB PVL INT_TO_REAL ) DIV 100.0 MUL ( 3000.0 ADD Offset MUL 0.8 ) ADD ( 3000.0 ADD Offset MUL 0.2 ) ST BS_Scale6 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