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