Welche Sprache für Schrittketten

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute, ich habe jetzt bei Kunden die Beckhoff benutzen schon öffters gesehen, dass sie für abläufe CFC verwenden. Was haltet Ihr denn so für sinnvoll? CFC, oder für schrittketten eher AS?

Wenn cfc, oder as, wie macht ihr es mit den "weiterschaltbedingungen" ich komme aus der s7 welt und habe eine generelle weiterschaltbedingung für jeden schritt (beinhaltet alle bewegungen)
 
Ich schreibe alles in ST und meine, dass man gerade Schrittketten damit gut und übersichtlich programmieren kann. Als Schrittmerker nehme ich keine BOOL-Variablen, sondern ein UINT, das die Schrittnr. enthält. Diese verwurste ich dann in mehreren CASE OF-Blöcken. Einen für den Zustand und weitere für die Schrittwechsel in unterschiedlichen Betriebsarten. Gleichzeitig dient die Schrittnr. als Index in Arrays, die z. B. Sollwerte für den Überwachungstimer oder besondere Spezifikationen für die Schritte enthalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok

Ja ok Fande halt AS ganz ansprechen, aber bin auch selbst ein freund von ST, da ich auch auch der C# welt komme. Hast du vielleicht mal ein Beispiel, wie du ne schrittkette mit weiterschaltbedingungen usw. aufbaust?
 
Prinzipiell sieht das so aus:
Code:
VAR_INPUT
    Enable:BOOL;
    Reset:BOOL;
    Mode:BYTE;
VAR
    ActualStep,
    NextStep:UINT;
    SupervisionSet:ARRAY[Step1..StepX] OF TIME;
    SupervisionTimer:TON;
    StepDone:BOOL;
    Error:BOOL;
END_VAR

(* FB-Hauptcode *)
(* Fehler rücksetzen, in konkreten Anwendungen meist etwas komplexer *)
IF Reset
THEN
    Error:=FALSE;
END_IF;

(* Schritt weiterschalten *)
IF Enable AND NOT Error AND StepDone
THEN
    CASE Mode OF
        Init:
            InitStep; (* FB-Aktion für das Weiterschalten bei Initialisierung *)
        Auto:
            AutoStep: (* FB-Aktion für das Weiterschalten bei Automatikbetrieb *)
    END_CASE;
END_IF;

(* Zeitüberwachung der Schritte *)
SupervisionTimer(In:=ActualStep=NextStep,
                      Pt:=SupervisionSet[NextStep]);
ActualStep:=NextStep;

(* Schrittzustand bestimmen *)
CASE ActualStep OF
    Step1:
        StepDone:=(* Schritt 1 erledigt*);
    Step2:
        StepDone:=(* Schritt 2 erledigt*);
    (* usw. *)
END_CASE;

(* Fehler setzen bei Zeitüberschreitung *)
IF SupervisionTimer.Q AND NOT StepDone
THEN
    Error:=TRUE;
END_IF;



(* Init oder Auto-Aktion *)
CASE ActualStep OF
    Step1:
        NextStep:=Step2;
        (* Step2-Steuerbefehle an die Maschine *)
    Step2:
        NextStep:=Step3;
        (* Step3-Steuerbefehle an die Maschine *)
    (* usw. *)
END_CASE;
 
Aha

Sorry, blicke da nicht so ganz durch, denn den case machst du doch mit nem int und dann staht dort nicht 1..2..3 usw sondern step 1 ... und wo dind die aktionen die in dem schritt durchgeführt werden. naja usw. gibst du mir noch bitte ne genaue Erklärung? ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Init, Auto, Step1, Step2 usw. sind Integer-Konstanten. Liest sich besser als nackte Zahlenwerte. In konkreten Anwendungen heissen die natürlich nicht "Step1", sondern z. B. "ExtendLiftCylinder" oder was immer bei dem Schritt geschehen soll.
Das Weiterschalten der Schritte mache ich nicht im FB-Hauptcode, sondern programmiere dazu für jede Betriebsart eine FB-Aktion. Solche Aktionen kann man nicht nur von aussen, sondern auch aus dem FB selbst sozusagen als Unterprogramm aufrufen.
Die mit den Schritten verbundenen Aktionen der Maschine stehen an den Stellen, die ich mit "Steuerbefehle an die Maschine" kommentiert habe.
 
sowas kann man auch in AWL oder FUP Programmieren, dann blicken auch die erfahrenen Instandhalter im Prog durch.

Wenns ein FB werden soll, die entsprechend kommentiert ist (wirklich vernünftig brauch hier wohl fast ne A4 Seite) dann gibts auch kein Problem; (sonst bitte das in für Instandhalter lesbaren FUP schreiben (Funktioniert genauso, nur tun sich viele Laute leichter(kann ja ruhig in STC, . . . entwickelt werden, aber wenns läuft spricht nichts dagegen das auch der Allgemeinheit zugänglich zu machen))
 
@ST
Deine Lösung ist sicherlich durchdacht.
Für jede Schritt-Aktion einen FB ist auch gut.
Nur warum machst du dann die eigentliche Kette nicht gleich in AS?
An Übersichtlichkeit ist AS schlichtweg nicht zu schlagen.

Gruß
Dieter
 
Zuviel Werbung?
-> Hier kostenlos registrieren
sowas kann man auch in AWL oder FUP Programmieren, dann blicken auch die erfahrenen Instandhalter im Prog durch.
Warum müssen sich eigentlich Programmierer zigmal im Berufsleben mit neuen Dingen auseinandersetzen, während der Instandhalter darauf bestehen darf, nur Programmiersprachen aus dem letzten Jahrhundert verstehen zu können? Klar könnte ich auch in AWL, KOP, FUP programmieren, aber bei der Komplexität heutiger Programme würde ich dann nicht mehr durchblicken, und der Instandhalter vermutlich auch nicht. ST ist sehr gut lesbar, fast wie eine menschliche Sprache. Und lesen hat doch jeder gelernt.

Nur warum machst du dann die eigentliche Kette nicht gleich in AS?
Ich bin durch 20 Jahre Pascal vorbelastet und kann mich mit grafischer Programmierung einfach nicht anfreunden. Ist eine Frage des persönlichen Werdegangs und Geschmacks.
 
die Case-Anweisung in ST ist die coolste Lösung - jahrelang mit allen anderen Formen gearbeitet - Schrittketten mit einen INT in FUP, AS, frueher in AWL mit Spruenge ...
 
St ist meiner Meinung nach die Eleganteste Lösung für den Programmierer, die Instanthalter die ich kenne sind jedoch alle mit AS/ S7 Grapgh vertraut. Wird in den meisten (von Siemens gesponsorten) Berufsschulen auch immernoch so gelehrt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
St ist meiner Meinung nach die Eleganteste Lösung für den Programmierer, die Instanthalter die ich kenne sind jedoch alle mit AS/ S7 Grapgh vertraut. Wird in den meisten (von Siemens gesponsorten) Berufsschulen auch immernoch so gelehrt.

Schrittketten in St sind nicht nur am elegantesten sondern auch am Besten zu warten. Der Code ist extrem kompakt und eigentlich auch leicht zu verstehen.

Zusammen mit einer Trace-Aufzeichnung des States kann man recht einfach falsche Zustandswechsel finden.
 
Schrittketten in St sind nicht nur am elegantesten sondern auch am Besten zu warten. Der Code ist extrem kompakt und eigentlich auch leicht zu verstehen.

Zusammen mit einer Trace-Aufzeichnung des States kann man recht einfach falsche Zustandswechsel finden.

So ein Quatsch.......
Das ist doch eigentlich nur eine Frage des Geschmacks.......
Aber wenn man mal ehrlich zu sich selber ist dann ist für Schrittkette eine Grafische Lösung wirklich am übersichtlichsten.

Außerdem sind Fup, Kop und AWL nicht aus dem letzen Jahrhundert und so wie Ihr behauptet das Instandhalter nichts dazu lernen wollen könnte man auch sagen das Ihr die diejenigen seit die unflexible sind.

Das Problem ist das viele glauben wenn man in einer "angeblichen Hochsprache" programmiert nur dann ein echter Programmierer ist.
Müll....... *ROFL*
Jeder programmiert in der Sprache wo er am effektivsten mit arbeitet und
"Könner" das sagt der Name schon.... können alles und setzen gezielt die Sprache bzw. das Werkzeug ein was am besten geeignet ist.

Ich persönlich habe in meinen Projekten fast immer 2-4 verschiedene Sprachen womit ich bestimmte Dinge,Abläufe und Probleme löse.

In dem Sinn...... weiter üben
 
Zuletzt bearbeitet:
Hallo zusammen,

natürlich schließe ich mich der Meinung an, das ST die eleganteste und wohl auch von der Leistung her, die beste Wahl für Schrittketten ist. Auch sind Funktionen möglich die AS einfach nicht hat.

Allerdings kann man in AS mal eben eine Schrittkette ohne großen Aufwand und Wissen erzeugen. Laufen tun die auch. Für kleinere Anwendungen hat es also einen berechtigten Platz.

Eine Alternative wäre AWL. Aber a: ich mag es nicht und b: ich will es nicht. Da könnte ich ja gleich ne S5 als Steuerung nehmen. *ROFL*

Gruß, Voxe
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@UniMog,

bisschen Recht gebe ich dir, bisschen nicht. Du schreibst du setzt in einem Projekt 2-4 Sprachen ein. Welche ???

Ich würde für mich 2 - 3 zählen. Das ist dann FUP, ST und ab und an AS. CFC, KOP und AWL kommt nicht in die Tüte. :rolleyes:

Aber eine Schrittkette würde ich nie mit FUP bauen wollen. :shock:

Gruß, Voxe
 
Wie gesagt das macht jeder wie er will.

Ich bin auch einer der FUP,KOP und AWL einsetzt.
Ich weiß nicht in welcher größe Deine Projekte sind aber ich kann mir zB.
ein komplettes HR-Lager nicht nur in ST vorstellen.

Deine Favoriten FUP und ST kommen doch bestimmt nur aus Deiner
Studium Zeit und deshalb bist Du kein Fan von AWL.
Ich komme aus der guten alten S5 Zeit und mußte durch Kundenwünsche
eigentlich alles einsetzen was kommt oder Kunde will und Geld bringt.
An Graph,HiGraph und CFC oder SCL mußte ich mich auch erst über die Jahre gewöhnen.

In einer SPS würde ich freiwillig kein CFC einsetzen aber zB. bei einer CU320 aus der Baureihe S120 Sinamics Antriebstechnik da hat man mit CFC öfters was zu tun.

Früher war ich ein reiner AWL Fan nicht weil der Code schnell und etwas kürzer ist sondern weil man in der S5 nicht alles mit FUP oder KOP machen konnte.
SCL bzw. ST benutze ich gerne bei Berechnungen mußte mich aber auch hier erst daran gewöhen.
Aber das ist auch das schöne an dem Job..... lernen...lernen...lernen und nicht stehen bleiben...... sonst läuft man Gefahr zu verblöden.

Angefangen habe ich auf folgende Steuerungen

AEG und AEG Conzept
Step5
Matsushita
Mitsubishi
Schmidt Technology Servopressen

seit 1995 Step7 und das ist auch meine Liebling..... wie Eplan in der Elektrodokumentation..... aber erst seit es P8 gibt.....
Seitdem mache ich alles mit Schwerpunkt Siemens Hard und Software aber auch andere...... muß Geld verdienen.....

Das Ziel ist doch das am "Ende" die Anlage so läuft wie der Kunde es sich wünscht.... und da fragt fast keiner mehr danach wie man ans Ziel gekommen ist.

Gruss
 
Zuletzt bearbeitet:
So ein Quatsch.......
Das ist doch eigentlich nur eine Frage des Geschmacks.......
Aber wenn man mal ehrlich zu sich selber ist dann ist für Schrittkette eine Grafische Lösung wirklich am übersichtlichsten.

Außerdem sind Fup, Kop und AWL nicht aus dem letzen Jahrhundert und so wie Ihr behauptet das Instandhalter nichts dazu lernen wollen könnte man auch sagen das Ihr die diejenigen seit die unflexible sind.

Das Problem ist das viele glauben wenn man in einer "angeblichen Hochsprache" programmiert nur dann ein echter Programmierer ist.
Müll....... *ROFL*
Jeder programmiert in der Sprache wo er am effektivsten mit arbeitet und
"Könner" das sagt der Name schon.... können alles und setzen gezielt die Sprache bzw. das Werkzeug ein was am besten geeignet ist.

Ich persönlich habe in meinen Projekten fast immer 2-4 verschiedene Sprachen womit ich bestimmte Dinge,Abläufe und Probleme löse.

In dem Sinn...... weiter üben

Bin ich Dir auf den Fuß getretten?

Irgendwie interpretierst Du in meine zwei Sätze eine Menge herein.
Also entspann Dich und bleib sachlich.

Um zum Thema zurück zu kommen, AS hat natürlich den Vorteil, dass die Dokumentation des Zustandsautomaten dabei ist. Dies hilft natürlich dem jenigen, der Versucht sich in ein fremdes Programm herein zu denken.
Übersichtlich finde ich es aber nicht, da in der Regel Aktionen, Transitionen und eben der Zustandsautomat nicht zeitgleich betrachtet werden könnnen.

Schrittketten in AWL finde ich auch OK. Allerdings würde ich St immer vorziehen.

Schrittketten in FUP oder KOP dagegen sind meistens absoluter blödsinn.

Gruß vom unflexiblen übenden nichts Könner
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann sein, das ich auch Schuld war. Mit den 2-4 Sprachen, wie ich schrieb komme ich mit 2-3 hin. Wollte halt nur die 4 wissen. :confused:

Wenn der Kunde AWL will, bekommt er das auch. Leider mit widerwillen und ich würde versuchen ihm das auszureden. Aber so ist das halt.


Gruß Voxe

PS: Sorry UniMog
 
Ne ne mir ist keiner auf den Fuß getretten.... keine Angst

also in dem Sinn schönes WE ... und weiter machen
 
Schrittketten in FUP oder KOP dagegen sind meistens absoluter blödsinn.

Alle paar Wochen der gleiche Käse ...
Die Sprache und die Art der Schrittkette ist reine Geschmackssache.
Für alle Sprachen und Kettenarten gibt es Vor- und Nachteile.
Letzendlich hat man immer Schritt - Aktion - Transistion.

Es gibt große weltweit tätige Maschinenbaufirmen die heute noch annehmende Merkerschrittketten (entstammt eigentlich noch der Schütztechnik) in KOP verwenden. Inklusive Visulisierung und Diagnose. Die Anlagen laufen hervorragend, sind klar strukturiert und durchdacht.

Was ich damit sagen will ist:
Die Qualität einer Schrittkette wird nicht durch die Sprache bestimmt, sondern durch den Arbeitsstil und das Verständinis des Programmierers für die Struktuerierung und Gliederung von Abläufen!


Just my 2 Cent

Dieter
 
Zurück
Oben