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