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

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