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

Seite 3 von 7 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 69

Thema: wie gehe ich da ran?

  1. #21
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von bike
    Wenn ich dich richtig verstanden habe, weißt du zu Beginn schon alle Eventualitäten, die sich bei der Programmierung und Inbetriebnahme ergeben?
    Nein, da hast Du mich falsch verstanden. Ich meine, dass es kein guter Stil ist, Zuweisungen auf den selben Ausgang wild auf das gesamte Programm zu verteilen, so wie es auch PN/DP wohl schon öfter hat sehen müssen. Und alle Eventualitäten sehe ich auch nicht voraus, auch wenn sich die Anzahl der "don't cares", die tatsächlich keine sind, im Lauf der Jahre schon verringert.

    Was ich ursprünglich zum Ausdruck bringen wollte, ist, dass die "Wenn-dann"-Struktur die Stärke von ST ist und man die auch nutzen sollte. Dass man dabei zu Anfang oft genug das "Sonst" ausser Acht lässt, weiss ich aus eigener Erfahrung nur zu gut. Wenn man lernfähig ist, sollte dieser Drob aber nach der ersten so programmierten Katastrophe gelutscht sein.

    Bei einer simplen Aufgabe wie in meinem ursprünglichen Beispiel bevorzuge ich auch die direkte Zuweisung. Dies kann sich aber schon bei einer geringfügigen Änderung der Aufgabe umkehren. Dazu noch ein Beispiel:
    Code:
    IF Rueckwaerts
    THEN
       Ausgabe:= -Sollwert;
    ELSE
       Ausgabe:= Sollwert;
    END_IF;
    
    Ausgabe:=(1-(BOOL_TO_SINT(Rueckwaerts)*2)*Sollwert;
    Ich gebe zu, dem Charme des Einzeilers schon mal erlegen zu sein. Aber jedes Mal, wenn sich ein Kollege erst mal am Kopf kratzt, bekomme ich ein schlechtes Gewissen.

  2. #22
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.186
    Danke
    923
    Erhielt 3.291 Danke für 2.660 Beiträge

    Standard

    Ich will hier nochmal drauf zurückkommen:
    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.
    Sicher kann man mit IF...THEN...ELSE auch gute Programme schreiben, die wie mit FUP/KOP funktionieren. Mir gefällt diese Entwicklung zum Wenn-Dann aber nicht, gerade wegen der einfachen und verständlichen Formulierbarkeit (das begreift fast jeder Depp). Auch dafür ist das Programm von Dante ein gutes Beispiel: schnell was hingetippt, was auf den ersten Blick das tut, was es soll - doch wehe das Programm wird aus der Testumgebung in das reale Umfeld entlassen, mit Bedingungen, die der Programmierer nicht vorhergesehen hat.
    Zitat Zitat von dante Beitrag anzeigen
    Habs ihm schon komplett geschrieben

    Hier die exportierte Version: (mit seinen Angaben gemacht ohne Sicherheit das die Pumpen trocken laufen oder so)
    Typisch sind "schon", "komplett" und dann doch noch Einschränkungen für die reale Verwendbarkeit.

    Das zeigt doch, das die Aufgabe nicht mehr zuerst durchdacht wird (*), sondern sofort losprogrammiert wird und dann mal sehen, was es tut. Die paar Macken, die beim ersten Test auffallen, sind doch schnell mit weiteren Wenn-Dann umschifft!

    Das dumme an dieser Wenn-Dann-Denke ist: sie verführt unheimlich dazu, Ereignis-orientiert ("vom Eingang zu den Ausgängen") zu programmieren und möglichst alle Reaktionen inklusive aller zu schaltender Ausgänge sofort in den Dann-Zweig zu legen. Das Bilden von Zwischenmerkern und anschließendes Verknüpfen zu einer Ausgangszuweisung ist vielen Programmierern scheinbar unbekannt oder sie meinen, diesen "überflüssigen" zusätzlichen Aufwand könne man sich sparen.

    Vielleicht habe ich vorhin StructuredTrash falsch verstanden, vieleicht meinte er mit "speichernde Logik" solche Zwischenmerker?

    (*) Apropos vorher durchdenken: da hat Question_mark letztens was schön formuliert.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #23
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Das dumme an dieser Wenn-Dann-Denke ist: sie verführt unheimlich dazu, Ereignis-orientiert ("vom Eingang zu den Ausgängen") zu programmieren
    Ich glaube, dass das die Wurzel allen Übels ist.
    Ereignis-Steuerung im Vergleich zu Verknüpfungssteuerung.
    Was bei Windows-Programmierung gut ist, muss noch lange nicht für Automatisierung taugen.

    Gruß
    Dieter

  4. #24
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von Blockmove Beitrag anzeigen
    Ich glaube, dass das die Wurzel allen Übels ist.
    Ereignis-Steuerung im Vergleich zu Verknüpfungssteuerung.
    Was bei Windows-Programmierung gut ist, muss noch lange nicht für Automatisierung taugen.

    Gruß
    Dieter
    Wobei ich bis heute noch? nicht überzeugt bin, ob das bei Windows der richtige erfolgreiche Weg ist.
    Doch die Hochsprachen erlauben eben dies und was funktioniert wird irgendwie genutzt.


    bike

  5. #25
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    749
    Danke
    27
    Erhielt 164 Danke für 142 Beiträge

    Standard

    Zitat Zitat von PN/DP
    Mir gefällt diese Entwicklung zum Wenn-Dann aber nicht, gerade wegen der einfachen und verständlichen Formulierbarkeit (das begreift fast jeder Depp).
    Ich finde auch als Nicht-Depp Gefallen an gut Verständlichem.

    Zitat Zitat von PN/DP
    Vielleicht habe ich vorhin StructuredTrash falsch verstanden, vieleicht meinte er mit "speichernde Logik" solche Zwischenmerker?
    Nein, ich meine damit das, was man allgemein darunter versteht. Logik, bei der nicht jedem Eingangszustand ein eindeutiger Ausgangszustand zugeordnet ist.


    Zitat Zitat von Blockmove
    Ich glaube, dass das die Wurzel allen Übels ist.
    Ereignis-Steuerung im Vergleich zu Verknüpfungssteuerung.
    Für die Wurzel allen Übels halte ich eher dies:
    Zitat Zitat von PN/DP
    Das zeigt doch, das die Aufgabe nicht mehr zuerst durchdacht wird (*), sondern sofort losprogrammiert wird und dann mal sehen, was es tut.
    Davor bietet aber auch eine Verknüpfungssteuerung keinen wirksamen Schutz. Zugegeben, es ist dabei schwieriger, bestimmte Zustände bei der Programmierung unberücksichtigt zu lassen. Dafür besteht die Gefahr, dass Monster-Netzwerke entstehen, bei denen man die Funktion im normalen Betrieb vor lauter Verriegelungen kaum noch erkennt. Die Verwendung von Zwischenmerkern, wie sie PN/DP nennt, scheint da tatsächlich weitgehend unbekannt zu sein.
    Es gibt eben bei jeder Programmierweise gute und böse Programmierer.

  6. #26
    Registriert seit
    15.10.2007
    Beiträge
    34
    Danke
    1
    Erhielt 6 Danke für 5 Beiträge

    Standard

    Ich konnte ja nur das Programmieren was ich an I/O hatte und mir an Funktion gegeben wurde. Ich denke für seinen Code dort war Wenn / Dann total okay!

    In vielen Beckhoff Bausteinen wird mit Case der Programmcode realisiert. Auch hier werden alle möglichen Variablen gesetzt / rückgesetzt.

    Bei der Wenn / Dann programmierung muss man halt sehen das ALLE Zustandsfälle ausgenutzt werden. Ich sehe selbst nicht das große Problem, da er mal locker noch seine Trockenlaufschalter oder Hysteresen einbauen kann. Zu kompliziert würde ich es auch net angehen und ich habe Kommentare geschrieben das auch ein Neuling sich zurechtfindet.

    @PN/DP

    Du kannst gerne die 2 seitige PDF bekommen und codest es besser, wenn du damit fertig bist kannst du auch gerne meinen Code kritisieren. Einfach mal den Ball flach halten und es besser machen. Es gibt gerade bei der Programmierung 1000 Wege zum Ziel.

  7. #27
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard

    Zitat Zitat von dante Beitrag anzeigen
    Ich konnte ja nur das Programmieren was ich an I/O hatte und mir an Funktion gegeben wurde. Ich denke für seinen Code dort war Wenn / Dann total okay!
    Vielleicht solltest du zuerst genauer nachdenken und nachfragen.
    So ein Bruchstück schreibe ich dir wenn in meiner Kneipe auf das nexte Bier warte.
    Aber! ich stell so etwas nie ins Netz.


    Zitat Zitat von dante Beitrag anzeigen
    @PN/DP

    Du kannst gerne die 2 seitige PDF bekommen und codest es besser, wenn du damit fertig bist kannst du auch gerne meinen Code kritisieren. Einfach mal den Ball flach halten und es besser machen. Es gibt gerade bei der Programmierung 1000 Wege zum Ziel.
    Wenn ich jetzt recht gelesen habe, bist du der Überzeugung, dass dein Code gut und richtig ist und alle möglichen Abbruch- und Ausnahmesituationen berücksichtigt werden?


    bike


    P.S: Ich hoffe du schreibst so nicht für uns.

  8. #28
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von dante Beitrag anzeigen
    Bei der Wenn / Dann programmierung muss man halt sehen das ALLE Zustandsfälle ausgenutzt werden. Ich sehe selbst nicht das große Problem, da er mal locker noch seine Trockenlaufschalter oder Hysteresen einbauen kann.
    Vernünftige Programme entstehen nur, wenn man von der Automaten- bzw. Zustandstheorie ausgeht.

    Dieses --- nah de müssen wir eben noch ein UN( O.. O ) U (..) dazuhäcken und schon passt das - ist Müll.

    Wie schnell haut einem der Herr Karnough (kennste den ) die Füße weg.

    Spätestens wenn man eine Teilfunktion stilllegen (auskommentieren) muß - mal eben kurz - dann kracht es, weil man etwas nicht bedacht hat.

    Nene, EINDEUTIGE Zustände definieren - auch für sowass "scheinbar" (nicht "anscheinend") simples wie eine Pumpensteuerung.

    Wenn man klar Zustände hat, kann man diese Zustände auch klar benennen
    und ggf. auch den passenden - dem Zustand entsprechenden - Text in das Faceplate einblenden.

    Wenn man nicht in der Lage ist das Zustandsdiagramm zu zeichnen, dann sollte
    man lieber erst garnicht programmieren.
    Leider habe ich schon extremen Pfusch gesehen, daher bin ich in meinem
    Auffassung ggf. etwas sehr prägnant.

    Frank
    Grüße Frank

  9. #29
    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 bike Beitrag anzeigen
    So ein Bruchstück schreibe ich dir wenn in meiner Kneipe auf das nexte Bier warte.
    Aber! ich stell so etwas nie ins Netz.

    Wenn ich jetzt recht gelesen habe, bist du der Überzeugung, dass dein Code gut und richtig ist und alle möglichen Abbruch- und Ausnahmesituationen berücksichtigt werden?


    bike


    P.S: Ich hoffe du schreibst so nicht für uns.
    Darf ich mal fragen warum Du so agressiv argumentierst? Bis jetzt nörgelt Ihr alle nur rum und meint ihr könnt es besser, Dante ist aber der einzige der sich mal ne Stunde zeit genommen hat und mir als einziger zu meiner Frage und zu meien ersten Schritten in ST weitergeholfen hat. Auch wenn er mir damit vielleicht nicht den Diamanten präsentiert hat, ist voll ok. Den hätt ich wohl für den Anfang auch nicht verstanden.

  10. #30
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.241 Danke für 973 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von xinix Beitrag anzeigen
    Darf ich mal fragen warum Du so agressiv argumentierst? Bis jetzt nörgelt Ihr alle nur rum und meint ihr könnt es besser, Dante ist aber der einzige der sich mal ne Stunde zeit genommen hat und mir als einziger zu meiner Frage und zu meien ersten Schritten in ST weitergeholfen hat.
    Vielleicht mag es daran liegen, dass wir uns in der Praxis zu oft mit Programmen dieser Art "vergnügen" dürfen.

    Dieter

Ähnliche Themen

  1. S7xudiax Fehler bei gehe zu
    Von Gigamail im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 18.10.2010, 21:17
  2. Ab September gehe ich Studieren
    Von godi im Forum Stammtisch
    Antworten: 10
    Letzter Beitrag: 05.07.2009, 00:30
  3. S7 V5.4 gehe zu verwendungsstelle...
    Von Tom100 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.04.2009, 12:50
  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
  •