Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 7 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 69

Thema: wie gehe ich da ran?

  1. #11
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    IF Bedingung
    THEN
       Ergebnis:=True;
    ELSE
       Ergebnis:=False;
    END_IF;
    
    Ergebnis:=Bedingung;
    Natürlich lassen sich solche Steuerungsfunktionen in kombinatorischer Logik einfacher darstellen, dazu braucht man noch nicht mal FUP oder KOP. Aber muss man das? Das Programm von Dante zeigt sehr gut, wie sich die Denkweise beim Programmieren mit ST langsam aber sicher zum "Wenn-Dann" entwickelt. Und sobald auch nur ein wenig speichernde Logik hinzukommt, ist das in meinen Augen auch besser verständlich. Wenn jemand seinen gesamten Programmierstil in diese Richtung entwickelt, sehe ich das deshalb nicht negativ.

  2. #12
    xinix ist offline Benutzer
    Themenstarter
    Registriert seit
    29.01.2010
    Beiträge
    46
    Danke
    11
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Blockmove Beitrag anzeigen
    Um bei deinem Vergleich zu bleiben:
    Hier wurde der Schmiedehammer rausgeholt

    Fehlt nur noch die Modellierung auf Basis von Zustandsautomaten.

    Gruß
    Dieter
    Also erst einmal vielen Dank für die unterstützenden Threads! Scheinbar wurde übersehen, dass ich am Anfang ausdrücklich nach der Hilfe in ST und nicht nach FUP oder KOP fragte. Dante hat sich überdurchschnittlich ins Zeug gelegt mir durch Sein Beispiel mal einen Einblick zu geben, wie soetwas aussehen kann. Dafür bin ich Ihn sehr dankbar.

    Sicherlicht ist es ähnlich dem Arztbesuch. Jeder Arzt stellt eine andere Diagnose. Mir hat's auf jeden fall Geholfen Dr. Dante!

    Gruß

  3. #13
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.539
    Danke
    1.152
    Erhielt 1.253 Danke für 982 Beiträge

    Standard

    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Natürlich lassen sich solche Steuerungsfunktionen in kombinatorischer Logik einfacher darstellen, dazu braucht man noch nicht mal FUP oder KOP. Aber muss man das?
    Gegen
    Code:
    Ergebnis:=Bedingung;
    habe ich gar nicht einzuwenden. Ist nichts anderes als KOP oder FUP.

    Bei
    Code:
    IF Bedingung
    THEN
       Ergebnis:=True;
    ELSE
       Ergebnis:=False;
    END_IF;
    geht bei vielen in der Praxis oft der Überblick verloren und es entsteht schnell Spaghetti-Code. Ganz beliebt sind hier Betriebsartenwechsel, Manuelle Eingriffe, Not-Halt und ähnliches.
    Viele Programmierer (besonders solche aus der PC-Ecke) vergessen hier, dass Anlagen und Benutzer manchmal ein "Eigenleben" haben.

    Gruß
    Dieter

  4. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Das Programm von Dante zeigt sehr gut, wie sich die Denkweise beim Programmieren mit ST langsam aber sicher zum "Wenn-Dann" entwickelt. Und sobald auch nur ein wenig speichernde Logik hinzukommt, ist das in meinen Augen auch besser verständlich. Wenn jemand seinen gesamten Programmierstil in diese Richtung entwickelt, sehe ich das deshalb nicht negativ.
    Was ich besonders an dieser Wenn-Dann-Denke und Wenn-Dann-Programmierung (inklusive übermäßigem Gebrauch von Flanken) hasse, ist, daß dadurch fast zwangsläufig bedingte Ausgangszuweisungen an -zig Stellen im Programm gemacht werden. Wenn dann wie bei dante noch nicht einmal für ALLE möglichen Anlagenzustände eine Reaktion ausprogrammiert ist, dann gibt es Anlagenzustände ohne aktive Ausgangszuweisung. Die Ausgänge bleiben so, wie sie durch irgendeine Vorgeschichte "zufällig" stehen.

    Wenn in solchen Programmen dann auch noch "ein wenig speichernde Logik" hinzukommt, dann wird das Verhälten des Programms in der Regel nicht verständlicher, sondern zeitweise unvorhersagbar.

    Die typische Reaktion der Wenn-Dann-Programmierer bei zutagetreten der "unmöglichen" Anlagenzustände ist, noch eine spezielle Wenn-Dann-Reaktion hinterher-zu-programmieren und später noch eine und noch eine ... das Programm besteht dann irgendwann aus 80% Ausnahmereaktionen und nur noch 20% "gewollter Code". Ich sage in solchen Fällen immer: Es gibt 1000 Krankheiten, aber nur eine Gesundheit.

    @dante
    Kannst Du auf Anhieb genau sagen, was die Pumpen in Deinem Programm machen, wenn z.B. binit=FALSE und bBetrieb=FALSE oder im anderen Fall binit=TRUE und bBetrieb=TRUE sind? (Sag jetzt nicht, daß beide Fälle in Deinem Programm niemals vorkommen können).

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    bike (20.03.2011),Blockmove (21.03.2011)

  6. #15
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Was ich besonders an dieser Wenn-Dann-Denke und Wenn-Dann-Programmierung (inklusive übermäßigem Gebrauch von Flanken) hasse, ist, daß dadurch fast zwangsläufig bedingte Ausgangszuweisungen an -zig Stellen im Programm gemacht werden. Wenn dann wie bei dante noch nicht einmal für ALLE möglichen Anlagenzustände eine Reaktion ausprogrammiert ist, dann gibt es Anlagenzustände ohne aktive Ausgangszuweisung. Die Ausgänge bleiben so, wie sie durch irgendeine Vorgeschichte "zufällig" stehen.

    Wenn in solchen Programmen dann auch noch "ein wenig speichernde Logik" hinzukommt, dann wird das Verhälten des Programms in der Regel nicht verständlicher, sondern zeitweise unvorhersagbar.

    Die typische Reaktion der Wenn-Dann-Programmierer bei zutagetreten der "unmöglichen" Anlagenzustände ist, noch eine spezielle Wenn-Dann-Reaktion hinterher-zu-programmieren und später noch eine und noch eine ... das Programm besteht dann irgendwann aus 80% Ausnahmereaktionen und nur noch 20% "gewollter Code". Ich sage in solchen Fällen immer: Es gibt 1000 Krankheiten, aber nur eine Gesundheit.
    Dazu kann nur eins kommen :

    Zitat Zitat von PN/DP Beitrag anzeigen
    @dante
    Kannst Du auf Anhieb genau sagen, was die Pumpen in Deinem Programm machen, wenn z.B. binit=FALSE und bBetrieb=FALSE oder im anderen Fall binit=TRUE und bBetrieb=TRUE sind? (Sag jetzt nicht, daß beide Fälle in Deinem Programm niemals vorkommen können).

    Harald
    Frag doch bitte nicht nach was nicht ausprogrammiert ist.

    Der Schmiedehammer, wie jemand schon geschrieben hat, ist eben doch nicht immer das richtige Werkzeug.

    Warum alles mit Gewalt in ein Korsett pressen?


    bike

  7. #16
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Um mich auch noch in diese Diskussion mit ein zu bringen:

    Ich verwende oft CASE für solche Sachen, dann ist das ganze Wenn-Dann etc. nur in der Auswahl der Einsprungstelle, die Anweisungen sind in der Struktur gut aufgehoben. Zudem kann ohne grosser Aufwand die Verriegelun realisiert werden.

  8. #17
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard

    Zitat Zitat von gloeru Beitrag anzeigen
    Um mich auch noch in diese Diskussion mit ein zu bringen:

    Ich verwende oft CASE für solche Sachen, dann ist das ganze Wenn-Dann etc. nur in der Auswahl der Einsprungstelle, die Anweisungen sind in der Struktur gut aufgehoben. Zudem kann ohne grosser Aufwand die Verriegelun realisiert werden.
    Wenn du dann unkontrolliert aus der Schleife fällst, hast du ggF auch Ausgänge oder andere Variablen so, wie du diese nicht willst.

    Egal wie. bei all den bedingten Abarbeitungen ist viel Aufwand zu tun, um nicht irgend etwas seltsames auf den Weg zu bringen.


    bike

  9. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von gloeru Beitrag anzeigen
    Ich verwende oft CASE für solche Sachen
    Wehe Du machst in den CASE-Zweigen Ausgangszuweisungen, dann ist es im Grunde der gleiche Mist wie diese Wenn-Dann- oder Setzen/Rücksetzen-Dinger.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  10. #19
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Zitat Zitat von PN/DP
    Was ich besonders an dieser Wenn-Dann-Denke und Wenn-Dann-Programmierung (inklusive übermäßigem Gebrauch von Flanken) hasse, ist, daß dadurch fast zwangsläufig bedingte Ausgangszuweisungen an -zig Stellen im Programm gemacht werden.
    Zitat Zitat von PN/DP
    Die typische Reaktion der Wenn-Dann-Programmierer bei zutagetreten der "unmöglichen" Anlagenzustände ist, noch eine spezielle Wenn-Dann-Reaktion hinterher-zu-programmieren und später noch eine und noch eine
    Wenn schon die erste Version eines Programms so geschrieben ist oder später noch jede Menge Verriegelungen nachgetragen werden müssen, hat man ganz klar seine Hausaufgaben nicht gemacht. Das hat für mich aber nichts mit der grundsätzlichen Denk- und Vorgehensweise beim Programmieren zu tun.

  11. #20
    Registriert seit
    03.04.2008
    Beiträge
    6.206
    Danke
    237
    Erhielt 818 Danke für 692 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von StructuredTrash Beitrag anzeigen
    Wenn schon die erste Version eines Programms so geschrieben ist oder später noch jede Menge Verriegelungen nachgetragen werden müssen, hat man ganz klar seine Hausaufgaben nicht gemacht. Das hat für mich aber nichts mit der grundsätzlichen Denk- und Vorgehensweise beim Programmieren zu tun.
    Wenn ich dich richtig verstanden habe, weißt du zu Beginn schon alle Eventualitäten, die sich bei der Programmierung und Inbetriebnahme ergeben?

    Respekt!


    bike

Ähnliche Themen

  1. S7 V5.4 gehe zu verwendungsstelle...
    Von Tom100 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 05.01.2018, 11:36
  2. S7xudiax Fehler bei gehe zu
    Von Gigamail im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.10.2010, 21:17
  3. Ab September gehe ich Studieren
    Von godi im Forum Stammtisch
    Antworten: 10
    Letzter Beitrag: 05.07.2009, 00:30
  4. Antworten: 16
    Letzter Beitrag: 21.06.2008, 12:44
  5. Wie gehe ich am besten vor bei S7?
    Von Gruwe im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 10.02.2006, 15:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •