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