Diff of /trunk/CODESYS_Control_Win_V3/Plc Logic/Application/Function Blocks/Puzzle/ExamplePuzzleStateMachine/svnobj [r34] .. [r35]  Maximize  Restore

Switch to side-by-side view

--- a/trunk/CODESYS_Control_Win_V3/Plc Logic/Application/Function Blocks/Puzzle/ExamplePuzzleStateMachine/svnobj
+++ b/trunk/CODESYS_Control_Win_V3/Plc Logic/Application/Function Blocks/Puzzle/ExamplePuzzleStateMachine/svnobj
@@ -1,5 +1,4 @@
-Gx_lP%!0…jüo߀òÖI
-ZĘ|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		 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	+p		IF SysStrCmp(Client.sCommandFromPLC, '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;XäpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);YPClient.Progress := puzzleTimer.iProcess;ZFIF puzzleTimer.iProcess >= 100 THEN[	Stop();\Interface]L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}^PFUNCTION_BLOCK ExamplePuzzleStateMachine_VAR_IN_OUT`.	Client : PuzzleClient;aEND_VARbVARc0	UM	: PACK_ML.UnitMode; dj	xInit				: BOOL := FALSE; // Flag for initializatione6	puzzleTimer : PuzzleTimer;f"UniqueIdGeneratorg294hPOULeveliL{8e575c5b-1d37-49c6-941b-5c0ec7874787}jStandardk ChildObjectGuidsl8System.Collections.ArrayListm,AddAttributeSubsequentnboolÐÐ-ÐÐ	E
-hÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­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ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-XÐÐ
­ÚÐ-ÐÐ
­ÚÐ-YÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ZÐÐ
­ÚÐ-[ÐÐ
­ÚÐ-Ð\]Ð	E
-ÐÐ
­ÚÐ-^ÐÐ
­ÚÐ-_ÐÐ
­ÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­ÚÐ-bÐÐ
­
ÚÐ-cÐÐ
­ÚÐ-ÐÐ
­ÚÐ-dÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-eÐÐ
­ÚÐ-ÐÐ
­ÚÐ-aÐÐ
­ÚÐ-Ðf-gÐhi-jklÐmn­
\ No newline at end of file
+Gx_l,'!0…jüoC—šæÁZ{vPSystem.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,0							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	-p		IF SysStrCmp(Client.sCommandFromPLC, '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);^äpuzzleTimer(xStartTimer := UM.CurrentState = PACK_ML.State.Execute ,xPauseTimer := ,xStopTimer:= NOT (UM.CurrentState = PACK_ML.State.Execute),tMaxPuzzleTime := Client.Duration);_PClient.Progress := puzzleTimer.iProcess;`FIF puzzleTimer.iProcess >= 100 THENa	Stop();bInterfacecL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}dPFUNCTION_BLOCK ExamplePuzzleStateMachineeVAR_IN_OUTf.	Client : PuzzleClient;gEND_VARhVARi0	UM	: PACK_ML.UnitMode; jj	xInit				: BOOL := FALSE; // Flag for initializationk:	messageQueue : MessageQueue;l6	puzzleTimer : PuzzleTimer;m"UniqueIdGeneratorn302oPOULevelpL{8e575c5b-1d37-49c6-941b-5c0ec7874787}qStandardr ChildObjectGuidss8System.Collections.ArrayListt,AddAttributeSubsequentuboolÐÐ-ÐÐ	E
+lÐÐ
­$ÚÐ-ÐÐ
­%ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­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ÚÐ-\ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-]ÐÐ
­(ÚÐ-ÐÐ
­ÚÐ-^ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-_ÐÐ
­ÚÐ-ÐÐ
­ÚÐ-`ÐÐ
­ÚÐ-aÐÐ
­ÚÐ-ÐbcÐ	E
+ÐÐ
­ÚÐ-dÐÐ
­ÚÐ-eÐÐ
­ÚÐ-fÐÐ
­ÚÐ-gÐÐ
­ÚÐ-hÐÐ
­
ÚÐ-iÐÐ
­ÚÐ-ÐÐ
­ÚÐ-jÐÐ
­ÚÐ-ÐÐ
­ÚÐ-ÐÐ
­)ÚÐ-kÐÐ
­ÚÐ-lÐÐ
­ÚÐ-ÐÐ
­ÚÐ-gÐÐ
­ÚÐ-Ðm-nÐop-qrsÐtu­
\ No newline at end of file