|
|
|
PROGRAM TH4851
|
|
|
|
VAR_EXTERNAL
|
|
|
|
|
|
|
|
END_VAR
|
|
|
|
|
|
|
|
VAR_GLOBAL
|
|
|
|
|
|
|
|
END_VAR
|
|
|
|
|
|
|
|
VAR
|
|
|
|
|
|
|
|
sendf1 : array[0..200] of byte;(*����16����*)
|
|
|
|
recvf1 : array[0..200] of byte;(*������*)
|
|
|
|
calcf1 : array[0..200] of byte;(*������*)
|
|
|
|
recvb4851 :NW_serrecv;
|
|
|
|
sendb4851 :NW_sersend;
|
|
|
|
send_act1 :BOOL;
|
|
|
|
recv_act1 :BOOL;
|
|
|
|
CRC4851 :BS_GETCRC16;
|
|
|
|
t1 :TON;
|
|
|
|
t1_in :BOOL;
|
|
|
|
t1_q :BOOL;
|
|
|
|
t2 :TON;
|
|
|
|
t2_in :BOOL;
|
|
|
|
t2_q :BOOL;
|
|
|
|
t3 :TON;
|
|
|
|
t3_in :BOOL;
|
|
|
|
t3_q :BOOL;
|
|
|
|
timer1 :TON;
|
|
|
|
timer1_run :BOOL;
|
|
|
|
timer2 :TON;
|
|
|
|
timer2_run :BOOL;
|
|
|
|
commandsend1 :int;
|
|
|
|
F_WS1 :int;
|
|
|
|
recv_len :int;
|
|
|
|
recv_len1 :int;
|
|
|
|
recv_len2 :int;
|
|
|
|
recv_len3 :int;
|
|
|
|
recv_len4 :int;
|
|
|
|
recv_CRCH :byte;
|
|
|
|
recv_CRCL :byte;
|
|
|
|
sendp1 :pointer;
|
|
|
|
recvp1 :pointer;
|
|
|
|
i :int;
|
|
|
|
j :int;
|
|
|
|
|
|
|
|
test_mode1 :bool;
|
|
|
|
|
|
|
|
END_VAR
|
|
|
|
|
|
|
|
(*Automatically declared*)
|
|
|
|
VAR_EXTERNAL
|
|
|
|
LIESB1G01_CO : REAL;
|
|
|
|
LIESB1G02_CO : REAL;
|
|
|
|
END_VAR
|
|
|
|
(** t1_in:=not t1.q; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD t1.q
|
|
|
|
NOT
|
|
|
|
ST t1_in
|
|
|
|
|
|
|
|
(** t1(IN :=t1_in , PT :=t#600ms ); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL t1 (
|
|
|
|
IN := t1_in,
|
|
|
|
PT := t#600ms
|
|
|
|
)
|
|
|
|
|
|
|
|
(** t2(IN :=t1_in , PT :=t#350ms ); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL t2 (
|
|
|
|
IN := t1_in,
|
|
|
|
PT := t#350ms
|
|
|
|
)
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** if t2.q=1 and t2_q=0 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD t2.q
|
|
|
|
EQ 1
|
|
|
|
AND ( t2_q
|
|
|
|
EQ 0
|
|
|
|
)
|
|
|
|
JMPCN ODK_SKIP_000000000000001_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** recv_act1:=1; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 1
|
|
|
|
ST recv_act1
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000001
|
|
|
|
|
|
|
|
(** else **)
|
|
|
|
(* else *)
|
|
|
|
ODK_SKIP_000000000000001_000000000000001:
|
|
|
|
|
|
|
|
(* else - Stmts *)
|
|
|
|
|
|
|
|
(** recv_act1:=0; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 0
|
|
|
|
ST recv_act1
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_END_IF_000000000000001:
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** if t1.q=0 and t1_q=1 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD t1.q
|
|
|
|
EQ 0
|
|
|
|
AND ( t1_q
|
|
|
|
EQ 1
|
|
|
|
)
|
|
|
|
JMPCN ODK_SKIP_000000000000002_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** send_act1:=1; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 1
|
|
|
|
ST send_act1
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000002
|
|
|
|
|
|
|
|
(** else **)
|
|
|
|
(* else *)
|
|
|
|
ODK_SKIP_000000000000002_000000000000001:
|
|
|
|
|
|
|
|
(* else - Stmts *)
|
|
|
|
|
|
|
|
(** send_act1:=0; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 0
|
|
|
|
ST send_act1
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_END_IF_000000000000002:
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** if t1.q and t1_q=0 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD t1.q
|
|
|
|
AND ( t1_q
|
|
|
|
EQ 0
|
|
|
|
)
|
|
|
|
JMPCN ODK_SKIP_000000000000003_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** if test_mode1=0 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD test_mode1
|
|
|
|
EQ 0
|
|
|
|
JMPCN ODK_SKIP_000000000000004_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** commandsend1:=commandsend1 + 1; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD commandsend1
|
|
|
|
ADD 1
|
|
|
|
ST commandsend1
|
|
|
|
|
|
|
|
(** if commandsend1>12 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
GT 12
|
|
|
|
JMPCN ODK_SKIP_000000000000005_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** commandsend1:=0; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 0
|
|
|
|
ST commandsend1
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000005
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_SKIP_000000000000005_000000000000001:
|
|
|
|
ODK_END_IF_000000000000005:
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000004
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_SKIP_000000000000004_000000000000001:
|
|
|
|
ODK_END_IF_000000000000004:
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000003
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_SKIP_000000000000003_000000000000001:
|
|
|
|
ODK_END_IF_000000000000003:
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** case commandsend1 of **)
|
|
|
|
(** 1,2: **)
|
|
|
|
(* case - Elm *)
|
|
|
|
ODK_SKIP_000000000000006_000000000000000:
|
|
|
|
|
|
|
|
(* case - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 1
|
|
|
|
JMPC ODK_CASE_000000000000006_000000000000001
|
|
|
|
|
|
|
|
(* case - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 2
|
|
|
|
JMPC ODK_CASE_000000000000006_000000000000001
|
|
|
|
|
|
|
|
JMP ODK_SKIP_000000000000006_000000000000001
|
|
|
|
|
|
|
|
(* case - Stmts *)
|
|
|
|
ODK_CASE_000000000000006_000000000000001:
|
|
|
|
|
|
|
|
(** F_WS1 :=8; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 8
|
|
|
|
ST F_WS1
|
|
|
|
|
|
|
|
(** sendf1[0]:=16#01; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#01
|
|
|
|
ST sendf1[0]
|
|
|
|
|
|
|
|
(** sendf1[1]:=16#04; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#04
|
|
|
|
ST sendf1[1]
|
|
|
|
|
|
|
|
(** sendf1[2]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[2]
|
|
|
|
|
|
|
|
(** sendf1[3]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[3]
|
|
|
|
|
|
|
|
(** sendf1[4]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[4]
|
|
|
|
|
|
|
|
(** sendf1[5]:=16#01; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#01
|
|
|
|
ST sendf1[5]
|
|
|
|
|
|
|
|
(** CRC4851(CRC_IN :=sendf1 , CRC_LEN :=6 | sendf1[6]:= CRC16H, sendf1[7]:= CRC16L); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL CRC4851 (
|
|
|
|
CRC_IN := sendf1,
|
|
|
|
CRC_LEN := 6
|
|
|
|
|
|
|
|
|
sendf1[6] := CRC16H,
|
|
|
|
sendf1[7] := CRC16L
|
|
|
|
)
|
|
|
|
|
|
|
|
JMP ODK_END_CASE_000000000000006
|
|
|
|
|
|
|
|
(** 3,4: **)
|
|
|
|
(* case - Elm *)
|
|
|
|
ODK_SKIP_000000000000006_000000000000001:
|
|
|
|
|
|
|
|
(* case - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 3
|
|
|
|
JMPC ODK_CASE_000000000000006_000000000000002
|
|
|
|
|
|
|
|
(* case - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 4
|
|
|
|
JMPC ODK_CASE_000000000000006_000000000000002
|
|
|
|
|
|
|
|
JMP ODK_SKIP_000000000000006_000000000000002
|
|
|
|
|
|
|
|
(* case - Stmts *)
|
|
|
|
ODK_CASE_000000000000006_000000000000002:
|
|
|
|
|
|
|
|
(** F_WS1 :=8; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 8
|
|
|
|
ST F_WS1
|
|
|
|
|
|
|
|
(** sendf1[0]:=16#02; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#02
|
|
|
|
ST sendf1[0]
|
|
|
|
|
|
|
|
(** sendf1[1]:=16#04; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#04
|
|
|
|
ST sendf1[1]
|
|
|
|
|
|
|
|
(** sendf1[2]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[2]
|
|
|
|
|
|
|
|
(** sendf1[3]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[3]
|
|
|
|
|
|
|
|
(** sendf1[4]:=16#00; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#00
|
|
|
|
ST sendf1[4]
|
|
|
|
|
|
|
|
(** sendf1[5]:=16#01; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD 16#01
|
|
|
|
ST sendf1[5]
|
|
|
|
|
|
|
|
(** CRC4851(CRC_IN :=sendf1 , CRC_LEN :=6 | sendf1[6]:= CRC16H, sendf1[7]:= CRC16L); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL CRC4851 (
|
|
|
|
CRC_IN := sendf1,
|
|
|
|
CRC_LEN := 6
|
|
|
|
|
|
|
|
|
sendf1[6] := CRC16H,
|
|
|
|
sendf1[7] := CRC16L
|
|
|
|
)
|
|
|
|
|
|
|
|
JMP ODK_END_CASE_000000000000006
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** end_case; **)
|
|
|
|
(* case - End *)
|
|
|
|
ODK_SKIP_000000000000006_000000000000002:
|
|
|
|
ODK_END_CASE_000000000000006:
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** sendb4851(EN :=send_act1 , COM :=1 , DATA :=sendp1 , LENGTH :=F_WS1 ); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL sendb4851 (
|
|
|
|
EN := send_act1,
|
|
|
|
COM := 1,
|
|
|
|
DATA := sendp1,
|
|
|
|
LENGTH := F_WS1
|
|
|
|
)
|
|
|
|
|
|
|
|
(** recvb4851(EN :=recv_act1 , COM :=1 , DATA :=recvp1 ); **)
|
|
|
|
(* call - Stmt *)
|
|
|
|
CAL recvb4851 (
|
|
|
|
EN := recv_act1,
|
|
|
|
COM := 1,
|
|
|
|
DATA := recvp1
|
|
|
|
)
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** sendp1:=&sendf1; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD &sendf1
|
|
|
|
ST sendp1
|
|
|
|
|
|
|
|
(** recvp1:=&recvf1; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD &recvf1
|
|
|
|
ST recvp1
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** t1_q:=t1.q; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD t1.q
|
|
|
|
ST t1_q
|
|
|
|
|
|
|
|
(** t2_q:=t2.q; **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD t2.q
|
|
|
|
ST t2_q
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
(** **)
|
|
|
|
(** if commandsend1=2 and recvf1[00]=16#01 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 2
|
|
|
|
AND ( recvf1[00]
|
|
|
|
EQ 16#01
|
|
|
|
)
|
|
|
|
JMPCN ODK_SKIP_000000000000007_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** LIESB1G01_CO :=(BYTE_TO_REAL(recvf1[03])*256.0+BYTE_TO_REAL(recvf1[04])); **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD recvf1[03]
|
|
|
|
BYTE_TO_REAL
|
|
|
|
MUL 256.0
|
|
|
|
ADD ( recvf1[04]
|
|
|
|
BYTE_TO_REAL
|
|
|
|
)
|
|
|
|
ST LIESB1G01_CO
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000007
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_SKIP_000000000000007_000000000000001:
|
|
|
|
ODK_END_IF_000000000000007:
|
|
|
|
|
|
|
|
(** if commandsend1=4 and recvf1[00]=16#02 then **)
|
|
|
|
(* if - Cond *)
|
|
|
|
LD commandsend1
|
|
|
|
EQ 4
|
|
|
|
AND ( recvf1[00]
|
|
|
|
EQ 16#02
|
|
|
|
)
|
|
|
|
JMPCN ODK_SKIP_000000000000008_000000000000001
|
|
|
|
|
|
|
|
(* then - Stmts *)
|
|
|
|
|
|
|
|
(** LIESB1G02_CO :=(BYTE_TO_REAL(recvf1[03])*256.0+BYTE_TO_REAL(recvf1[04])); **)
|
|
|
|
(* assign - Stmt *)
|
|
|
|
LD recvf1[03]
|
|
|
|
BYTE_TO_REAL
|
|
|
|
MUL 256.0
|
|
|
|
ADD ( recvf1[04]
|
|
|
|
BYTE_TO_REAL
|
|
|
|
)
|
|
|
|
ST LIESB1G02_CO
|
|
|
|
|
|
|
|
JMP ODK_END_IF_000000000000008
|
|
|
|
|
|
|
|
(** end_if; **)
|
|
|
|
(* if - End *)
|
|
|
|
ODK_SKIP_000000000000008_000000000000001:
|
|
|
|
ODK_END_IF_000000000000008:
|
|
|
|
|
|
|
|
(** **)
|
|
|
|
|
|
|
|
END_PROGRAM
|