Diff of /branches/PackMLState/Main_Escape_PLC/Plc Logic/Application/Function Blocks/Puzzle/LaserStateMachine/svnobj [r15] .. [r16]  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,7 @@
-Gx_löF!0…jüo‡.¬…íñGܲ>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
+G!0…jüo.Ñ^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;:	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;˜6	DO_HintLaser_ON := FALSE;;™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º593»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ÚÐ-“ÐÐ
­<ÚÐ-ÐÐ
­.ÚÐ-”ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-•ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-‹ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­¿ÚÐ-ŽÐÐ
­=ÚÐ-ÐÐ
­åÚÐ-–ÐÐ
­,ÚÐ-†ÐÐ
­WÚÐ-“ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-•ÐÐ
­ÚÐ-—ÐÐ
­ÚÐ-‹ÐÐ
­ ÚÐ-ŒÐÐ
­!ÚÐ-ÐÐ
­·ÚÐ-˜ÐÐ
­>ÚÐ-ÐÐ
­[ÚÐ-™ÐÐ
­?ÚÐ-ÐÐ
­	ÚÐ-šÐÐ
­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 = 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º594»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ÚÐ-”ÐÐ
­<ÚÐ-‘ÐÐ
­.ÚÐ-•ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-–ÐÐ
­ÚÐ-ŠÐÐ
­ÚÐ-‹ÐÐ
­ÚÐ-ŒÐÐ
­ÚÐ-ÐÐ
­¿ÚÐ-ŽÐÐ
­=ÚÐ-‘ÐÐ
­åÚÐ-—ÐÐ
­,ÚÐ-†ÐÐ
­WÚÐ-”ÐÐ
­ÚÐ-ˆÐÐ
­ÚÐ-–ÐÐ
­ÚÐ-˜ÐÐ
­ÚÐ-‹ÐÐ
­ ÚÐ-ŒÐÐ
­!ÚÐ-ÐÐ
­·ÚÐ-ŽÐÐ
­RÚÐ-ÐÐ
­>ÚÐ-‘ÐÐ
­[ÚÐ-™ÐÐ
­?ÚÐ-‘ÐÐ
­	ÚÐ-šÐÐ
­gÚÐ-ÐÐ
­€ÚÐ-›ÐÐ
­ÚÐ-œÐÐ
­ÚÐ-ÐÐ
­hÚÐ-žÐÐ
­ÚÐ-ÐÐ
­PÚÐ-ŸÐÐ
­QÚÐ-ÐÐ
­fÚÐ- ÐÐ
­(ÚÐ-ÐÐ
­)ÚÐ-¡ÐÐ
­1ÚÐ-ÐÐ
­0ÚÐ-¢ÐÐ
­2ÚÐ-£ÐÐ
­3ÚÐ-ÐÐ
­+ÚÐ-ÐÐ
­NÚÐ-ÐÐ
­#ÚÐ-¤ÐÐ
­¶ÚÐ-¥Ц§Ð	E
 ÐÐ
­ÚÐ-¨ÐÐ
­ÚÐ-©ÐÐ
­ÚÐ-ªÐÐ
­ÚÐ-«ÐÐ
­ÚÐ-¬ÐÐ
­ÚÐ-­ÐÐ
­ÛÚÐ-®ÐÐ
­ÚÐ-¯ÐÐ
­%ÚÐ-°ÐÐ
­LÚÐ-±ÐÐ
­•ÚÐ-²ÐÐ
­»ÚÐ-³ÐÐ
­¥ÚÐ-´ÐÐ
­þÚÐ-µÐÐ
­ýÚÐ-¶ÐÐ
­MÚÐ-·ÐÐ
­MÚÐ-ÐÐ
­NÚÐ-ÐÐ
­OÚÐ-¸ÐÐ
­ÚÐ-«ÐÐ
­ÚÐ-й-ºл¼-½¾¿ÐÀÁ­
\ No newline at end of file