Software Resilienz im SPS-/Produktionsbereich

Sicher ist das legitim, nur können halt im Sondermaschinenbau nicht immer alle Vorgaben 1:1 umgesetzt werden.
Natürlich hast du Recht, der Instandhalter muss mit dem Programm leben. Ich wollte damit ja auch nur sagen, es nutzt dir der beste Programmierstil und die beste Struktur (wobei sich hier immer streiten lässt wie das Beste aussieht) nichts, wenn deine Kunde es dir nicht erlaubt diese zu verwenden.
Als Automatisierungsfirma und Programmierer musst Du mit verschiedenen/mehreren Standards umgehen. Manchmal der firmeneigene, manchmal der des Endkunden, manchmal was fremdes von ganz anderer Firma...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie hatte ich es einmal irgendwo gelesen? Ein guter Programmierstil ist es, wenn der Kopf benutzt wird, anstatt stumpf einem Stil (sei es jetzt Kette oder Verknüpfung) zu folgen.
Schrittkette und logische Verknüpfungen schließen sich doch nicht aus. Ein Programmierstilstandard beinhaltet doch wie mache ich beides konkret.
 
Es ist nur so dass jeder Kopf etwas anders denkt. Also hat es wohl auch etwas mit Teamfähigkeit zu tun so dass verschiedene Programmierer in einer Firma "an einem Strang ziehen".
Das ist ist wohl richtig. Wobei wenn in meiner alten Firma Programmierer A von einem Projekt abgezogen wurde, wurden dann gerne vom Programmierer B Codebausteine gelöscht und ersetzt. Wurde dann wieder Programmierer A an die Anlage gesetzt, wurde der Teil von B wieder durch A ersetzt. :ROFLMAO: Der Kunde bekam die Maschine dann je nachdem wer der letzte an der Anlage war mit einem anderen Ansatz ausgeliefert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Noch ein Argument gegen Schrittketten: Schrittketten sind in aller Regel langsamer als State Machines oder reine Logikverknüpfungen. Also wenn es mal auf Geschwindigkeit drauf ankommt... doch da nimmt man heutzutage vermutlich auch einfach eine 5x schnellere CPU und braucht seinen Lieblings-Programmierstil nicht ändern.
Wie hier schon mehrmal geschrieben wurde: es kommt auf den Anwendungsfall drauf an. So wie es verschieden gut zur Aufgabe passende Programmiersprachen gibt, so gibt es auch verschiedene mehr oder weniger geeignete Algorithmen. Am besten, der Programmierer beherrscht sein Handwerk und kann deshalb immer das am besten geeignete Werkzeug und Vorgehen wählen, besser als auf ein bisschen Können beschränkt zu sein.
 
Ähhh Harald ... was ist in deinen Augen der Unterschied zwischen einer Schrittkette und einer Statemachine ?

Nachtrag : den Beitrag von @ducati, der ja sieselbe Frage gestellt hat, hatte ich nicht gesehen ...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Noch ein Argument gegen Schrittketten: Schrittketten sind in aller Regel langsamer als State Machines oder reine Logikverknüpfungen. Also wenn es mal auf Geschwindigkeit drauf ankommt... doch da nimmt man heutzutage vermutlich auch einfach eine 5x schnellere CPU und braucht seinen Lieblings-Programmierstil nicht ändern.
Wie hier schon mehrmal geschrieben wurde: es kommt auf den Anwendungsfall drauf an. So wie es verschieden gut zur Aufgabe passende Programmiersprachen gibt, so gibt es auch verschiedene mehr oder weniger geeignete Algorithmen. Am besten, der Programmierer beherrscht sein Handwerk und kann deshalb immer das am besten geeignete Werkzeug und Vorgehen wählen, besser als auf ein bisschen Können beschränkt zu sein.
mal ein Beispiel:

ein Anlagenteil besteht aus einem Schieber und einer Pumpe. In dem Fall baue ich KEINE Schrittkette ala:
Schritt 0: Anlagenteil AUS
Schritt 1: Schieber öffnen
Schritt 2: Pumpe einschalten
Schritt 3: Pumpe ausschalten
Schritt 4: Schieber schliessen

sondern:
Schieber_Automatik_AUF := Anlagenteil_EIN;
Pumpe_Automatik_EIN := Anlagenteil_EIN;
Pumpe_Freigabe := Schieber_Endlage_AUF AND Wasser_vorhanden AND NOT Pumpe_Stoerung_Motorschutz;

In der Prozessautomatisierung ist das ne ganz andere Denke als in der Fertigungsautomatisierung.

Für die Heizungspumpe im Keller baut auch niemand ne Schrittkette...
 
das kann man jetzt ja unendlich fortführen ... @ducati : was soll das bringen ?
Du machst es so und ich mache es als Schrittkette - funktioniert beides ... wenn ich aber zwischen Schritt 2 und Schritt 3 noch etwas dazwischen brauche dann habe ich das vermutlich schneller als du umgesetzt (und jeder versteht es auch noch)
 
Ähhh Harald ... was ist in deinen Augen der Unterschied zwischen einer Schrittkette und einer Statemachine ?
Vielleicht habe ich das Wort "Statemachine" falsch benutzt? Ich meinte: die Anweisung was zu tun ist, wird nur aus den Zuständen logisch verknüpft und nicht sequenziell durchgehangelt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht habe ich das Wort "Statemachine" falsch benutzt? Ich meinte: die Anweisung was zu tun ist, wird nur aus den Zuständen logisch verknüpft und nicht sequenziell durchgehangelt.
Das habe ich nicht verstanden - bring bitte mal ein Beispiel dazu ...
 
das kann man jetzt ja unendlich fortführen ... @ducati : was soll das bringen ?
Du machst es so und ich mache es als Schrittkette - funktioniert beides ... wenn ich aber zwischen Schritt 2 und Schritt 3 noch etwas dazwischen brauche dann habe ich das vermutlich schneller als du umgesetzt (und jeder versteht es auch noch)
es geht darum, wann machen Schrittketten Sinn und wann nicht ;)

Wenn wirklich Abläufe vorhanden sind, dann ne Schrittkette. Wenn es einfach nur Freigaben und Verriegelungen sind, dann keine Schrittkette.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich will ja nichts sagen - ich glaube aber das Schrittkette kontra Nicht-Schrittkette jetzt nun wirklich ausgereizt ist.
Wie ich schon sagte : der Eine macht es so und der Andere eben anders. Da sind wir nun ganz weit im Bereich von Philosophie ... :unsure:
 
Vielleicht habe ich das Wort "Statemachine" falsch benutzt? Ich meinte: die Anweisung was zu tun ist, wird nur aus den Zuständen logisch verknüpft und nicht sequenziell durchgehangelt.
Ich habe mittlerweile schon einige dieser logischen Freigaben und Verriegelungen gesehen in Anwendungen wo eine Schrittkette besser gewesen wäre. Richtig unschön wird es hier, wenn in einem bestimmten Ablauf mittendrin etwas geändert / nachgerüstet werden soll und man erstmal dahintersteigen muss wie alles in sich und gegeneinander verriegelt ist. Alles beeinflusst sich gegenseitig.
 
Richtig unschön wird es hier, wenn in einem bestimmten Ablauf mittendrin etwas geändert / nachgerüstet werden soll
Naja, we gesagt, wenn es wirklich ein größerer/längerer Ablauf ist, dann nehm ich auch ne Schrittkette. Nur meistens gibt es in der Prozessautomatisierung nicht wirklich einen Ablauf sondern nur EIN/AUS (vielleicht noch AUS/ANFAHREN/EIN/ABFAHREN/AUS)... Der Rest ergibt sich von selbst...

PS: die Freigaben für die Aktoren: Pumpe_Freigabe := Schieber_Endlage_AUF AND Wasser_vorhanden AND NOT Pumpe_Stoerung_Motorschutz;
musst Du trotzdem so programmieren, egal ob Schrittkette oder nicht. (könnt ja sein, dass mitten im Schritt 2 der Schieber schließt warum auch immer...)
 
Zuletzt bearbeitet:
Zurück
Oben