You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
350 lines
8.1 KiB
350 lines
8.1 KiB
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>1488.0 and System_LicenseCode1=26435 then SYS_Run:=1;end_if; **)
|
|
(* if - Cond *)
|
|
LD SYS_RH
|
|
GT 1488.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>1598.0 and System_LicenseCode1=31832 then SYS_Run:=1;end_if; **)
|
|
(* if - Cond *)
|
|
LD SYS_RH
|
|
GT 1598.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
|