Reset von Schrittketten

Für Themen rund um logi.RTS und logi.CAD 3
Kai
Posts: 10
Joined: 01 Apr 2018, 17:48
Answers: 0

Reset von Schrittketten

Post by Kai »

Hallo,

ist es möglich, Schrittketten von außen zu resetten, also wieder in den Initialschritt zu versetzen?
Hintergrund ist eine Notabschaltung der Anlage. In der Folge sollen alle Schrittketten wieder neu anfahren. Ich möchte ungern parallel zu jeder Transition eine weitere einbauen, die einen Reset-Eingang abfragt um in den Inititialschritt zu springen.

Kann man von außen auch abfragen in welchem Schritt die Ablaufsteuerung gerade steht?

Vielen Dank für Eure Hilfe..
User avatar
Walter
Official 3rd Party Support logi.cals
Posts: 77
Joined: 15 Dec 2016, 12:56
Answers: 0

Re: Reset von Schrittketten

Post by Walter »

Hallo,

In der Norm IEC61131-3 ist das für die Schritte in der grafischen Programmierung nicht vorgesehen.
Möchten Sie grafisch programmieren oder im strukturierten Text?

freundliche Grüße
Walter
Kai
Posts: 10
Joined: 01 Apr 2018, 17:48
Answers: 0

Re: Reset von Schrittketten

Post by Kai »

Hallo,

ich programmiere in ST.

Viele Grüße
Kai
User avatar
Ingo
Posts: 266
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Reset von Schrittketten

Post by Ingo »

Hallo Kai,
Schrittkette, meinst du damit einen Zustandsautomaten? Wenn ja dann kannst du dir den einzelnen Zustand ausgeben lassen.
Resetten von Aussen, was meinst du damit? Visualisierung.
gruß
Kai
Posts: 10
Joined: 01 Apr 2018, 17:48
Answers: 0

Re: Reset von Schrittketten

Post by Kai »

Hallo,

ich habe mehrere FB die als Ablaufsteuerung funktionieren, also Schritte, Transitionen, Aktionen. Diese stehen auf einem bestimmten Schritt, wenn die Anlage stillgesetzt wird. Um wieder anzufahren müssen alle Ablaufsteuerungs FB wieder im Initialschritt stehen. Wie bringe ich es fertig, dass die Bausteiene (die ja immernoch in irgendeinem Schritt stehen) wieder auf den Initialschritt zurückgesetzt werden?

Grüße
Kai
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: Reset von Schrittketten

Post by volker »

Bin schon sehr auf den Vorschlag von logi.cals gespannt...
Wenn es da keine einfache Lösung gibt, würde ich empfehlen die AS ganz klassisch "zu Fuß" zu programmieren, also wie eine Statemachine in C oder Python. Das Programm durchläuft zyklisch einen Entscheidungsbaum mit CASE (in C) oder geschachtelten IF ELIF (inPython), bei dem eine Variable "State" den aktuellen Zustand angibt. Die Transitions werden dann durch umsetzen der Variable auf den neuen Zustand (Schritt) des Ablaufautomaten gesetzt, wenn die entsprechenden Bedingungen innerhalb des aktiven States erkannt werden. Aktionen, welche nur einmalig ausgeführt werden sollen, erfordern einen eigenen State, der direkt nach der Aktionsausführung auf den Nachfolgestate gesetzt wird, in welchem dann auf die eigentliche Statetransitionbedinguing geprüft wird... Wenn man gewohnt ist solche Statemachines zu programmieren, läuft das ziemlich unproblematisch und dauert auch nicht viel länger als die FBs von logi zu nutzen. Allerdings fehlt hier natürlich die Prüfung der Einhaltung von EN61131-3, die logi in gewissen Grenzen bei Verwendung der FBs durchführt. Bei der "zu Fuß" Lösung bist Du halt selber verantwortlich, dass die statemachine "sauber" programmiert ist (klare eindeutige Transitions und keine Endlosschleifen).
Unser RevPi Motto: Don't just claim it - make it!
User avatar
Ingo
Posts: 266
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Reset von Schrittketten

Post by Ingo »

Hallo Kai.

in meinem Programm habe ich einen Hauptbaustein in dem ich die Anlage ein und ausschalten kann, dieser baustein (ein/aus) ist mit den restlichen bausteinen gekoppelt sobald ich die anlage einschalte weiss diese das es losgehen kann.
Dann verichtet das Programm seinen Dienst. Kommst es aber zu einer Störung oder ich schalte die Anlage einfach mal aus dann geht dieses Meldungen auch an die anderen Bausteine und schaltet alles wieder auf den Startwert.
Du muss schon in deiner Programmierung darauf achten das du diese bedingung überall mit einbauen tust sonst weiss deine Anlage ja nie ob sie an oder aus ist und was sie machen soll.
Beispiel:

Code: Select all

FUNCTION_BLOCK P_Pumpe { altName := "Pool Pumpe Temp"; vNameAlignment := "top"; width := 200; bgColor := "green";
}// Steuerung Temperatur für Pumpe

VAR_INPUT
	Zustand         : LINT  := 0;     // Zustand = 0, Anlage Ausgeschaltet. Zustand = 1, Anlage eingeschaltet
	MotorTemp	: REAL  := 0;
END_VAR

VAR_OUTPUT
	Pumpe_aus	: BOOL := FALSE;
END_VAR
	
VAR
END_VAR

// Regelung für Pumpenuebertemperatur
IF (( Zustand =2 OR Zustand =4 OR Zustand =6 OR Zustand =9) AND MotorTemp >70 ) THEN	
      Pumpe_aus   := FALSE;
   END_IF;
 END_FUNCTION_BLOCK
in diesem Beispiel frage ich die einzelnen Zustände der Anlage ab um einen FB mit zu steuern. Sollte es zu einer störung kommen oder ich schalte die anlage aus geht der Zustand auf 0.
Ich hoffe ich konnte dir etwas helfen damit.
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: Reset von Schrittketten

Post by volker »

Hat halt nicht viel mit Schrittketten zu tun... Selbst wenn man die Aktionen der Schrittkette mit einem globalen zustand verundet, so würde die Schrittkettensteuerung immer noch irgendwo bei einem Schritt mitten drin stehen und beim Wiederanlauf eben nicht beim Initial-schritt, wie das bei einem Reset-Eingang eines Schrittautomaten der Fall wäre...
Ich frage mich halt auch schon, wie sich logicals das gedacht hat ohne einen Reseteingang für die Schrittsteuerung. Kann ja wohl nicht sein, dass man dafür in jedem FB mit Schrittketten die komplette Kette bis zum Ende im "Leerlauf" (also ohne Schrittaktionen) durchlaufen lassen muss. Sicher gibt es irgendwie doch noch einen Direktzugriff auf die Schrittkettenposition, um diese auf den Initialschritt zu zwingen.
Unser RevPi Motto: Don't just claim it - make it!
User avatar
Ingo
Posts: 266
Joined: 10 Nov 2016, 21:56
Answers: 1
Location: Luth.Wittenberg

Re: Reset von Schrittketten

Post by Ingo »

Ja ich weiss,
ich habe es daher mit der CASE anweisung realisiert.
-Aufstellen eines Programmablaufplan

-Für jeden Schritt jeweils ein Netzwerk einfügen mit je ein Merker als SR FlipFlop (symbolisch bebennen als Schritt1, Schritt2 ............

-weiterhin ein Merker als Startmerker(Busymerker)

-Vor jedem S Eingang ein & und vor jedem R Eingang ein >= setzen.

-Jeder Schritt wird von dem Vorhergehenden Freigegeben (zbsp beim Schritt3 kommt der Schritt2 am &Glied ran)

-Jeder Schritt wird vom folgenden zurückgesetzt ( zbsp beim schritt3 kommt der schritt4 ans oderGlied ran)

-Jeder schritt kann durch ein Reseteingang zurückgesetzt werden(ans oderglied ein reset)

-jeder schritt wird durch eine einschaltbedingung (zbsp endschalter) gesetzt ( also zbsp E0.3 an das &glied beim schritt3)

-Ausnahme 1 und letzter Schritt
der letzte schritt wird direkt zurückgesetzt durch das Schrittergebnis (endschaltereingang
)

-der erste schritt wird gesetzt durch Startbedingung und nicht startmerker

- der startmerker ist =1 wenn alle schritte nicht sind (dient sozusagen als verriegelung gegen neustart wenn noch ein schritt aktiv ist.


wenn dies soweit geschrieben kann man testen ob die kette sauber durchstept.

anschließend kommt der "Leistungsteil"

wo für jeden ausgang ein netzwerk eingefügt wird und je nach aktiven schritt verknüpft wird.
-zbsp U Schritt1
O Schritt2
= Motor1

zum initialisieren kann man schlecht eine allgemeingültiges rezept geben da es von fall zu fall völlig unterschiedlich aussieht.
evtl müssen noch teile eingebaut werden welche vorher dafür sorgen das die endlagen /ausgangstellungen automatisch angefahren werden.
beim schritt1 könnte noch als zusätzliche bedingung die ausgangstellung abgefragt werden.

eine möglichkeit(bei spannungsausfall) wäre je nach bedarf remanente oder nichtremanente merker zu benutzen.
ich weiss nur nicht ob es spezielle OBs gibt die nur einmal durchlaufen bei Kalt oder Warmstart und in die Grundstellung zurückspringen. Da ich nicht so der Programmierexperte bin und ich nicht mit schrittketten arbeite
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41
Answers: 1

Re: Reset von Schrittketten

Post by volker »

Das ist die klassische Vorgehensweise. Jeder Schritt ein RS. Da kann man natürlich auch bei jedem Schritt mit Oder am reset ein Master-reset realisieren.
Aber Kai verwendet ja die Schrittkette von logicals. Die erledigt das, was Du "zu Fuß" programmiert hast intern. und die hat eben lauf logi kein Reset des Schrittzähklers (das wären Deine RS pro Schritt). Deshalb kann die kette nicht einfach auf den Initialschritt zurückgesetzt werden...
Unser RevPi Motto: Don't just claim it - make it!
Post Reply