Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj [r32] .. [r33]  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_l0I!0…jüo“/ù¥eu+Wÿô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_lØJ!0…jüo`0†N'P&ú¯¼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;r		IF (DI_Start_Switch AND NOT DI_Auto_Hand_Switch) OR overrideStart THENs<    		overrideStart := FALSE;	t>			DO_In_Bedrijf_Light	:= TRUE;u0			DO_Laser_ON := TRUE;	v8			Client.ActualStep := 30;	w¸			SendCommand(Command:= CommandType.Key, Value:= Client.KeyCommands[0]);	// cabinet enabledx*		IF NOT DI_Stop THENy:			Client.ActualStep := 10;		zB			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; ²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¾626¿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ÐÐ
­gÚÐ-sÐÐ
­ÝÚÐ-tÐÐ
­”ÚÐ-uÐÐ
­aÚÐ-vÐÐ
­£ÚÐ-wÐÐ
­¬ÚÐ-%ÐÐ
­­ÚÐ-xÐÐ
­±ÚÐ-yÐÐ
­²ÚÐ-zÐÐ
­ìÚÐ-lÐÐ
­`ÚÐ-%ÐÐ
­÷ÚÐ-{ÐÐ
­$ÚÐ-zÐÐ
­øÚÐ-kÐÐ
­ùÚÐ-lÐÐ
­)ÚÐ-mÐÐ
­ûÚÐ-lÐÐ
­öÚÐ-%ÐÐ
­bÚÐ-|ÐÐ
­ÚÐ-}ÐÐ
­¹ÚÐ-~ÐÐ
­„ÚÐ-ÐÐ
­˜ÚÐ-€ÐÐ
­jÚÐ-ÐÐ
­fÚÐ-%ÐÐ
­ÓÚÐ-ÐÐ
­ÔÚÐ-xÐÐ
­ÕÚÐ-yÐÐ
­ÖÚÐ-‚ÐÐ
­ëÚÐ-lÐÐ
­ÒÚÐ-WÐÐ
­ÚÐ-jÐÐ
­ÚÐ-ƒÐÐ
­%ÚÐ-zÐÐ
­ÚÐ-lÐÐ
­*ÚÐ-mÐÐ
­ÚÐ-lÐÐ
­JÚÐ-%ÐÐ
­GÚÐ-„ÐÐ
­‡ÚÐ-…ÐÐ
­³ÚÐ-ÐÐ
­áÚÐ-ÐÐ
­âÚÐ-ÐÐ
­àÚÐ-†ÐÐ
­ŠÚÐ-‡ÐÐ
­‰ÚÐ-ÐÐ
­çÚÐ-ˆÐÐ
­eÚÐ-‰ÐÐ
­+ÚÐ-ŠÐÐ
­þÚÐ-‹ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­
ÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­¾ÚÐ-”ÐÐ
­ÜÚÐ-•ÐÐ
­ÚÐ-–ÐÐ
­;ÚÐ-•ÐÐ
­ãÚÐ-—ÐÐ
­fÚÐ-‰ÐÐ
­RÚÐ-˜ÐÐ
­kÚÐ-ŒÐÐ
­lÚÐ-ÐÐ
­mÚÐ-ŽÐÐ
­nÚÐ-ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-‘ÐÐ
­qÚÐ-’ÐÐ
­<ÚÐ-•ÐÐ
­.ÚÐ-™ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-šÐÐ
­ÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­¿ÚÐ-’ÐÐ
­=ÚÐ-•ÐÐ
­åÚÐ-›ÐÐ
­,ÚÐ-ŠÐÐ
­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
+			;	%		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(		Screen_ON := TRUE;G;H,PACK_ML.State.Aborted:I&PACK_ML.State.Idle:J*		Screen_ON := FALSE;K0PACK_ML.State.Complete :L.PACK_ML.State.Execute :MD	IF puzzleTimer.iProcess = 25 THENN@		IF Client.ActualStep < 30 THENOÊ			SendCommand(Command := CommandType.Hint ,Value := 'Enable the cabinet with PACKML, look up.');				P	END_IF	QD	IF puzzleTimer.iProcess = 30 THENRˆ			SendCommand(Command := CommandType.Media ,Value := 'PACKML');				S	END_IFTD	IF puzzleTimer.iProcess = 50 THENUB		IF Client.ActualStep >= 30 THENVè			SendCommand(Command := CommandType.Hint ,Value := 'Enable the drives and positon them in the Automation Suite.');W		ELSE			X8    		overrideStart := TRUE;Y		END_IF	ZD	IF puzzleTimer.iProcess = 75 THEN[–		SendCommand(Command := CommandType.Media ,Value := 'Automation Suite');		\4	CASE Client.ActualStep OF]	0: // aborted^X		LaserGameCabinetPuzzle := PACK_ML.Aborted;_6		DO_Reset_Light := bl.OUT;`”		IF DI_Reset AND NOT DI_Auto_Hand_Switch AND DI_NoodstopCabinet THEN					a6			Client.ActualStep := 10;b6			DO_Reset_Light := FALSE;c:			DO_Spanning_Light := TRUE;d	10:	// StoppedeX		LaserGameCabinetPuzzle := PACK_ML.Stopped;f6		DO_Storing_Light := TRUE;g€		IF (overrideStart OR DI_Init )AND NOT DI_Auto_Hand_Switch THENh6			Client.ActualStep := 20;i6			DO_HintLaser_ON := TRUE;j@			DO_Storing_Light := FALSE;			k		END_IF		lB		IF NOT DI_NoodstopCabinet THEN;m4			Client.ActualStep := 0;n8			DO_HintLaser_ON := FALSE;o<			DO_Spanning_Light := FALSE;p<			DO_Storing_Light := FALSE;	q	20: // IdlerR		LaserGameCabinetPuzzle := PACK_ML.Idle;sB		DO_In_Bedrijf_Light := bl2.OUT;t		IF (DI_Start_Switch AND NOT DI_Auto_Hand_Switch) OR overrideStart THENu<    		overrideStart := FALSE;	v>			DO_In_Bedrijf_Light	:= TRUE;w0			DO_Laser_ON := TRUE;	x8			Client.ActualStep := 30;	y¸			SendCommand(Command:= CommandType.Key, Value:= Client.KeyCommands[0]);	// cabinet enabledz*		IF NOT DI_Stop THEN{:			Client.ActualStep := 10;		|B			DO_In_Bedrijf_Light := FALSE;	}F		IF NOT DI_NoodstopCabinet THEN;		~	30: // ExecuteX		LaserGameCabinetPuzzle := PACK_ML.Execute;€:		ton(PT := T#2M,IN := TRUE);J		IF Lock_CO_Match THEN				//OR ton.Q‚(			StateComplete();	ƒ0			DO_Laser_ON := FALSE;„4			Screen_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;L	LaserGameCabinetPuzzle := 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; µ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Á638Â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ÐÐ
­}ÚÐ-FÐÐ
­uÚÐ-GÐÐ
­ÚÐ-HÐÐ
­~ÚÐ-FÐÐ
­vÚÐ-GÐÐ
­ÚÐ-IÐÐ
­|ÚÐ-JÐÐ
­wÚÐ-GÐÐ
­ ÚÐ-KÐÐ
­{ÚÐ-JÐÐ
­¦ÚÐ-GÐÐ
­ŸÚÐ-LÐÐ
­7ÚÐ-ÐÐ
­2ÚÐ-MÐÐ
­EÚÐ-NÐÐ
­HÚÐ-OÐÐ
­GÚÐ-%ÐÐ
­4ÚÐ-PÐÐ
­[ÚÐ-QÐÐ
­\ÚÐ-NÐÐ
­]ÚÐ-RÐÐ
­^ÚÐ-%ÐÐ
­ZÚÐ-SÐÐ
­8ÚÐ-TÐÐ
­KÚÐ-UÐÐ
­_ÚÐ-VÐÐ
­LÚÐ-WÐÐ
­iÚÐ-XÐÐ
­cÚÐ-VÐÐ
­UÚÐ-YÐÐ
­TÚÐ-!ÐÐ
­?ÚÐ-SÐÐ
­@ÚÐ-ZÐÐ
­AÚÐ-[ÐÐ
­>ÚÐ-SÐÐ
­0ÚÐ-ÐÐ
­rÚÐ-ÐÐ
­üÚÐ-\ÐÐ
­FÚÐ-]ÐÐ
­xÚÐ-JÐÐ
­ÚÐ-^ÐÐ
­IÚÐ-_ÐÐ
­PÚÐ-`ÐÐ
­QÚÐ-aÐÐ
­sÚÐ-bÐÐ
­&ÚÐ-cÐÐ
­RÚÐ-%ÐÐ
­SÚÐ-dÐÐ
­wÚÐ-JÐÐ
­
+ÚÐ-eÐÐ
­"ÚÐ-fÐÐ
­tÚÐ-gÐÐ
­]ÚÐ-hÐÐ
­êÚÐ-iÐÐ
­ÍÚÐ-jÐÐ
­ªÚÐ-kÐÐ
­ðÚÐ-lÐÐ
­ôÚÐ-mÐÐ
­õÚÐ-nÐÐ
­(ÚÐ-oÐÐ
­#ÚÐ-pÐÐ
­óÚÐ-%ÐÐ
­ñÚÐ-?ÐÐ
­YÚÐ-qÐÐ
­vÚÐ-JÐÐ
­ÚÐ-rÐÐ
­´ÚÐ-sÐÐ
­ÙÚÐ-?ÐÐ
­ÚÚÐ-?ÐÐ
­\ÚÐ-tÐÐ
­gÚÐ-uÐÐ
­ÝÚÐ-vÐÐ
­”ÚÐ-wÐÐ
­aÚÐ-xÐÐ
­£ÚÐ-yÐÐ
­¬ÚÐ-%ÐÐ
­­ÚÐ-zÐÐ
­±ÚÐ-{ÐÐ
­²ÚÐ-|ÐÐ
­ìÚÐ-nÐÐ
­`ÚÐ-%ÐÐ
­÷ÚÐ-}ÐÐ
­$ÚÐ-|ÐÐ
­øÚÐ-mÐÐ
­ùÚÐ-nÐÐ
­)ÚÐ-oÐÐ
­ûÚÐ-nÐÐ
­öÚÐ-%ÐÐ
­bÚÐ-~ÐÐ
­ÚÐ-ÐÐ
­uÚÐ-FÐÐ
­¹ÚÐ-€ÐÐ
­„ÚÐ-ÐÐ
­˜ÚÐ-‚ÐÐ
­jÚÐ-ƒÐÐ
­yÚÐ-„ÐÐ
­fÚÐ-%ÐÐ
­ÓÚÐ-ÐÐ
­ÔÚÐ-zÐÐ
­ÕÚÐ-{ÐÐ
­ÖÚÐ-…ÐÐ
­ëÚÐ-nÐÐ
­ÒÚÐ-YÐÐ
­ÚÐ-lÐÐ
­ÚÐ-†ÐÐ
­%ÚÐ-|ÐÐ
­ÚÐ-nÐÐ
­*ÚÐ-oÐÐ
­ÚÐ-nÐÐ
­JÚÐ-%ÐÐ
­GÚÐ-‡ÐÐ
­‡ÚÐ-ˆÐÐ
­³ÚÐ-ÐÐ
­áÚÐ-ÐÐ
­âÚÐ-ÐÐ
­àÚÐ-‰ÐÐ
­ŠÚÐ-ŠÐÐ
­‰ÚÐ-ÐÐ
­çÚÐ-‹ÐÐ
­eÚÐ-ŒÐÐ
­+ÚÐ-ÐÐ
­þÚÐ-ŽÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­ÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­
ÚÐ-•ÐÐ
­ÚÐ-–ÐÐ
­¾ÚÐ-—ÐÐ
­ÜÚÐ-˜ÐÐ
­ÚÐ-™ÐÐ
­;ÚÐ-˜ÐÐ
­ãÚÐ-šÐÐ
­fÚÐ-ŒÐÐ
­RÚÐ-›ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-ÐÐ
­mÚÐ-‘ÐÐ
­nÚÐ-’ÐÐ
­oÚÐ-“ÐÐ
­pÚÐ-”ÐÐ
­qÚÐ-•ÐÐ
­<ÚÐ-˜ÐÐ
­.ÚÐ-œÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-‘ÐÐ
­ÚÐ-’ÐÐ
­ÚÐ-“ÐÐ
­ÚÐ-”ÐÐ
­¿ÚÐ-•ÐÐ
­=ÚÐ-˜ÐÐ
­åÚÐ-žÐÐ
­,ÚÐ-ÐÐ
­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