Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj [r25] .. [r26]  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_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}
+Gx_lI!0…jüoî/Lfù‡Úv…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 = 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
+			;	%		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;	|F		IF NOT DI_NoodstopCabinet THEN;		}	30: // Execute~J		LaserGamePuzzle := PACK_ML.Execute;:		ton(PT := T#2M,IN := TRUE);€J		IF Lock_CO_Match THEN				//OR ton.Q(			StateComplete();	‚8			DO_Laser_ON := FALSE;				ƒ@			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À618Á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ÚÐ-}ÐÐ
­ÚÐ-~ÐÐ
­¹ÚÐ-ÐÐ
­„ÚÐ-€ÐÐ
­˜ÚÐ-ÐÐ
­jÚÐ-‚ÐÐ
­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