Komplett in St programmieren?

Bensen83

Well-known member
Beiträge
777
Punkte Reaktionen
3
Zuviel Werbung?
->Hier kostenlos registrieren
Hi. Ich bin neu bei codesys und würde gerne so viel wie möglich in St programmieren.
Habe mit überlegt automatikschruzzketten mit Case of zu machen und die Schritte bspw. Mit ner reset Methode und ner initmethode außerhalb der Automatik zu initialisieren.

Klappt auch. Aber wie würdet ihr denn so die Freigaben von Ventilen und Achsen erzeugen? Viele und oder Bedingungen in fup, oder mit id Abfragen in St? Gib wäre relativ übersichtlich, aber St dann durchgängiger.
Was ist eure Meinung dazu?
 

rostiger Nagel

Forums-Knochenbrecher
Teammitglied
Beiträge
15.063
Punkte Reaktionen
4.740
Zu den Case muß ich ja nichts sagen, dann kannst du doch entsprechend den aktuellen Schruzz
Variablen zuweisen und extern auswerten.
 
OP
B

Bensen83

Well-known member
Beiträge
777
Punkte Reaktionen
3
Aha

Habe ich jetzt nicht ganz kapiert. Also Case usw ist klar, die Syntax habe ich ja soweit drauf. Wollte eben die entsprechenden Programme in denen die Schriftarten sind einfach nur dann aufrufen wenn die Schrottwertes laufen soll. Wenn jetzt bspw. Notausgang gedrückt wird, so wird die Schrottwertes nicht mehr aufgerufen und dann bspw. Schrottwertes.reset() einmal aufgerufen, wodurch der Schritt, welcher im Case abgefragt wird zurückgesetzt wird.
Finde ich ganz gut so, oder spricht was dagegen?
Aber wie sieht's mit den Freigaben aus würdet ihr die auch alle in St machen?
Komplettes Programm in St ist auch nicht schlecht, oder? ;-)
 

Blockmove

Supermoderator und User des Jahres 2019
Teammitglied
Beiträge
10.408
Punkte Reaktionen
3.054
Die Diskussion ist eigentlich rein akademischer Natur.
Es gibt gestimmt tausend und eine Art Schrittketten und das drumherum zu programmieren.
Und für jede Art gibt es Befürworter und Gegener.
Das einzig wichtige daran ist, dass die Programmierung verständlich und nachvollziehbar für Kollegen, Kunden, Instandhalter und die Nachwelt ist.
Nicht mehr und schon gar nicht weniger

Gruß und schönes Weihnachten
Dieter
 
Zuletzt bearbeitet:

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.148
Punkte Reaktionen
2.745
Zuviel Werbung?
->Hier kostenlos registrieren
@Blockmove:
Da hier ja von Schruzz- bzw. Schrottketten die Rede ist weiß ich nicht so recht, wie ich deinen Beitrag dazu deuten soll ...

@Benson:
Wenn du schon bei Case und einer Zähl-Variablen für die Schrappnummer angekommen bist gibt es grundsätzlich 2 Möglichkeiten :
- Du machst die Zuweisung deiner Ausgänge in jedem Schruzz
- Du fast außerhalb der Case-Abfrage die Schruzz-Nummern für einen Ausgang zusammen - also ggf. so :
Code:
myAusgang := (mySchruzz = 1) or (mySchruzz = 4) ;

@Sailor:
mit Schruzzketten kann man seinem Programm einen schrappweisen Ablauf aufzwingen ... ;)

Gruß und frohe Weihnachten
Larry
 
OP
B

Bensen83

Well-known member
Beiträge
777
Punkte Reaktionen
3
Zuviel Werbung?
->Hier kostenlos registrieren
So doch nicht

Also 1. meine ich Schrittketten ;-)
2. werde ich bestimmt nicht die Ausgänge direkt in der Schrittketten setzen.
Sondern eher die ansteuernefehle für diese.

Bspw.

Befehl-ausgang_1 := True;

Und dann außerhalb die Befehle entsprechend dem Ausgang zuweisen.
 

Larry Laffer

Supermoderator
Teammitglied
Beiträge
13.148
Punkte Reaktionen
2.745
Also 1. meine ich Schrittketten ;-)
war schon klar ...
Ich habe mich nur beim Durchlesen erst fast nicht wieder eingekriegt ... und dann ist es halt mit mir (und ja nicht nur mit mir) durchgegangen ...

... werde ich bestimmt nicht die Ausgänge direkt in der Schrittketten setzen.
Sondern eher die ansteuernefehle für diese.

Bspw.

Befehl-ausgang_1 := True;

Und dann außerhalb die Befehle entsprechend dem Ausgang zuweisen.
Das verstehe ich jetzt nicht ... erklär mal ... ich kann mir jetzt nicht so Recht vorstellen, dass das in Codesys/TwinCat so grundlegend anders läuft, wie bei Siemens ...

Gruß
Larry
 

Oerw

Well-known member
Beiträge
149
Punkte Reaktionen
29
Hi

Schrittketten würde ich ebenfalls mit case lösen

als Beispiel mit Freigabe in den Zuweisungen ausserhalb des CASE,


Case of iStep
0 : iStep := 1;
1 : if xStart and xAutomatik then iStep := 2; end_if;
2 : if xEndRechts and xAutomatik then iStep := 3; end_if;
3 : if xEndLinks and xAutomatik then iStep := 0; end_if;
end_case;

(* Ausgabe *)
xVentilRechts := (iStep = 2) and xFrg1;
xVentilLinks := (iStep = 3) and xFrg1;
 

sailor

Well-known member
Beiträge
641
Punkte Reaktionen
27
Zuviel Werbung?
->Hier kostenlos registrieren
@Blockmove:
.... von Schruzz- bzw. Schrottketten......die Schrappnummer angekommen .....Schruzz
- .... Case-Abfrage die Schruzz-Nummern ............ := (mySchruzz = 1) or (mySchruzz = 4) ;[/CODE]

@Sailor:
mit Schruzzketten kann man seinem Programm einen schrappweisen Ablauf aufzwingen ... ;)

Gruß und frohe Weihnachten
Larry


Was habt ihr an Weihnachten zu rauchen bekommen????

Schruzz und Gruß
Sailor
 
OP
B

Bensen83

Well-known member
Beiträge
777
Punkte Reaktionen
3
So ....

Setze in der Case die Befehle für dann außerhalb der Case Rufe ich bspw. Ein Baustein auf, welcher aus Befehl, Freigabe usw. Die Ansteuerung des Ausgangs bildet. Dann ist es wenigstens schön gekapselt, Befehl Freigabe Hand, Auto usw.

Wollte ja eigentlich nur wissen ob ihr Freigaben mit vielen eingingen lieber in St oder fup macht. Denke werde es der durchgängigkeit halber in St machen.
 

Ralle

Supermoderator
Teammitglied
Beiträge
15.107
Punkte Reaktionen
3.824
Zuviel Werbung?
->Hier kostenlos registrieren
Also ich habe für jeden Aktor je eine Variable "Aktor_X_Auto_Ein", "Aktor_X_Auto_Aus" (Bezeichnung mit Zylindernamen, Ortskennzeichen, wie beliebt). Diese Variablen werden in der Schruzzkette (mit Case) gesetzt und außerhalb an einem Aktorbaustein angetragen. Dieser Baustein hat zusätzlich Eingänge für "Aktor_X_Hand_Ein", Aktor_X_Hand_Aus, Freigaben, den tatsächlichen Output, die Endlageninitiatoren, den gebildeten Lauffzeitfehler usw.

PS: Momentan programmiere ich Codesys alles in ST, aber wenn es ganz unübersichtlich werden sollte, dann werde ich einzelnen Freigaben (Logiknetzwerke) vielleicht doch lieber in KOP/FUP machen, sonst sieht man in ST nicht all zu viel beim beobachten..
 
Zuletzt bearbeitet:
Oben