--- a/trunk/CODESYS_Control_Win_V3/Plc Logic/Application/Function Blocks/IO/ExampleIOStateMachine/svnobj
+++ b/trunk/CODESYS_Control_Win_V3/Plc Logic/Application/Function Blocks/IO/ExampleIOStateMachine/svnobj
@@ -1,5 +1,6 @@
-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,2							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		 0			//First Lock Function!°			SendCommand(Client:= Client, Command:= CommandType.Key,Value:=Client.KeyCommands[0]);"–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		#2			//Second Lock Function$´			SendCommand(Client := Client, Command:= CommandType.Key,Value:=Client.KeyCommands[1]);	%		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:I2PACK_ML.State.Complete :	J.PACK_ML.State.Execute :K2PACK_ML.State.Resetting :L"	StateComplete();M0PACK_ML.State.Starting :N4PACK_ML.State.Completing :O0PACK_ML.State.Aborting :P.PACK_ML.State.Stopping:Q2PACK_ML.State.Clearing :	REND_CASES.IF NOT EmergencyGF THENT(	// Emergency Abort.U	Abort();	VEND_IF WLClient.ActualState := UM.CurrentState;XInterfaceYL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}ZHFUNCTION_BLOCK ExampleIOStateMachine[VAR_IN_OUT\&	Client : IOClient;]END_VAR^VAR_0	UM	: PACK_ML.UnitMode; `j	xInit				: BOOL := FALSE; // Flag for initializationa"UniqueIdGeneratorb266cPOULeveldL{8e575c5b-1d37-49c6-941b-5c0ec7874787}eStandardf ChildObjectGuidsg8System.Collections.ArrayListh,AddAttributeSubsequentiboolÐÐ-ÐÐ	E
-]ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ-ÐÐ
­µÚÐ-ÐÐ
­´ÚÐ- ÐÐ
­
-ÚÐ-!ÐÐ
­¶ÚÐ-"ÐÐ
­·ÚÐ-#ÐÐ
­øÚÐ-$ÐÐ
­¯ÚÐ-%ÐÐ
­ÚÚÐ-&ÐÐ
­ªÚÐ-'ÐÐ
­«ÚÐ-(ÐÐ
­¬ÚÐ-)ÐÐ
­­ÚÐ-*ÐÐ
­¹ÚÐ-+ÐÐ
­ºÚÐ-,ÐÐ
­»ÚÐ--ÐÐ
­¾ÚÐ-.ÐÐ
­¿ÚÐ-/ÐÐ
­ÀÚÐ-0ÐÐ
­ÁÚÐ-1ÐÐ
­ÂÚÐ-2ÐÐ
­ÃÚÐ-3ÐÐ
­ÄÚÐ-4ÐÐ
­ÅÚÐ-5ÐÐ
­ÆÚÐ-6ÐÐ
­ÇÚÐ-7ÐÐ
­ÈÚÐ-8ÐÐ
­ÉÚÐ-9ÐÐ
­ÎÚÐ-:ÐÐ
­ÏÚÐ-;ÐÐ
­ÐÚÐ-<ÐÐ
­ÑÚÐ-=ÐÐ
­¼ÚÐ->ÐÐ
­¸ÚÐ-%ÐÐ
­½ÚÐ-?ÐÐ
­—ÚÐ-@ÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-AÐÐ
­ÖÚÐ-BÐÐ
­×ÚÐ-CÐÐ
­•ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-ÐÐ
­“ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-DÐÐ
­ÚÐ-EÐÐ
­ÚÐ-FÐÐ
­ÚÐ-GÐÐ
­ÚÐ-FÐÐ
­ÚÐ-HÐÐ
­ÚÐ-FÐÐ
­ ÚÐ-IÐÐ
­¦ÚÐ-FÐÐ
­ŸÚÐ-JÐÐ
­üÚÐ-FÐÐ
­þÚÐ-KÐÐ
­ÿÚÐ-LÐÐ
­ÚÐ-MÐÐ
­ÚÐ-LÐÐ
­RÚÐ-NÐÐ
­ÚÐ-LÐÐ
­UÚÐ-OÐÐ
­ÚÐ-LÐÐ
­WÚÐ-PÐÐ
­ÚÐ-LÐÐ
­[ÚÐ-QÐÐ
­	ÚÐ-LÐÐ
­	ÚÐ-RÐÐ
­gÚÐ-ÐÐ
­€ÚÐ-SÐÐ
­ÚÐ-TÐÐ
­ÚÐ-UÐÐ
­hÚÐ-VÐÐ
­ÚÐ-ÐÐ
­fÚÐ-WÐXYÐ	E
-ÐÐ
­éÚÐ-ZÐÐ
­êÚÐ-[ÐÐ
­ëÚÐ-\ÐÐ
­ïÚÐ-]ÐÐ
­ðÚÐ-^ÐÐ
­ñÚÐ-_ÐÐ
­óÚÐ-ÐÐ
­ôÚÐ-`ÐÐ
­õÚÐ-ÐÐ
­öÚÐ-]ÐÐ
­ÚÐ-Ða-bÐcd-efgÐhi­
\ No newline at end of file
+Gx_lá#!0…jüoèÈddÑ
+‘ø|‚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
longTagText4//---- Client init  ----\\$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,2							xActive := TRUE); 	xInit := TRUE;	END_IFD//---- Client communicatie  ----\\4IF Client.bReadyToPLC THEN:	CASE Client.iCommandToPLC OF"	0 : 	//Handshake 	1 : 	//Lock!		IF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[0]) =  0 THEN		"0			//First Lock Function#Ž			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[0]);$–		ELSIF SysStrCmp(Client.sCommandToPLC, Client.LockCommands[1]) =  0 THEN		%2			//Second Lock Function&			SendCommand(Command:= CommandType.Key,Value:=Client.KeyCommands[1]);	'		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		0			Start();1v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Stop') =  0 THEN		2			Stop();3x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Reset') =  0 THEN		4			Reset();5x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Abort') =  0 THEN		6			Abort();7x		ELSIF SysStrCmp(Client.sCommandToPLC, 'Clear') =  0 THEN		8			Clear();9v		ELSIF SysStrCmp(Client.sCommandToPLC, 'Hold') =  0 THEN		:			Hold();;z		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnHold') =  0 THEN		<			Unhold();	=|		ELSIF SysStrCmp(Client.sCommandToPLC, 'Suspend') =  0 THEN		>			Suspend();?€		ELSIF SysStrCmp(Client.sCommandToPLC, 'UnSuspend') =  0 THEN		@			UnSuspend();A		B	END_CASEC6	Client.iCommandToPLC := 0;D8	Client.sCommandToPLC := '';E:	Client.bReadyToPLC := FALSE;FD//---- Client statemachine  ----\\G.CASE UM.CurrentState OFH,PACK_ML.State.Stopped:I	;J,PACK_ML.State.Aborted:K&PACK_ML.State.Idle:L2PACK_ML.State.Complete :	M.PACK_ML.State.Execute :N2PACK_ML.State.Resetting :O"	StateComplete();P0PACK_ML.State.Starting :Q4PACK_ML.State.Completing :R0PACK_ML.State.Aborting :S.PACK_ML.State.Stopping:T2PACK_ML.State.Clearing :	UEND_CASEV.//---- Emergency ----\\W*IF NOT Emergency THENX(	// Emergency Abort.Y	Abort();	ZEND_IF [8//---- State handling ----\\\LClient.ActualState := UM.CurrentState;]>messageQueue(Client := Client);^Interface_L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}`HFUNCTION_BLOCK ExampleIOStateMachineaVAR_IN_OUTb&	Client : IOClient;cEND_VARdVARe0	UM	: PACK_ML.UnitMode; fj	xInit				: BOOL := FALSE; // Flag for initializationg:	messageQueue : MessageQueue;h"UniqueIdGeneratori279jPOULevelkL{8e575c5b-1d37-49c6-941b-5c0ec7874787}lStandardm ChildObjectGuidsn8System.Collections.ArrayListo,AddAttributeSubsequentpboolÐÐ-ÐÐ	E
+eÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­lÚÐ-ÐÐ
­eÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ŽÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­”ÚÐ-ÐÐ
­®ÚÐ-ÐÐ
­–ÚÐ- ÐÐ
­µÚÐ-!ÐÐ
­´ÚÐ-"ÐÐ
­
+ÚÐ-#ÐÐ
­¶ÚÐ-$ÐÐ
­·ÚÐ-%ÐÐ
­øÚÐ-&ÐÐ
­¯ÚÐ-'ÐÐ
­ÚÚÐ-(ÐÐ
­ªÚÐ-)ÐÐ
­«ÚÐ-*ÐÐ
­¬ÚÐ-+ÐÐ
­­ÚÐ-,ÐÐ
­¹ÚÐ--ÐÐ
­ºÚÐ-.ÐÐ
­»ÚÐ-/ÐÐ
­¾ÚÐ-0ÐÐ
­¿ÚÐ-1ÐÐ
­ÀÚÐ-2ÐÐ
­ÁÚÐ-3ÐÐ
­ÂÚÐ-4ÐÐ
­ÃÚÐ-5ÐÐ
­ÄÚÐ-6ÐÐ
­ÅÚÐ-7ÐÐ
­ÆÚÐ-8ÐÐ
­ÇÚÐ-9ÐÐ
­ÈÚÐ-:ÐÐ
­ÉÚÐ-;ÐÐ
­ÎÚÐ-<ÐÐ
­ÏÚÐ-=ÐÐ
­ÐÚÐ->ÐÐ
­ÑÚÐ-?ÐÐ
­¼ÚÐ-@ÐÐ
­¸ÚÐ-'ÐÐ
­½ÚÐ-AÐÐ
­—ÚÐ-BÐÐ
­ÓÚÐ-ÐÐ
­ÕÚÐ-CÐÐ
­ÖÚÐ-DÐÐ
­×ÚÐ-EÐÐ
­•ÚÐ-ÐÐ
­‘ÚÐ-ÐÐ
­’ÚÐ-FÐÐ
­ÚÐ-ÐÐ
­ÚÐ-GÐÐ
­ÚÐ-HÐÐ
­ÚÐ-IÐÐ
­ÚÐ-JÐÐ
­ÚÐ-IÐÐ
­ÚÐ-KÐÐ
­ÚÐ-IÐÐ
­ ÚÐ-LÐÐ
­¦ÚÐ-IÐÐ
­ŸÚÐ-MÐÐ
­üÚÐ-IÐÐ
­þÚÐ-NÐÐ
­ÿÚÐ-OÐÐ
­ÚÐ-PÐÐ
­ÚÐ-OÐÐ
­RÚÐ-QÐÐ
­ÚÐ-OÐÐ
­UÚÐ-RÐÐ
­ÚÐ-OÐÐ
­WÚÐ-SÐÐ
­ÚÐ-OÐÐ
­[ÚÐ-TÐÐ
­	ÚÐ-OÐÐ
­	ÚÐ-UÐÐ
­ÚÐ-ÐÐ
­ÚÐ-VÐÐ
­gÚÐ-ÐÐ
­€ÚÐ-WÐÐ
­ÚÐ-XÐÐ
­ÚÐ-YÐÐ
­hÚÐ-ZÐÐ
­ÚÐ-ÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-ÐÐ
­fÚÐ-\ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-]ÐÐ
­ÚÐ-Ð^_Ð	E
+ÐÐ
­éÚÐ-`ÐÐ
­êÚÐ-aÐÐ
­ëÚÐ-bÐÐ
­ïÚÐ-cÐÐ
­ðÚÐ-dÐÐ
­ñÚÐ-eÐÐ
­óÚÐ-ÐÐ
­ôÚÐ-fÐÐ
­õÚÐ-ÐÐ
­ÚÐ-gÐÐ
­öÚÐ-cÐÐ
­ÚÐ-Ðh-iÐjk-lmnÐop­
\ No newline at end of file