--- a/trunk/Display_Escape_PLC/Plc Logic/Application/Puzzle/BalastTank_PRG/svnobj
+++ b/trunk/Display_Escape_PLC/Plc Logic/Application/Puzzle/BalastTank_PRG/svnobj
@@ -1,4 +1,9 @@
-Gx_lº!0…jüo)
zÅbaiH±XnSystem.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		4	BalastTankPuzzle.ID := 1;^	BalastTankPuzzle.Name := 'Balast Tank Puzzle';‚	BalastTankPuzzle.GUID := 'cc20c9f4-1afc-4966-b527-ee3ae7320124';H	BalastTankPuzzle.MinDuration:=T#2M;J	BalastTankPuzzle.MaxDuration:=T#30M;		b	BalastTankPuzzle.LockCommands[0]:= 'Level Boat';	T	BalastTankPuzzle.KeyCommands[0]:= 'Echo';	xInit := TRUE;END_IFIF xAbort THEN 	puzzle.Abort();IF xClear THEN  	puzzle.Clear();!IF xHold THEN"	puzzle.Hold();#IF xReset THEN$ 	puzzle.Reset();%IF xStart THEN& 	puzzle.Start();'IF xStop THEN(	puzzle.Stop();) IF xSuspend THEN*$	puzzle.Suspend();+IF xUnHold THEN,"	puzzle.UnHold();-$IF xUnSuspend THEN.(	puzzle.UnSuspend();/–IF xActingStateComplete AND puzzle.ActualState = PACK_ML.State.Execute THEN00	puzzle.StateComplete();1Hpuzzle(Client := BalastTankPuzzle); 2Interface3L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}4,PROGRAM BalastTank_PRG5VAR6j	xInit				: BOOL := FALSE; // Flag for initialization7’	BalastTankPuzzle : PuzzleClient; // cc20c9f4-1afc-4966-b527-ee3ae73201248N	puzzle : BalastTankPuzzleStateMachine;9$	xAbort				: BOOL;:8	xActingStateComplete: BOOL;;$	xClear				: BOOL;<"	xHold				: BOOL;=$	xReset				: BOOL;>$	xStart				: BOOL;?"	xStop				: BOOL;@&	xSuspend			: BOOL;A&	xUnHold				: BOOL;B*	xUnSuspend			: BOOL;CEND_VARD"UniqueIdGeneratorE151FPOULevelGL{8e575c5b-1d37-49c6-941b-5c0ec7874787}HStandardI ChildObjectGuidsJ8System.Collections.ArrayListK,AddAttributeSubsequentLboolÐÐ-ÐÐ	E
-0ÐÐ
­hÚÐ-ÐÐ
­iÚÐ-ÐÐ
­jÚÐ-ÐÐ
­kÚÐ-ÐÐ
­lÚÐ-ÐÐ
­mÚÐ-ÐÐ
­nÚÐ-ÐÐ
­oÚÐ-ÐÐ
­pÚÐ-ÐÐ
­qÚÐ-ÐÐ
­rÚÐ-ÐÐ
­sÚÐ-ÐÐ
­tÚÐ-ÐÐ
­uÚÐ-ÐÐ
­vÚÐ-ÐÐ
­wÚÐ-ÐÐ
­xÚÐ-ÐÐ
­yÚÐ-ÐÐ
­zÚÐ-ÐÐ
­{ÚÐ- ÐÐ
­|ÚÐ-ÐÐ
­}ÚÐ-!ÐÐ
­~ÚÐ-"ÐÐ
­ÚÐ-ÐÐ
­€ÚÐ-#ÐÐ
­ÚÐ-$ÐÐ
­‚ÚÐ-ÐÐ
­ƒÚÐ-%ÐÐ
­„ÚÐ-&ÐÐ
­…ÚÐ-ÐÐ
­†ÚÐ-'ÐÐ
­‡ÚÐ-(ÐÐ
­ˆÚÐ-ÐÐ
­‰ÚÐ-)ÐÐ
­ŠÚÐ-*ÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-+ÐÐ
­ÚÐ-,ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ--ÐÐ
­ÚÐ-.ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-/ÐÐ
­”ÚÐ-0ÐÐ
­•ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­ÚÐ-1Ð23Ð	E
-ÐÐ
­VÚÐ-4ÐÐ
­WÚÐ-5ÐÐ
­XÚÐ-6ÐÐ
­YÚÐ-7ÐÐ
­ZÚÐ-8ÐÐ
­—ÚÐ-ÐÐ
­]ÚÐ-9ÐÐ
­^ÚÐ-:ÐÐ
­_ÚÐ-;ÐÐ
­`ÚÐ-<ÐÐ
­aÚÐ-=ÐÐ
­bÚÐ->ÐÐ
­cÚÐ-?ÐÐ
­dÚÐ-@ÐÐ
­eÚÐ-AÐÐ
­fÚÐ-BÐÐ
­gÚÐ-CÐÐ
­ÚÐ-ÐD-EÐFG-HIJÐKL­
\ No newline at end of file
+Gx_l”+!0…jüo;ºpáú1$|$ô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_IF.CASE UM.CurrentState OF,PACK_ML.State.Stopped:	UM.Reset();"	ActualStep := 0;,PACK_ML.State.Aborted: 	UM.Clear();!&PACK_ML.State.Idle:"	UM.Start();#0PACK_ML.State.Complete :$.PACK_ML.State.Execute :%L	IF CMMT_ST_Rotery_Boot.AxisError THEN&		Um.Abort();'$		ActualStep := 0;(		RETURN;)	END_IF*r	CMMT_ST_Rotery_Boot.MoveAbsolute(Position:= BoatAngle , +,				Velocity:= 10000, ,6				Acceleration:= 100000, -6				Deceleration:= 100000, .*				Jerk:= 10000000, /X				BufferMode:= MC_BUFFER_MODE.mcAborting, 0 				ErrorID=> , 1(				ErrorString=> );2		32PACK_ML.State.Resetting :4d	CMMT_ST_Rotery_Boot_MoveAbsolute.Execute:=FALSE;	5B	CMMT_ST_Rotery_Boot.ResetHalt();68	UM.ActingStateCompleted();	70PACK_ML.State.Starting :8*	CASE ActualStep OF		9
+		0:	:			;T			IF NOT CMMT_ST_Rotery_Boot.Enabled THEN<,				ActualStep := 200;=			ELSE>2				ActualStep := 10;				?			END_IF@		10:	A\			IF NOT CMMT_ST_Rotery_Boot.HomingValid THENB,				ActualStep := 210;C4				ActualStep := 300;				D			END_IF	E		200:F^			enable := CMMT_ST_Rotery_Boot.EnableDrive();G"			IF enable THENH(				ActualStep := 0;I			ELSE		J,				ActualStep := 0;		K				UM.Abort();L			END_IF		M		210:NŠ			home := CMMT_ST_Rotery_Boot.Home(Position := 0,HomingMethod := 0);O&			IF home THEN				PF				ActualStep := ActualStep + 10;	Q		220:R\			IF CMMT_ST_Rotery_Boot.HomingValid THEN				S,				ActualStep := 10;	T
+					U		300:V&			ActualStep := 0;W<			UM.ActingStateCompleted();	X	END_CASEY4PACK_ML.State.Completing :Z<		UM.ActingStateCompleted();		[0PACK_ML.State.Aborting :\H	CMMT_ST_Rotery_Boot.DisableDrive();].PACK_ML.State.Stopping:^&	CASE ActualStep OF_		0:`8			StopBoat.Execute := TRUE;a<			StopLinear.Execute := TRUE;b(			ActualStep := 10;c
+		10:dr			IF BoatStatus.Stopping AND LinearStatus.Stopping THEN;e@				StopLinear.Execute := FALSE;f<				StopBoat.Execute := FALSE;g,				ActualStep := 20;	h			END_IF			i
+		20:j>			UM.ActingStateCompleted();		k.PACK_ML.State.Clearing:lP			IF CMMT_ST_Rotery_Boot.AxisError THENm>			CMMT_ST_Rotery_Boot.Reset();n(			ActualStep := 0;	o@			UM.ActingStateCompleted();			pEND_CASEqJ// couple axis to functionblocks hererrBoatStatus (Axis := CMMT_ST_Rotery_Boot, Enable := TRUE);sPStopBoat ( Axis := CMMT_ST_Rotery_Boot);tInterfaceuL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}v,PROGRAM BalastTank_PRGwVARx0	UM	: PACK_ML.UnitMode; yj	xInit				: BOOL := FALSE; // Flag for initializationz,	ActualStep : INT :=0;{	 |P 	moveAbsolute 	: MC_MoveAbsolute_Festo;}6	StopBoat		: MC_Stop_Festo;~<	StopLinear 		: MC_Stop_Festo;F	BoatStatus		: MC_ReadStatus_Festo;€H	LinearStatus	: MC_ReadStatus_Festo;$	enable 			: BOOL;‚ 	home 			: BOOL;ƒ"	bMove 			: BOOL;„r	CMMT_ST_Rotery_Boot_MoveAbsolute :MC_MoveAbsolute_Festo;…END_VAR†"UniqueIdGenerator‡413ˆPOULevel‰L{8e575c5b-1d37-49c6-941b-5c0ec7874787}ŠStandard‹ ChildObjectGuidsŒ8System.Collections.ArrayList,AddAttributeSubsequentŽboolÐÐ-ÐÐ	E
+‡ÐÐ
­‰ÚÐ-ÐÐ
­ŠÚÐ-ÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­‡ÚÐ-ÐÐ
­ˆÚÐ-ÐÐ
­ÖÚÐ-ÐÐ
­tÚÐ-ÐÐ
­×ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­•ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ- ÐÐ
­ÙÚÐ-ÐÐ
­šÚÐ-!ÐÐ
­›ÚÐ-"ÐÐ
­ÛÚÐ-ÐÐ
­œÚÐ-#ÐÐ
­ÚÐ-ÐÐ
­ÝÚÐ-ÐÐ
­ßÚÐ-$ÐÐ
­àÚÐ-%ÐÐ
­áÚÐ-&ÐÐ
­vÚÐ-'ÐÐ
­âÚÐ-(ÐÐ
­ãÚÐ-)ÐÐ
­äÚÐ-ÐÐ
­åÚÐ-*ÐÐ
­æÚÐ-+ÐÐ
­çÚÐ-,ÐÐ
­èÚÐ--ÐÐ
­éÚÐ-.ÐÐ
­êÚÐ-/ÐÐ
­ëÚÐ-0ÐÐ
­ìÚÐ-1ÐÐ
­íÚÐ-ÐÐ
­îÚÐ-ÐÐ
­ïÚÐ-2ÐÐ
­ðÚÐ-3ÐÐ
­ñÚÐ-4ÐÐ
­óÚÐ-5ÐÐ
­wÚÐ-ÐÐ
­ôÚÐ-6ÐÐ
­õÚÐ-7ÐÐ
­öÚÐ-8ÐÐ
­÷ÚÐ-9ÐÐ
­øÚÐ-:ÐÐ
­ùÚÐ-;ÐÐ
­úÚÐ-<ÐÐ
­ûÚÐ-=ÐÐ
­üÚÐ->ÐÐ
­ýÚÐ-?ÐÐ
­þÚÐ-@ÐÐ
­ÿÚÐ-AÐÐ
­ÚÐ-BÐÐ
­ÚÐ-=ÐÐ
­ÚÐ-CÐÐ
­ÚÐ-DÐÐ
­ÚÐ-2ÐÐ
­ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­ÚÐ-GÐÐ
­ÚÐ-HÐÐ
­	ÚÐ-IÐÐ
­xÚÐ-JÐÐ
­
+ÚÐ-KÐÐ
­ÚÐ-LÐÐ
­ÚÐ-MÐÐ
­
ÚÐ-NÐÐ
­ÚÐ-OÐÐ
­ÚÐ-PÐÐ
­ÚÐ-?ÐÐ
­ÚÐ-QÐÐ
­ÚÐ-RÐÐ
­ÚÐ-SÐÐ
­ÚÐ-DÐÐ
­ÚÐ-TÐÐ
­ÚÐ-UÐÐ
­zÚÐ-VÐÐ
­ÚÐ-WÐÐ
­ÚÐ-XÐÐ
­ÚÐ-YÐÐ
­~ÚÐ-'ÐÐ
­ÚÐ-ZÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-\ÐÐ
­ÚÐ-'ÐÐ
­ÚÐ-ZÐÐ
­!ÚÐ-]ÐÐ
­"ÚÐ-ÐÐ
­#ÚÐ-^ÐÐ
­$ÚÐ-_ÐÐ
­%ÚÐ-`ÐÐ
­&ÚÐ-aÐÐ
­'ÚÐ-bÐÐ
­(ÚÐ-cÐÐ
­)ÚÐ-dÐÐ
­*ÚÐ-eÐÐ
­+ÚÐ-fÐÐ
­,ÚÐ-gÐÐ
­-ÚÐ-hÐÐ
­ÚÐ-iÐÐ
­‚ÚÐ-VÐÐ
­.ÚÐ-jÐÐ
­0ÚÐ-XÐÐ
­1ÚÐ-ÐÐ
­2ÚÐ-kÐÐ
­3ÚÐ-ÐÐ
­4ÚÐ-8ÐÐ
­5ÚÐ-9ÐÐ
­6ÚÐ-lÐÐ
­7ÚÐ-<ÐÐ
­8ÚÐ-=ÐÐ
­9ÚÐ-CÐÐ
­:ÚÐ-hÐÐ
­;ÚÐ-2ÐÐ
­<ÚÐ-EÐÐ
­=ÚÐ-mÐÐ
­>ÚÐ-nÐÐ
­?ÚÐ-UÐÐ
­…ÚÐ-VÐÐ
­@ÚÐ-oÐÐ
­AÚÐ-XÐÐ
­BÚÐ-pÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­SÚÐ-qÐÐ
­TÚÐ-rÐÐ
­ÚÐ-sÐtuÐ	E
+ÐÐ
­VÚÐ-vÐÐ
­WÚÐ-wÐÐ
­“ÚÐ-xÐÐ
­”ÚÐ-ÐÐ
­UÚÐ-yÐÐ
­VÚÐ-ÐÐ
­XÚÐ-zÐÐ
­YÚÐ-{ÐÐ
­\ÚÐ-|ÐÐ
­]ÚÐ-}ÐÐ
­^ÚÐ-~ÐÐ
­_ÚÐ-ÐÐ
­`ÚÐ-€ÐÐ
­aÚÐ-ÐÐ
­bÚÐ-ÐÐ
­cÚÐ-‚ÐÐ
­dÚÐ-ƒÐÐ
­eÚÐ-ÐÐ
­nÚÐ-ÐÐ
­qÚÐ-ÐÐ
­fÚÐ-„ÐÐ
­uÚÐ-ÐÐ
­gÚÐ-…ÐÐ
­ÚÐ-І-‡Ј‰-Š‹ŒЍŽ­
\ No newline at end of file