Hallo Fredi,
hier mal der Entwurf für einen Anwenderbaustein mit einer Schrittkette
Man könnte mit Tippbetrieb das Schwenkrohr etwa Mittig fahren und dann Schwenkbetrieb freigeben.
Die Schrittkette ist Remanent. Es spielt keine Rolle, wie lange die Steuerung aus ist.
Die Auflösung der Schwenkzeiten in 0,1s sollte ausreichend sein. also ein Wert am IA01 / IA02 von 100 entspricht deinen max 10sec.
Ich könnte mir vorstellen noch eine Überwachung (Zeit) zu integrieren beim zurückfahren zum Endschalter.
Probier es mal aus 
Gruß Thomas
//Taktgeber, Auflösung 0,1Sekunde
T01 (
	EN := true,
	RE := T01Q1,
	ST := not I02,
	I1 := t#90ms,
	I2 := ,
	Q1 => ,
	QV => );
// Schrittkette ( MB1 und MB2 remanent)
CASE MB01 OF
	0:	MB02:= 0;
		MB01:=1; //gehe zu 1
	1:  //von mitte nach rechts fahren bis Sollwert erreicht
		Q01:= I02;	//fahren nach re
		Q02:= false;
		IF T01Q1 and I02 then
			MB02:= MB02 + 1; //0,1sTakt hochzählen
		END_IF;
		IF MB02 >= IA01 THEN  //Sollwert erreicht
			MB02:= 0;
			MB01:=2; //gehe zu 2
		END_IF;		
	2:  //1s anhalten für umsteuern
		Q01:= false;
		Q02:= false;
		IF T01Q1 and I02 then
			MB02:= MB02 + 1;
		END_IF;
		IF MB02 >= 10 THEN
			MB02:= 0;
			MB01:=3;
		END_IF;		
	3:  //Zurückfahren (li) bis Endschalter Mitte
		Q01:= false;
		Q02:= I02;	//fahren nach li
		IF I01 THEN
			MB01:=4;
		END_IF;
	4:  //von mitte nach li fahren bis Sollwert erreicht
		Q01:= false;
		Q02:= I02; //fahren nach li
		IF T01Q1 and I02 then
			MB02:= MB02 + 1; //0,1sTakt hochzählen
		END_IF;
		IF MB02 >= IA02 THEN  //Sollwert erreicht
			MB02:= 0;
			MB01:=5; //gehe zu 5
		END_IF;	
	5:  //1s anhalten für umsteuern
		Q01:= false;
		Q02:= false;
		IF T01Q1 and I02 then
			MB02:= MB02 + 1;
		END_IF;
		IF MB02 >= 10 THEN
			MB02:= 0;
			MB01:=6;
		END_IF;	
	6:  //Zurückfahren (re) bis Endschalter Mitte
		Q01:= I02;	//fahren nach re
		Q02:= false;
		IF I01 THEN
			MB01:=1;
		END_IF;	
ELSE
	;
END_CASE;