PROGRAM SAVE
VAR_EXTERNAL


END_VAR

VAR_GLOBAL

END_VAR

VAR

SYS_SavePower1:BS_SavePower;
SYS_SavePower2:BS_SavePower;
SYS_SavePower3:BS_SavePower;
SYS_Runtime:BS_Runtime;

SYS_WriteNum1            AT%M2500.0     :INT; (*系统-闪存写入次数*)
SYS_Write_Flag1          AT%M2502.0     :BOOL; (*系统-系统闪存写入成功标记*)
SYS_Read_Flag1           AT%M2504.0     :BOOL; (*系统-系统闪存读取成功标记*)
SYS_Judge_Num1           AT%M2506.0     :INT; (*系统-变化判断变量*)

SYS_WriteNum2            AT%M2508.0     :INT; (*系统-闪存写入次数*)
SYS_Write_Flag2          AT%M2510.0     :BOOL; (*系统-系统闪存写入成功标记*)
SYS_Read_Flag2           AT%M2512.0     :BOOL; (*系统-系统闪存读取成功标记*)
SYS_Judge_Num2           AT%M2514.0     :INT; (*系统-变化判断变量*)

SYS_WriteNum3            AT%M2516.0     :INT; (*系统-闪存写入次数*)
SYS_Write_Flag3          AT%M2518.0     :BOOL; (*系统-系统闪存写入成功标记*)
SYS_Read_Flag3           AT%M2520.0     :BOOL; (*系统-系统闪存读取成功标记*)
SYS_Judge_Num3           AT%M2522.0     :INT; (*系统-变化判断变量*)


ini                     AT%M2.0        :bool;
ini2                    AT%M4.0        :INT;
SYS_RH    		        AT%M8.0    	   :REAL; (*系统-运行时间累积值*)

initon   :ton;

aa              :INT;
bb              :INT;


END_VAR

(*Automatically declared*)
VAR_EXTERNAL
	SYS_RUN : BOOL;
	SYSTEM_LICENSECODE1 : INT;
END_VAR
(** {*Input_Type :1���ڣ�2�仯           Read_Iso     :ϵͳ��ȡ���뿪��       Set_Timer    :���ڡ��仯�ж�����ʱ���趨 **)
(** Judge_Num    :�仯�жϱ���           MEM_ADDR     :M��������ʼ��ַ        FLASH_ADDR   :������������ʼ��ַ **)
(** SAVE_LEN     :�����ַ����           Write_Flag   :ϵͳ����д��ɹ����    Read_Flag    :ϵͳ�����ȡ�ɹ����  **)
(** �������س���ʱ Read_Iso :=1  Set_Timer :=t#30s ���������30S�󽫳�������� Read_Iso :=0  Set_Timer :=t#720m*} **)
(**  **)
(** {*�ϵ籣����ʹ�ñ���ΪM0~12��2500~2523��������ַ������Ҫ��ܸ������ַ����������*} **)
(** {*��ʱ��������ʼ��ʹ�ã���*} **)
(**  **)
(** SYS_SavePower1(Input_Type :=1 ,Read_Iso :=0, Set_Timer :=t#720m , Judge_Num :=SYS_Judge_Num1 , MEM_ADDR :=0, FLASH_ADDR :=0 ,SAVE_LEN :=6  , **)
	(* call - Stmt *)
	CAL SYS_SavePower1 (
		Input_Type := 1,
		Read_Iso := 0,
		Set_Timer := t#720m,
		Judge_Num := SYS_Judge_Num1,
		MEM_ADDR := 0,
		FLASH_ADDR := 0,
		SAVE_LEN := 6,
(** WriteNumRec_In:=SYS_WriteNum1   | SYS_Write_Flag1:= Write_Flag ,  SYS_Read_Flag1:= Read_Flag,  SYS_WriteNum1:= Write_Num ); **)
		WriteNumRec_In := SYS_WriteNum1
		|
		SYS_Write_Flag1 := Write_Flag,
		SYS_Read_Flag1 := Read_Flag,
		SYS_WriteNum1 := Write_Num
	)

(** 	 **)
(** 	if ini2<>423 then **)
	(* if - Cond *)
	LD ini2
	NE 423
	JMPCN ODK_SKIP_000000000000001_000000000000001

		(* then - Stmts *)

(** 	ini:=1; **)
		(* assign - Stmt *)
		LD 1
		ST ini

		JMP ODK_END_IF_000000000000001

(** 	else ini:=0; **)
	(* else *) 
	ODK_SKIP_000000000000001_000000000000001:

		(* else - Stmts *)

		(* assign - Stmt *)
		LD 0
		ST ini

(** 	end_if; **)
	(* if - End *) 
	ODK_END_IF_000000000000001:

(** 	 **)
(**  	initon(IN :=ini , PT := t#20S ); **)
	(* call - Stmt *)
	CAL initon (
		IN := ini,
		PT := t#20S
	)

(** 	if initon.et >t#14S  then **)
	(* if - Cond *)
	LD initon.et
	GT t#14S
	JMPCN ODK_SKIP_000000000000002_000000000000001

		(* then - Stmts *)

(** 	ini2:=423; **)
		(* assign - Stmt *)
		LD 423
		ST ini2

(** 	System_LicenseCode1:=26435; **)
		(* assign - Stmt *)
		LD 26435
		ST System_LicenseCode1

		JMP ODK_END_IF_000000000000002

(** 	end_if; **)
	(* if - End *) 
	ODK_SKIP_000000000000002_000000000000001:
	ODK_END_IF_000000000000002:

(** 	 **)
(** if SYS_SavePower1.Read_Flag=1  then **)
	(* if - Cond *)
	LD SYS_SavePower1.Read_Flag
	EQ 1
	JMPCN ODK_SKIP_000000000000003_000000000000001

		(* then - Stmts *)

(**  **)
(** 	if ini2<>423  then **)
		(* if - Cond *)
		LD ini2
		NE 423
		JMPCN ODK_SKIP_000000000000004_000000000000001

			(* then - Stmts *)

(** 	SYS_SavePower2(Input_Type :=1 ,Read_Iso :=1, Set_Timer :=t#10S , Judge_Num :=SYS_Judge_Num2 , MEM_ADDR :=0, FLASH_ADDR :=0 ,SAVE_LEN :=1000  , **)
			(* call - Stmt *)
			CAL SYS_SavePower2 (
				Input_Type := 1,
				Read_Iso := 1,
				Set_Timer := t#10S,
				Judge_Num := SYS_Judge_Num2,
				MEM_ADDR := 0,
				FLASH_ADDR := 0,
				SAVE_LEN := 1000,
(** 	WriteNumRec_In:=SYS_WriteNum2   | SYS_Write_Flag2:= Write_Flag ,  SYS_Read_Flag2:= Read_Flag,  SYS_WriteNum2:= Write_Num ); **)
				WriteNumRec_In := SYS_WriteNum2
				|
				SYS_Write_Flag2 := Write_Flag,
				SYS_Read_Flag2 := Read_Flag,
				SYS_WriteNum2 := Write_Num
			)

			JMP ODK_END_IF_000000000000004

(**  **)
(** 	end_if; **)
		(* if - End *) 
		ODK_SKIP_000000000000004_000000000000001:
		ODK_END_IF_000000000000004:

(**  **)
(** 	if ini2=423 then  **)
		(* if - Cond *)
		LD ini2
		EQ 423
		JMPCN ODK_SKIP_000000000000005_000000000000001

			(* then - Stmts *)

(**  **)
(** 	SYS_SavePower3(Input_Type :=1 ,Read_Iso :=0, Set_Timer :=t#720m , Judge_Num :=SYS_Judge_Num3 , MEM_ADDR :=0, FLASH_ADDR :=0 ,SAVE_LEN :=1000  , **)
			(* call - Stmt *)
			CAL SYS_SavePower3 (
				Input_Type := 1,
				Read_Iso := 0,
				Set_Timer := t#720m,
				Judge_Num := SYS_Judge_Num3,
				MEM_ADDR := 0,
				FLASH_ADDR := 0,
				SAVE_LEN := 1000,
(** 	WriteNumRec_In:=SYS_WriteNum3   | SYS_Write_Flag3:= Write_Flag ,  SYS_Read_Flag3:= Read_Flag,  SYS_WriteNum3:= Write_Num ); **)
				WriteNumRec_In := SYS_WriteNum3
				|
				SYS_Write_Flag3 := Write_Flag,
				SYS_Read_Flag3 := Read_Flag,
				SYS_WriteNum3 := Write_Num
			)

			JMP ODK_END_IF_000000000000005

(**  **)
(** 	end_if; **)
		(* if - End *) 
		ODK_SKIP_000000000000005_000000000000001:
		ODK_END_IF_000000000000005:

		JMP ODK_END_IF_000000000000003

(**  **)
(** end_if; **)
	(* if - End *) 
	ODK_SKIP_000000000000003_000000000000001:
	ODK_END_IF_000000000000003:

(**  **)
(**  **)
(** SYS_RunTime(RUN :=1  ,RunTimeRec_In := SYS_RH |  SYS_RH:= RUNTIME); **)
	(* call - Stmt *)
	CAL SYS_RunTime (
		RUN := 1,
		RunTimeRec_In := SYS_RH
		|
		SYS_RH := RUNTIME
	)

(**  **)
(** if SYS_RH>384.0   and System_LicenseCode1=26435 then SYS_Run:=1;end_if; **)
	(* if - Cond *)
	LD SYS_RH
	GT 384.0
	AND ( System_LicenseCode1
		EQ 26435
	)
	JMPCN ODK_SKIP_000000000000006_000000000000001

		(* then - Stmts *)

		(* assign - Stmt *)
		LD 1
		ST SYS_Run

		JMP ODK_END_IF_000000000000006

	(* if - End *) 
	ODK_SKIP_000000000000006_000000000000001:
	ODK_END_IF_000000000000006:

(** if SYS_RH>720.0   and System_LicenseCode1=31832 then SYS_Run:=1;end_if; **)
	(* if - Cond *)
	LD SYS_RH
	GT 720.0
	AND ( System_LicenseCode1
		EQ 31832
	)
	JMPCN ODK_SKIP_000000000000007_000000000000001

		(* then - Stmts *)

		(* assign - Stmt *)
		LD 1
		ST SYS_Run

		JMP ODK_END_IF_000000000000007

	(* if - End *) 
	ODK_SKIP_000000000000007_000000000000001:
	ODK_END_IF_000000000000007:

(** if SYS_RH>2160.0  and System_LicenseCode1=26903 then SYS_Run:=1;end_if; **)
	(* if - Cond *)
	LD SYS_RH
	GT 2160.0
	AND ( System_LicenseCode1
		EQ 26903
	)
	JMPCN ODK_SKIP_000000000000008_000000000000001

		(* then - Stmts *)

		(* assign - Stmt *)
		LD 1
		ST SYS_Run

		JMP ODK_END_IF_000000000000008

	(* if - End *) 
	ODK_SKIP_000000000000008_000000000000001:
	ODK_END_IF_000000000000008:

(** if                    System_LicenseCode1=16903 then SYS_Run:=0;end_if; **)
	(* if - Cond *)
	LD System_LicenseCode1
	EQ 16903
	JMPCN ODK_SKIP_000000000000009_000000000000001

		(* then - Stmts *)

		(* assign - Stmt *)
		LD 0
		ST SYS_Run

		JMP ODK_END_IF_000000000000009

	(* if - End *) 
	ODK_SKIP_000000000000009_000000000000001:
	ODK_END_IF_000000000000009:

(**  **)
(** {***************������ط����жϷŵ�ÿ������aabb����������ʾʵ�ʳ���ʵ�����������ʵ������****************************} **)
(** if SYS_Run=0 then  **)
	(* if - Cond *)
	LD SYS_Run
	EQ 0
	JMPCN ODK_SKIP_00000000000000A_000000000000001

		(* then - Stmts *)

(** 	aa:=12345; **)
		(* assign - Stmt *)
		LD 12345
		ST aa

(** 	bb:=aa+5; **)
		(* assign - Stmt *)
		LD aa
		ADD 5
		ST bb

		JMP ODK_END_IF_00000000000000A

(** end_if; **)
	(* if - End *) 
	ODK_SKIP_00000000000000A_000000000000001:
	ODK_END_IF_00000000000000A:


END_PROGRAM