--- 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,9 +1,9 @@
-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
+Gx_l,!0…jüo¨¤õ{¯JÍþ‡Â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,/l				Direction:= Festo_PtP_Base.MC_DIRECTION.mcNormal, 0X				BufferMode:= MC_BUFFER_MODE.mcAborting, 1 				ErrorID=> , 2(				ErrorString=> );3		42PACK_ML.State.Resetting :5d	CMMT_ST_Rotery_Boot_MoveAbsolute.Execute:=FALSE;	6B	CMMT_ST_Rotery_Boot.ResetHalt();78	UM.ActingStateCompleted();	80PACK_ML.State.Starting :9*	CASE ActualStep OF		:
+		0:	;			<T			IF NOT CMMT_ST_Rotery_Boot.Enabled THEN=,				ActualStep := 200;>			ELSE?2				ActualStep := 10;				@			END_IFA		10:	B\			IF NOT CMMT_ST_Rotery_Boot.HomingValid THENC,				ActualStep := 210;D4				ActualStep := 300;				E			END_IF	F		200:G^			enable := CMMT_ST_Rotery_Boot.EnableDrive();H"			IF enable THENI(				ActualStep := 0;J			ELSE		K,				ActualStep := 0;		L				UM.Abort();M			END_IF		N		210:OŠ			home := CMMT_ST_Rotery_Boot.Home(Position := 0,HomingMethod := 0);P&			IF home THEN				QF				ActualStep := ActualStep + 10;	R		220:S\			IF CMMT_ST_Rotery_Boot.HomingValid THEN				T,				ActualStep := 10;	U
+					V		300:W&			ActualStep := 0;X<			UM.ActingStateCompleted();	Y	END_CASEZ4PACK_ML.State.Completing :[<		UM.ActingStateCompleted();		\0PACK_ML.State.Aborting :]H	CMMT_ST_Rotery_Boot.DisableDrive();^.PACK_ML.State.Stopping:_&	CASE ActualStep OF`		0:a8			StopBoat.Execute := TRUE;b<			StopLinear.Execute := TRUE;c(			ActualStep := 10;d
+		10:er			IF BoatStatus.Stopping AND LinearStatus.Stopping THEN;f@				StopLinear.Execute := FALSE;g<				StopBoat.Execute := FALSE;h,				ActualStep := 20;	i			END_IF			j
+		20:k>			UM.ActingStateCompleted();		l.PACK_ML.State.Clearing:mP			IF CMMT_ST_Rotery_Boot.AxisError THENn>			CMMT_ST_Rotery_Boot.Reset();o(			ActualStep := 0;	p@			UM.ActingStateCompleted();			qEND_CASErJ// couple axis to functionblocks heresrBoatStatus (Axis := CMMT_ST_Rotery_Boot, Enable := TRUE);tPStopBoat ( Axis := CMMT_ST_Rotery_Boot);uInterfacevL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}w,PROGRAM BalastTank_PRGxVARy0	UM	: PACK_ML.UnitMode; zj	xInit				: BOOL := FALSE; // Flag for initialization{,	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ˆ414‰POULevelŠL{8e575c5b-1d37-49c6-941b-5c0ec7874787}‹StandardŒ ChildObjectGuids8System.Collections.ArrayListŽ,AddAttributeSubsequentboolÐÐ-ÐÐ	E
+ˆÐÐ
­‰ÚÐ-ÐÐ
­ŠÚÐ-ÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­‡ÚÐ-ÐÐ
­ˆÚÐ-ÐÐ
­ÖÚÐ-ÐÐ
­tÚÐ-ÐÐ
­×ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­•ÚÐ-ÐÐ
­˜ÚÐ-ÐÐ
­™ÚÐ- ÐÐ
­ÙÚÐ-ÐÐ
­šÚÐ-!ÐÐ
­›ÚÐ-"ÐÐ
­ÛÚÐ-ÐÐ
­œÚÐ-#ÐÐ
­ÚÐ-ÐÐ
­ÝÚÐ-ÐÐ
­ßÚÐ-$ÐÐ
­àÚÐ-%ÐÐ
­áÚÐ-&ÐÐ
­vÚÐ-'ÐÐ
­âÚÐ-(ÐÐ
­ãÚÐ-)ÐÐ
­äÚÐ-ÐÐ
­åÚÐ-*ÐÐ
­æÚÐ-+ÐÐ
­çÚÐ-,ÐÐ
­èÚÐ--ÐÐ
­éÚÐ-.ÐÐ
­žÚÐ-/ÐÐ
­êÚÐ-0ÐÐ
­ëÚÐ-1ÐÐ
­ìÚÐ-2ÐÐ
­íÚÐ-ÐÐ
­îÚÐ-ÐÐ
­ïÚÐ-3ÐÐ
­ðÚÐ-4ÐÐ
­ñÚÐ-5ÐÐ
­óÚÐ-6ÐÐ
­wÚÐ-ÐÐ
­ôÚÐ-7ÐÐ
­õÚÐ-8ÐÐ
­öÚÐ-9ÐÐ
­÷ÚÐ-:ÐÐ
­øÚÐ-;ÐÐ
­ùÚÐ-<ÐÐ
­úÚÐ-=ÐÐ
­ûÚÐ->ÐÐ
­üÚÐ-?ÐÐ
­ýÚÐ-@ÐÐ
­þÚÐ-AÐÐ
­ÿÚÐ-BÐÐ
­ÚÐ-CÐÐ
­ÚÐ->ÐÐ
­ÚÐ-DÐÐ
­ÚÐ-EÐÐ
­ÚÐ-3ÐÐ
­ÚÐ-FÐÐ
­ÚÐ-GÐÐ
­ÚÐ-HÐÐ
­ÚÐ-IÐÐ
­	ÚÐ-JÐÐ
­xÚÐ-KÐÐ
­
+ÚÐ-LÐÐ
­ÚÐ-MÐÐ
­ÚÐ-NÐÐ
­
ÚÐ-OÐÐ
­ÚÐ-PÐÐ
­ÚÐ-QÐÐ
­ÚÐ-@ÐÐ
­ÚÐ-RÐÐ
­ÚÐ-SÐÐ
­ÚÐ-TÐÐ
­ÚÐ-EÐÐ
­ÚÐ-UÐÐ
­ÚÐ-VÐÐ
­zÚÐ-WÐÐ
­ÚÐ-XÐÐ
­ÚÐ-YÐÐ
­ÚÐ-ZÐÐ
­~ÚÐ-'ÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-\ÐÐ
­ÚÐ-]ÐÐ
­ÚÐ-'ÐÐ
­ÚÐ-[ÐÐ
­!ÚÐ-^ÐÐ
­"ÚÐ-ÐÐ
­#ÚÐ-_ÐÐ
­$ÚÐ-`ÐÐ
­%ÚÐ-aÐÐ
­&ÚÐ-bÐÐ
­'ÚÐ-cÐÐ
­(ÚÐ-dÐÐ
­)ÚÐ-eÐÐ
­*ÚÐ-fÐÐ
­+ÚÐ-gÐÐ
­,ÚÐ-hÐÐ
­-ÚÐ-iÐÐ
­ÚÐ-jÐÐ
­‚ÚÐ-WÐÐ
­.ÚÐ-kÐÐ
­0ÚÐ-YÐÐ
­1ÚÐ-ÐÐ
­2ÚÐ-lÐÐ
­3ÚÐ-ÐÐ
­4ÚÐ-9ÐÐ
­5ÚÐ-:ÐÐ
­6ÚÐ-mÐÐ
­7ÚÐ-=ÐÐ
­8ÚÐ->ÐÐ
­9ÚÐ-DÐÐ
­:ÚÐ-iÐÐ
­;ÚÐ-3ÐÐ
­<ÚÐ-FÐÐ
­=ÚÐ-nÐÐ
­>ÚÐ-oÐÐ
­?ÚÐ-VÐÐ
­…ÚÐ-WÐÐ
­@ÚÐ-pÐÐ
­AÚÐ-YÐÐ
­BÚÐ-qÐÐ
­IÚÐ-ÐÐ
­JÚÐ-ÐÐ
­SÚÐ-rÐÐ
­TÚÐ-sÐÐ
­ÚÐ-tÐuvÐ	E
+ÐÐ
­VÚÐ-wÐÐ
­WÚÐ-xÐÐ
­“ÚÐ-yÐÐ
­”ÚÐ-ÐÐ
­UÚÐ-zÐÐ
­VÚÐ-ÐÐ
­XÚÐ-{ÐÐ
­YÚÐ-|ÐÐ
­\ÚÐ-}ÐÐ
­]ÚÐ-~ÐÐ
­^ÚÐ-ÐÐ
­_ÚÐ-€ÐÐ
­`ÚÐ-ÐÐ
­aÚÐ-ÐÐ
­bÚÐ-‚ÐÐ
­cÚÐ-ƒÐÐ
­dÚÐ-„ÐÐ
­eÚÐ-ÐÐ
­nÚÐ-ÐÐ
­qÚÐ-ÐÐ
­fÚÐ-…ÐÐ
­uÚÐ-ÐÐ
­gÚÐ-†ÐÐ
­ÚÐ-Ї-ˆЉŠ-‹ŒЎ­
\ No newline at end of file