Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj [r17] .. [r18]  Maximize  Restore

Switch to side-by-side view

--- a/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj
+++ b/branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj
@@ -1,6 +1,6 @@
-Gx_l#G!0…jüo.5þ;z*ÅҋSystem.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+Gx_lWI!0…jüoî/E-4ÛAó“System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
 TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText$IF NOT xInit THEN	N	UM				(		sName := 'Normal Operation', ì							dwSupportedStates := PACK_ML.State.All - PACK_ML.State.Suspending - PACK_ML.State.Suspended - PACK_ML.State.UnSuspending - PACK_ML.Holding - PACK_ML.Held - PACK_ML.UnHolding, Ô							dwAllowsLeavingFromStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, Ö							dwAllowsEnteringIntoStates := PACK_ML.State.Stopped OR PACK_ML.State.Aborted OR PACK_ML.State.Idle, \							eInitialState := PACK_ML.State.Aborted,0							xActive := TRUE);	xInit := TRUE;	END_IF4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake	1 : 	//Lock’		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN;		 2			Lock_CO_Match := TRUE;!			"˜		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN	;	#2			//Second Lock Function$
-			;	%		END_IF&	2 : 	//Key		'	3 : 	//IO(	4 : 	//Media)	5 : 	//Hint*	6 : 	//State	+l		IF SysStrCmp(Client.sCommandToPLC, 'SC') =  0 THEN		,&			StateComplete();-x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		.			Start();/v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		0			Stop();1x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		2			Reset();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		4			Abort();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		6			Clear();7v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		8			Hold();9z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		:			Unhold();	;|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		<			Suspend();=€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		>			UnSuspend();?		@	END_CASEA6	Client.iCommandToPLC := 0;B8	Client.sCommandToPLC := '';C:	Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I0PACK_ML.State.Complete :J.PACK_ML.State.Execute :KD	IF puzzleTimer.iProcess = 20 THENL@		IF Client.ActualStep < 30 THENM¸			SendCommand(Command := CommandType.Hint ,Value := 'Enable the cabinet with PACKML.');				N	END_IFOD	IF puzzleTimer.iProcess = 40 THENPÊ			SendCommand(Command := CommandType.Hint ,Value := 'The statemachine is visible in the display.');	QD	IF puzzleTimer.iProcess = 50 THENRB		IF Client.ActualStep >= 30 THENSž			SendCommand(Command := CommandType.Hint ,Value := 'Find the laser angles.');T		END_IF		UD	IF puzzleTimer.iProcess = 60 THENV–		SendCommand(Command := CommandType.Media ,Value := 'Automation Suite');		W4	CASE Client.ActualStep OFX	0: // abortedYJ		LaserGamePuzzle := PACK_ML.Aborted;Z6		DO_Reset_Light := bl.OUT;[”		IF DI_Reset AND NOT DI_Auto_Hand_Switch AND DI_NoodstopCabinet THEN					\6			Client.ActualStep := 10;]6			DO_Reset_Light := FALSE;^:			DO_Spanning_Light := TRUE;_	10:	// Stopped`J		LaserGamePuzzle := PACK_ML.Stopped;a6		DO_Storing_Light := TRUE;bZ		IF DI_Init AND NOT DI_Auto_Hand_Switch THENc6			Client.ActualStep := 20;d6			DO_HintLaser_ON := TRUE;e@			DO_Storing_Light := FALSE;			fB		IF NOT DI_NoodstopCabinet THEN;g4			Client.ActualStep := 0;h8			DO_HintLaser_ON := FALSE;i<			DO_Spanning_Light := FALSE;j<			DO_Storing_Light := FALSE;	k	20: // IdlelD		LaserGamePuzzle := PACK_ML.Idle;mB		DO_In_Bedrijf_Light := bl2.OUT;nx		r_trig(CLK:= DI_Start_Switch AND NOT DI_Auto_Hand_Switch);o&		IF r_trig.Q THEN	p>			DO_In_Bedrijf_Light	:= TRUE;q0			DO_Laser_ON := TRUE;	r8			Client.ActualStep := 30;	s¸			SendCommand(Command:= CommandType.Key, Value:= Client.KeyCommands[0]);	// cabinet enabledt*		IF NOT DI_Stop THENu:			Client.ActualStep := 10;		vB			DO_In_Bedrijf_Light := FALSE;	w0			DO_Laser_ON := FALSE;xF		IF NOT DI_NoodstopCabinet THEN;		y	30: // ExecutezJ		LaserGamePuzzle := PACK_ML.Execute;{:		ton(PT := T#2M,IN := TRUE);|J		IF Lock_CO_Match THEN				//OR ton.Q}0			StateComplete();					~@			DO_In_Bedrijf_Light := FALSE;		END_IF	€8			Client.ActualStep := 0;			END_CASE ‚^	DO_Auto_Hand_Light := NOT DI_Auto_Hand_Switch;ƒR	Client.Progress := puzzleTimer.iProcess;„ …2PACK_ML.State.Resetting :†>	LaserGamePuzzle := PACK_ML.No;‡.	Client.Progress := 0;	ˆ<	DO_In_Bedrijf_Light := FALSE;‰6	DO_Storing_Light := FALSE;Š8	DO_Spanning_Light := FALSE;‹:	DO_Auto_Hand_Light := FALSE;Œ2	DO_Reset_Light := FALSE;,	DO_Laser_ON := FALSE;Ž4	DO_HintLaser_ON := FALSE;0	Lock_CO_Match := FALSE;:	KEY_puzzleFinished := FALSE;‘"	StateComplete();’0PACK_ML.State.Starting :“6PACK_ML.State.Completing :	”0	Client.Progress := 100;•0PACK_ML.State.Aborting :–4	DO_Storing_Light := TRUE;—.PACK_ML.State.Stopping:˜6	DO_Spanning_Light := TRUE;™0PACK_ML.State.Clearing :šEND_CASE›fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THENœ(	// Emergency Abort.	Abort();	žEND_IF ŸLClient.ActualState := UM.CurrentState; >messageQueue(Client := Client);¡äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);¢FIF puzzleTimer.iProcess >= 100 THEN£	//Stop();¤rbl(ENABLE := TRUE,TIMELOW := T#250MS,TIMEHIGH:= T#500MS);¥tbl2(ENABLE := TRUE,TIMELOW := T#500MS,TIMEHIGH:= T#500MS);¦Interface§L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}¨@FUNCTION_BLOCK LaserStateMachine©VAR_IN_OUTª.	Client : PuzzleClient;«END_VAR¬VAR­8	UM					: PACK_ML.UnitMode; ®(	r_trig				: R_TRIG;¯l	xInit				: BOOL := FALSE; // Flag for initialization	°<	puzzleTimer 		: PuzzleTimer;	±"	bl 					: blink;²"	bl2 				: blink;³ 	ton 				: TON;	´8	KEY_puzzleFinished 	: BOOL;µ2	Key_CO_Panel_On		: BOOL;¶.	Lock_CO_Match		: BOOL;·L	//DI_NoodstopCabinet	: BOOL	:= TRUE ;¸:	messageQueue : MessageQueue;¹"UniqueIdGeneratorº595»POULevel¼L{8e575c5b-1d37-49c6-941b-5c0ec7874787}½Standard¾ ChildObjectGuids¿8System.Collections.ArrayListÀ,AddAttributeSubsequentÁboolÐÐ-ÐÐ	E
-êÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­µÚÐ-ÐÐ
­´ÚÐ- ÐÐ
­÷ÚÐ-!ÐÐ
­¶ÚÐ-"ÐÐ
­·ÚÐ-#ÐÐ
­øÚÐ-$ÐÐ
­¯ÚÐ-%ÐÐ
­©ÚÐ-&ÐÐ
­üÚÐ-ÐÐ
­ªÚÐ-'ÐÐ
­«ÚÐ-(ÐÐ
­¬ÚÐ-)ÐÐ
­­ÚÐ-*ÐÐ
­¹ÚÐ-+ÐÐ
­ºÚÐ-,ÐÐ
­»ÚÐ--ÐÐ
­¾ÚÐ-.ÐÐ
­¿ÚÐ-/ÐÐ
­ÀÚÐ-0ÐÐ
­ÁÚÐ-1ÐÐ
­ÂÚÐ-2ÐÐ
­ÃÚÐ-3ÐÐ
­ÄÚÐ-4ÐÐ
­ÅÚÐ-5ÐÐ
­ÆÚÐ-6ÐÐ
­ÇÚÐ-7ÐÐ
­ÈÚÐ-8ÐÐ
­ÉÚÐ-9ÐÐ
­ÎÚÐ-:ÐÐ
­ÏÚÐ-;ÐÐ
­ÐÚÐ-<ÐÐ
­ÑÚÐ-=ÐÐ
­¼ÚÐ->ÐÐ
­¸ÚÐ-%ÐÐ
­½ÚÐ-?ÐÐ
­—ÚÐ-@ÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-AÐÐ
­ÖÚÐ-BÐÐ
­×ÚÐ-CÐÐ
­•ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­ÚÐ-EÐÐ
­uÚÐ-FÐÐ
­ÚÐ-GÐÐ
­vÚÐ-FÐÐ
­ÚÐ-HÐÐ
­wÚÐ-FÐÐ
­ ÚÐ-IÐÐ
­¦ÚÐ-FÐÐ
­ŸÚÐ-JÐÐ
­7ÚÐ-ÐÐ
­2ÚÐ-KÐÐ
­EÚÐ-LÐÐ
­HÚÐ-MÐÐ
­GÚÐ-%ÐÐ
­4ÚÐ-NÐÐ
­5ÚÐ-OÐÐ
­IÚÐ-LÐÐ
­6ÚÐ-PÐÐ
­JÚÐ-%ÐÐ
­-ÚÐ-NÐÐ
­8ÚÐ-QÐÐ
­KÚÐ-RÐÐ
­9ÚÐ-SÐÐ
­LÚÐ-TÐÐ
­?ÚÐ-NÐÐ
­@ÚÐ-UÐÐ
­AÚÐ-VÐÐ
­>ÚÐ-NÐÐ
­0ÚÐ-ÐÐ
­rÚÐ-ÐÐ
­üÚÐ-WÐÐ
­FÚÐ-XÐÐ
­ÚÐ-YÐÐ
­IÚÐ-ZÐÐ
­PÚÐ-[ÐÐ
­QÚÐ-\ÐÐ
­sÚÐ-]ÐÐ
­&ÚÐ-^ÐÐ
­RÚÐ-%ÐÐ
­SÚÐ-_ÐÐ
­
-ÚÐ-`ÐÐ
­"ÚÐ-aÐÐ
­tÚÐ-bÐÐ
­]ÚÐ-cÐÐ
­êÚÐ-dÐÐ
­ÍÚÐ-eÐÐ
­ªÚÐ-TÐÐ
­ðÚÐ-fÐÐ
­ôÚÐ-gÐÐ
­õÚÐ-hÐÐ
­(ÚÐ-iÐÐ
­#ÚÐ-jÐÐ
­óÚÐ-%ÐÐ
­ñÚÐ-?ÐÐ
­YÚÐ-kÐÐ
­ÚÐ-lÐÐ
­´ÚÐ-mÐÐ
­ÙÚÐ-nÐÐ
­ÚÚÐ-?ÐÐ
­\ÚÐ-oÐÐ
­ÝÚÐ-pÐÐ
­”ÚÐ-qÐÐ
­aÚÐ-rÐÐ
­£ÚÐ-sÐÐ
­¬ÚÐ-%ÐÐ
­­ÚÐ-tÐÐ
­±ÚÐ-uÐÐ
­²ÚÐ-vÐÐ
­×ÚÐ-wÐÐ
­ìÚÐ-hÐÐ
­`ÚÐ-%ÐÐ
­÷ÚÐ-xÐÐ
­$ÚÐ-vÐÐ
­øÚÐ-gÐÐ
­ùÚÐ-hÐÐ
­)ÚÐ-iÐÐ
­úÚÐ-wÐÐ
­ûÚÐ-hÐÐ
­öÚÐ-%ÐÐ
­bÚÐ-yÐÐ
­ÚÐ-zÐÐ
­¹ÚÐ-{ÐÐ
­„ÚÐ-|ÐÐ
­˜ÚÐ-}ÐÐ
­fÚÐ-%ÐÐ
­ÓÚÐ-ÐÐ
­ÔÚÐ-tÐÐ
­ÕÚÐ-uÐÐ
­ÖÚÐ-~ÐÐ
­ØÚÐ-wÐÐ
­ëÚÐ-hÐÐ
­ÒÚÐ-ÐÐ
­ÚÐ-fÐÐ
­ÚÐ-€ÐÐ
­%ÚÐ-vÐÐ
­ÚÐ-hÐÐ
­*ÚÐ-iÐÐ
­ÚÐ-wÐÐ
­ÚÐ-hÐÐ
­JÚÐ-%ÐÐ
­GÚÐ-ÐÐ
­‡ÚÐ-‚ÐÐ
­³ÚÐ-ÐÐ
­áÚÐ-ÐÐ
­âÚÐ-ÐÐ
­àÚÐ-ƒÐÐ
­ŠÚÐ-„ÐÐ
­‰ÚÐ-ÐÐ
­çÚÐ-…ÐÐ
­+ÚÐ-†ÐÐ
­þÚÐ-‡ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-‰ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-‹ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­
ÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­¾ÚÐ-ÐÐ
­ÜÚÐ-‘ÐÐ
­ÚÐ-’ÐÐ
­;ÚÐ-‘ÐÐ
­ãÚÐ-“ÐÐ
­RÚÐ-”ÐÐ
­SÚÐ-ÐÐ
­<ÚÐ-‘ÐÐ
­.ÚÐ-•ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-–ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-‹ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­¿ÚÐ-ŽÐÐ
­=ÚÐ-‘ÐÐ
­åÚÐ-—ÐÐ
­,ÚÐ-†ÐÐ
­WÚÐ-”ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-–ÐÐ
­ÚÐ-˜ÐÐ
­ÚÐ-‹ÐÐ
­ ÚÐ-ŒÐÐ
­!ÚÐ-ÐÐ
­·ÚÐ-ŽÐÐ
­RÚÐ-ÐÐ
­>ÚÐ-‘ÐÐ
­[ÚÐ-™ÐÐ
­?ÚÐ-‘ÐÐ
­	ÚÐ-šÐÐ
­gÚÐ-ÐÐ
­€ÚÐ-›ÐÐ
­ÚÐ-œÐÐ
­ÚÐ-ÐÐ
­hÚÐ-žÐÐ
­ÚÐ-ÐÐ
­PÚÐ-ŸÐÐ
­QÚÐ-ÐÐ
­fÚÐ- ÐÐ
­(ÚÐ-ÐÐ
­)ÚÐ-¡ÐÐ
­1ÚÐ-ÐÐ
­0ÚÐ-¢ÐÐ
­2ÚÐ-£ÐÐ
­3ÚÐ-ÐÐ
­+ÚÐ-ÐÐ
­NÚÐ-ÐÐ
­#ÚÐ-¤ÐÐ
­¶ÚÐ-¥Ц§Ð	E
-ÐÐ
­ÚÐ-¨ÐÐ
­ÚÐ-©ÐÐ
­ÚÐ-ªÐÐ
­ÚÐ-«ÐÐ
­ÚÐ-¬ÐÐ
­ÚÐ-­ÐÐ
­ÛÚÐ-®ÐÐ
­ÚÐ-¯ÐÐ
­%ÚÐ-°ÐÐ
­LÚÐ-±ÐÐ
­•ÚÐ-²ÐÐ
­»ÚÐ-³ÐÐ
­¥ÚÐ-´ÐÐ
­þÚÐ-µÐÐ
­ýÚÐ-¶ÐÐ
­MÚÐ-·ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-¸ÐÐ
­ÚÐ-«ÐÐ
­ÚÐ-й-ºл¼-½¾¿ÐÀÁ­
\ No newline at end of file
+			;	%		END_IF&	2 : 	//Key		'	3 : 	//IO(	4 : 	//Media)	5 : 	//Hint*	6 : 	//State	+l		IF SysStrCmp(Client.sCommandToPLC, 'SC') =  0 THEN		,&			StateComplete();-x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Start') =  0 THEN		.			Start();/v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		0			Stop();1x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		2			Reset();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		4			Abort();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		6			Clear();7v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		8			Hold();9z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		:			Unhold();	;|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		<			Suspend();=€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		>			UnSuspend();?		@	END_CASEA6	Client.iCommandToPLC := 0;B8	Client.sCommandToPLC := '';C:	Client.bReadyToPLC := FALSE;D.CASE UM.CurrentState OFE,PACK_ML.State.Stopped:F;G,PACK_ML.State.Aborted:H&PACK_ML.State.Idle:I0PACK_ML.State.Complete :J.PACK_ML.State.Execute :KD	IF puzzleTimer.iProcess = 25 THENL@		IF Client.ActualStep < 30 THENMÊ			SendCommand(Command := CommandType.Hint ,Value := 'Enable the cabinet with PACKML, look up.');				N	END_IF	OD	IF puzzleTimer.iProcess = 30 THENPˆ			SendCommand(Command := CommandType.Media ,Value := 'PACKML');				Q	END_IFRD	IF puzzleTimer.iProcess = 50 THENSB		IF Client.ActualStep >= 30 THENTè			SendCommand(Command := CommandType.Hint ,Value := 'Enable the drives and positon them in the Automation Suite.');U		ELSE			V8    		overrideStart := TRUE;W		END_IF	XD	IF puzzleTimer.iProcess = 75 THENY–		SendCommand(Command := CommandType.Media ,Value := 'Automation Suite');		Z4	CASE Client.ActualStep OF[	0: // aborted\J		LaserGamePuzzle := PACK_ML.Aborted;]6		DO_Reset_Light := bl.OUT;^”		IF DI_Reset AND NOT DI_Auto_Hand_Switch AND DI_NoodstopCabinet THEN					_6			Client.ActualStep := 10;`6			DO_Reset_Light := FALSE;a:			DO_Spanning_Light := TRUE;b	10:	// StoppedcJ		LaserGamePuzzle := PACK_ML.Stopped;d6		DO_Storing_Light := TRUE;e€		IF (overrideStart OR DI_Init )AND NOT DI_Auto_Hand_Switch THENf6			Client.ActualStep := 20;g6			DO_HintLaser_ON := TRUE;h@			DO_Storing_Light := FALSE;			i		END_IF		jB		IF NOT DI_NoodstopCabinet THEN;k4			Client.ActualStep := 0;l8			DO_HintLaser_ON := FALSE;m<			DO_Spanning_Light := FALSE;n<			DO_Storing_Light := FALSE;	o	20: // IdlepD		LaserGamePuzzle := PACK_ML.Idle;qB		DO_In_Bedrijf_Light := bl2.OUT;rx		r_trig(CLK:= DI_Start_Switch AND NOT DI_Auto_Hand_Switch);sF		IF r_trig.Q OR overrideStart THENt<    		overrideStart := FALSE;	u>			DO_In_Bedrijf_Light	:= TRUE;v0			DO_Laser_ON := TRUE;	w8			Client.ActualStep := 30;	x¸			SendCommand(Command:= CommandType.Key, Value:= Client.KeyCommands[0]);	// cabinet enabledy*		IF NOT DI_Stop THENz:			Client.ActualStep := 10;		{B			DO_In_Bedrijf_Light := FALSE;	|0			DO_Laser_ON := FALSE;}F		IF NOT DI_NoodstopCabinet THEN;		~	30: // ExecuteJ		LaserGamePuzzle := PACK_ML.Execute;€:		ton(PT := T#2M,IN := TRUE);J		IF Lock_CO_Match THEN				//OR ton.Q‚0			StateComplete();					ƒ@			DO_In_Bedrijf_Light := FALSE;„8			Client.ActualStep := 0;		…	END_CASE †^	DO_Auto_Hand_Light := NOT DI_Auto_Hand_Switch;‡R	Client.Progress := puzzleTimer.iProcess;ˆ ‰2PACK_ML.State.Resetting :Š6    overrideStart := FALSE;‹>	LaserGamePuzzle := PACK_ML.No;Œ.	Client.Progress := 0;	<	DO_In_Bedrijf_Light := FALSE;Ž6	DO_Storing_Light := FALSE;8	DO_Spanning_Light := FALSE;:	DO_Auto_Hand_Light := FALSE;‘2	DO_Reset_Light := FALSE;’,	DO_Laser_ON := FALSE;“4	DO_HintLaser_ON := FALSE;”0	Lock_CO_Match := FALSE;•:	KEY_puzzleFinished := FALSE;–"	StateComplete();—0PACK_ML.State.Starting :˜6PACK_ML.State.Completing :	™0	Client.Progress := 100;š0PACK_ML.State.Aborting :›4	DO_Storing_Light := TRUE;œ.PACK_ML.State.Stopping:6	DO_Spanning_Light := TRUE;ž0PACK_ML.State.Clearing :ŸEND_CASE fIF NOT (DI_EmergencyGF AND NOT DI_EmergencyFF) THEN¡(	// Emergency Abort.¢	Abort();	£END_IF ¤LClient.ActualState := UM.CurrentState;¥>messageQueue(Client := Client);¦äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);§FIF puzzleTimer.iProcess >= 100 THEN¨	//Stop();©rbl(ENABLE := TRUE,TIMELOW := T#250MS,TIMEHIGH:= T#500MS);ªtbl2(ENABLE := TRUE,TIMELOW := T#500MS,TIMEHIGH:= T#500MS);«Interface¬L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}­@FUNCTION_BLOCK LaserStateMachine®VAR_IN_OUT¯.	Client : PuzzleClient;°END_VAR±VAR²8	UM					: PACK_ML.UnitMode; ³(	r_trig				: R_TRIG;´l	xInit				: BOOL := FALSE; // Flag for initialization	µ<	puzzleTimer 		: PuzzleTimer;	¶"	bl 					: blink;·"	bl2 				: blink;¸ 	ton 				: TON;	¹8	KEY_puzzleFinished 	: BOOL;º2	Key_CO_Panel_On		: BOOL;».	overrideStart		: BOOL;¼.	Lock_CO_Match		: BOOL;½L	//DI_NoodstopCabinet	: BOOL	:= TRUE ;¾:	messageQueue : MessageQueue;¿"UniqueIdGeneratorÀ617ÁPOULevelÂL{8e575c5b-1d37-49c6-941b-5c0ec7874787}ÃStandardÄ ChildObjectGuidsÅ8System.Collections.ArrayListÆ,AddAttributeSubsequentÇboolÐÐ-ÐÐ	E
+ñÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­µÚÐ-ÐÐ
­´ÚÐ- ÐÐ
­÷ÚÐ-!ÐÐ
­¶ÚÐ-"ÐÐ
­·ÚÐ-#ÐÐ
­øÚÐ-$ÐÐ
­¯ÚÐ-%ÐÐ
­©ÚÐ-&ÐÐ
­üÚÐ-ÐÐ
­ªÚÐ-'ÐÐ
­«ÚÐ-(ÐÐ
­¬ÚÐ-)ÐÐ
­­ÚÐ-*ÐÐ
­¹ÚÐ-+ÐÐ
­ºÚÐ-,ÐÐ
­»ÚÐ--ÐÐ
­¾ÚÐ-.ÐÐ
­¿ÚÐ-/ÐÐ
­ÀÚÐ-0ÐÐ
­ÁÚÐ-1ÐÐ
­ÂÚÐ-2ÐÐ
­ÃÚÐ-3ÐÐ
­ÄÚÐ-4ÐÐ
­ÅÚÐ-5ÐÐ
­ÆÚÐ-6ÐÐ
­ÇÚÐ-7ÐÐ
­ÈÚÐ-8ÐÐ
­ÉÚÐ-9ÐÐ
­ÎÚÐ-:ÐÐ
­ÏÚÐ-;ÐÐ
­ÐÚÐ-<ÐÐ
­ÑÚÐ-=ÐÐ
­¼ÚÐ->ÐÐ
­¸ÚÐ-%ÐÐ
­½ÚÐ-?ÐÐ
­—ÚÐ-@ÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-AÐÐ
­ÖÚÐ-BÐÐ
­×ÚÐ-CÐÐ
­•ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­ÚÐ-EÐÐ
­uÚÐ-FÐÐ
­ÚÐ-GÐÐ
­vÚÐ-FÐÐ
­ÚÐ-HÐÐ
­wÚÐ-FÐÐ
­ ÚÐ-IÐÐ
­¦ÚÐ-FÐÐ
­ŸÚÐ-JÐÐ
­7ÚÐ-ÐÐ
­2ÚÐ-KÐÐ
­EÚÐ-LÐÐ
­HÚÐ-MÐÐ
­GÚÐ-%ÐÐ
­4ÚÐ-NÐÐ
­[ÚÐ-OÐÐ
­\ÚÐ-LÐÐ
­]ÚÐ-PÐÐ
­^ÚÐ-%ÐÐ
­ZÚÐ-QÐÐ
­8ÚÐ-RÐÐ
­KÚÐ-SÐÐ
­_ÚÐ-TÐÐ
­LÚÐ-UÐÐ
­iÚÐ-VÐÐ
­cÚÐ-TÐÐ
­UÚÐ-WÐÐ
­TÚÐ-!ÐÐ
­?ÚÐ-QÐÐ
­@ÚÐ-XÐÐ
­AÚÐ-YÐÐ
­>ÚÐ-QÐÐ
­0ÚÐ-ÐÐ
­rÚÐ-ÐÐ
­üÚÐ-ZÐÐ
­FÚÐ-[ÐÐ
­ÚÐ-\ÐÐ
­IÚÐ-]ÐÐ
­PÚÐ-^ÐÐ
­QÚÐ-_ÐÐ
­sÚÐ-`ÐÐ
­&ÚÐ-aÐÐ
­RÚÐ-%ÐÐ
­SÚÐ-bÐÐ
­
+ÚÐ-cÐÐ
­"ÚÐ-dÐÐ
­tÚÐ-eÐÐ
­]ÚÐ-fÐÐ
­êÚÐ-gÐÐ
­ÍÚÐ-hÐÐ
­ªÚÐ-iÐÐ
­ðÚÐ-jÐÐ
­ôÚÐ-kÐÐ
­õÚÐ-lÐÐ
­(ÚÐ-mÐÐ
­#ÚÐ-nÐÐ
­óÚÐ-%ÐÐ
­ñÚÐ-?ÐÐ
­YÚÐ-oÐÐ
­ÚÐ-pÐÐ
­´ÚÐ-qÐÐ
­ÙÚÐ-rÐÐ
­ÚÚÐ-?ÐÐ
­\ÚÐ-sÐÐ
­gÚÐ-tÐÐ
­ÝÚÐ-uÐÐ
­”ÚÐ-vÐÐ
­aÚÐ-wÐÐ
­£ÚÐ-xÐÐ
­¬ÚÐ-%ÐÐ
­­ÚÐ-yÐÐ
­±ÚÐ-zÐÐ
­²ÚÐ-{ÐÐ
­×ÚÐ-|ÐÐ
­ìÚÐ-lÐÐ
­`ÚÐ-%ÐÐ
­÷ÚÐ-}ÐÐ
­$ÚÐ-{ÐÐ
­øÚÐ-kÐÐ
­ùÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­úÚÐ-|ÐÐ
­ûÚÐ-lÐÐ
­öÚÐ-%ÐÐ
­bÚÐ-~ÐÐ
­ÚÐ-ÐÐ
­¹ÚÐ-€ÐÐ
­„ÚÐ-ÐÐ
­˜ÚÐ-‚ÐÐ
­fÚÐ-%ÐÐ
­ÓÚÐ-ÐÐ
­ÔÚÐ-yÐÐ
­ÕÚÐ-zÐÐ
­ÖÚÐ-ƒÐÐ
­ØÚÐ-|ÐÐ
­ëÚÐ-lÐÐ
­ÒÚÐ-WÐÐ
­ÚÐ-jÐÐ
­ÚÐ-„ÐÐ
­%ÚÐ-{ÐÐ
­ÚÐ-lÐÐ
­*ÚÐ-mÐÐ
­ÚÐ-|ÐÐ
­ÚÐ-lÐÐ
­JÚÐ-%ÐÐ
­GÚÐ-…ÐÐ
­‡ÚÐ-†ÐÐ
­³ÚÐ-ÐÐ
­áÚÐ-ÐÐ
­âÚÐ-ÐÐ
­àÚÐ-‡ÐÐ
­ŠÚÐ-ˆÐÐ
­‰ÚÐ-ÐÐ
­çÚÐ-‰ÐÐ
­eÚÐ-ŠÐÐ
­+ÚÐ-‹ÐÐ
­þÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­ÚÐ-’ÐÐ
­
ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­¾ÚÐ-•ÐÐ
­ÜÚÐ-–ÐÐ
­ÚÐ-—ÐÐ
­;ÚÐ-–ÐÐ
­ãÚÐ-˜ÐÐ
­fÚÐ-ŠÐÐ
­RÚÐ-™ÐÐ
­SÚÐ-’ÐÐ
­<ÚÐ-–ÐÐ
­.ÚÐ-šÐÐ
­ÚÐ-ÐÐ
­ÚÐ-›ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­ÚÐ-’ÐÐ
­¿ÚÐ-“ÐÐ
­=ÚÐ-–ÐÐ
­åÚÐ-œÐÐ
­,ÚÐ-‹ÐÐ
­WÚÐ-™ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-›ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ ÚÐ-‘ÐÐ
­!ÚÐ-’ÐÐ
­·ÚÐ-“ÐÐ
­RÚÐ-”ÐÐ
­>ÚÐ-–ÐÐ
­[ÚÐ-žÐÐ
­?ÚÐ-–ÐÐ
­	ÚÐ-ŸÐÐ
­gÚÐ-ÐÐ
­€ÚÐ- ÐÐ
­ÚÐ-¡ÐÐ
­ÚÐ-¢ÐÐ
­hÚÐ-£ÐÐ
­ÚÐ-ÐÐ
­PÚÐ-¤ÐÐ
­QÚÐ-ÐÐ
­fÚÐ-¥ÐÐ
­(ÚÐ-ÐÐ
­)ÚÐ-¦ÐÐ
­1ÚÐ-ÐÐ
­0ÚÐ-§ÐÐ
­2ÚÐ-¨ÐÐ
­3ÚÐ-ÐÐ
­+ÚÐ-ÐÐ
­NÚÐ-ÐÐ
­#ÚÐ-©ÐÐ
­¶ÚÐ-ªЫ¬Ð	E
+ÐÐ
­ÚÐ-­ÐÐ
­ÚÐ-®ÐÐ
­ÚÐ-¯ÐÐ
­ÚÐ-°ÐÐ
­ÚÐ-±ÐÐ
­ÚÐ-²ÐÐ
­ÛÚÐ-³ÐÐ
­ÚÐ-´ÐÐ
­%ÚÐ-µÐÐ
­LÚÐ-¶ÐÐ
­•ÚÐ-·ÐÐ
­»ÚÐ-¸ÐÐ
­¥ÚÐ-¹ÐÐ
­þÚÐ-ºÐÐ
­dÚÐ-»ÐÐ
­ýÚÐ-¼ÐÐ
­MÚÐ-½ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-¾ÐÐ
­ÚÐ-°ÐÐ
­ÚÐ-п-ÀÐÁÂ-ÃÄÅÐÆÇ­
\ No newline at end of file