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