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

Seite 1 von 7 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 65

Thema: RANT: Konstrukte bei denen man sich manchmal fragt

  1. #1
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich bin grad an einem Projekt dran das seit 5 Jahren läuft und jetzt erweitert wird. Ich muss mich also in die denke eines anderen Programmierers eindenken.
    Und vor allem Fehler suchen die nur sporadisch auftauchen.

    Ich bin weit entfernt ein Pro zu sein. Aber bei manchen Konstrukten zweifle ich echt an der Zurechnungsfähigkeit und der Qualitätskontrolle.

    Das hier wäre so ein Beispiel.
    Code:
          U     #Obj_Schalten      
    SPBN  AU01
          ON    #Obj_Freigabe
          O     #Obj_SA_Abschaltung
          O     #Obj_SA_SGK_Schalten
          SPBN  AU01
          R     #Obj_Schalten
    AU01: NOP   0
    Was denkt man sich wenn man so was konstruiert? Denkt man da auch an den nächsten der da online Fehler suchen soll? Wie macht man mit sowas ne Inbetriebnahme?

    Das wird dann in anderen Programmteilen noch etwas exzessiver.
    Code:
          O     "Instanz DB11".Betrieb_Im_Obj1_Ein
          O     "Instanz DB11".Prg_Immission_Obj1_aktiv
          O     "Instanz DB11".Betrieb_IM_Obj2_Ein
          O     "Instanz DB11".Prg_Immission_Obj2_aktiv
          O     "Instanz DB11".Betrieb_Manuell_Ein
          O     "Instanz DB11".Prg_Manuell_aktiv
          SPBN  FR01
          U     "IODB"._DBX_2_1          // Drehrichtung
          SPB   FR00
          U(                                // Drehzahl
          L     "SPS -> MMI"._DBW_60_0
          L     50
          <=I   
          )     
          SPBN  FR01
    FR00: O(    
          L     "SPS -> MMI"._DBW_86_0
          L     150
          >=I   
          )     
    FR01: UN    #Obj_SA_Alarme_Anfahrt
          UN    #Obj_SA_SGK_Schalten
          UN    #Obj_SA_Abschaltung
          U     #Obj_Freigabe
          SPBN  FR02
          S     #Obj_Schalten
    FR02: NOP   0

    Was habt ihr da so zu bieten wo ihr euch schonmal gefragt habt was sich derjenige dabei dachte.

    mfG René
    Zitieren Zitieren RANT: Konstrukte bei denen man sich manchmal fragt  

  2. #2
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Was habt ihr da so zu bieten wo ihr euch schonmal gefragt habt was sich derjenige dabei dachte.

    mfG René[/SIZE]
    Hallo René

    das ist der Progger-Stil eines Programmierers, der noch
    mit Sicherheit in S5-Zeiten aufgewachsen ist.
    Dort war es so üblich, in AWL das "Setzen" so wie hier
    aufzurufen und das Rücksetzen erst Netzwerke später
    oder gar in einem anderem Baustein auszuführen (was
    sicher auch funktioniert, aber nicht unbedingt
    nachvollziehbar ist).

    Bleibt dir nur eins:
    "reinpfriemeln"
    ODER
    auseinander nehmen und neu programmieren.


    Gruss
    kind regards
    SoftMachine

  3. #3
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Zitat Zitat von SoftMachine Beitrag anzeigen
    Hallo René

    das ist der Progger-Stil eines Programmierers, der noch
    mit Sicherheit in S5-Zeiten aufgewachsen ist.
    Leider nicht. Darum kann ich mir diesen Stil ja auch nicht erklären.

    Dort war es so üblich, in AWL das "Setzen" so wie hier
    aufzurufen und das Rücksetzen erst Netzwerke später
    oder gar in einem anderem Baustein auszuführen (was
    sicher auch funktioniert, aber nicht unbedingt
    nachvollziehbar ist).
    Ich setze und rücksetze ja manchmal auch in verschiedenen Netzwerken. Dann wenn es der Uebersichtlichkeit oder Sicherheit geschuldet ist.
    Aber ich war mir sicher das man auch bei der S5 ein S und R Ergebnisabhängig ausgeführt hat. Und nicht überspringen musste wenn es nicht ausgeführt werden sollte.

    Und in diesen Programmteilen ist es dann ja sogar so dass zwingens S oder R ausgeführt werden. Also die Funktion garnicht benötigt wird sondern ein = den selben Zwecke erfüllte.

    Ich versuche möglichst mit aus dem Programm rauszuhalten und die Erweiterungen in getrennten Bereichen zu halten. Aber es hat da drin auch hochsporadisch auftauchende Fehler die echt schwierig zu finden sind.

    mfG René

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.170
    Danke
    922
    Erhielt 3.287 Danke für 2.656 Beiträge

    Standard

    Der gezeigte Programmierstil hat nichts mit "alter S5-Programmierer" zu tun, sondern eher mit "junger größenwahnsinniger S7-Programmierer", der nach kurzer Erfahrung schon meint, er wäre ein AWL-Genie ("übersichliches KOP/FUP ist was für Weicheier und Platzverschwendung").

    Es war auch zu S5-Zeiten nicht üblich, mitten in Verknüpfungen zu springen - erst recht nicht mit SPB/SPBN , weil das nämlich gar nicht so funktioniert, wie das kleine Genie wohl gewollt hat.
    siehe die zweimal "SPBN FR01"

    Ich kann mir gut vorstellen, daß der Code mit den Vergleichern gar nicht so funktioniert wie er soll, man sieht aber leider nicht welchen Sinn die Parameter _DBW_60_0 und _DBW_86_0 haben.

    Damit "S #Obj_Schalten" ausgeführt wird:
    • WENN _DBX_2_1 = 0 und _DBW_60_0 > 50 DANN wird _DBW_86_0 ignoriert
    • WENN _DBX_2_1 = 0 und _DBW_60_0 <= 50 DANN muß _DBW_86_0 >= 150 sein
    • WENN _DBX_2_1 = 1 DANN wird _DBW_60_0 ignoriert aber _DBW_86_0 muß >= 150 sein
    • WENN keines der "DB11"-Bits true ist, dann werden beide _DBW_60_0 und _DBW_86_0 ignoriert



    "FR00: O("
    Ob hier O( oder U( steht ist egal, weil immer eine neue Verknüpfung mit Erstabfrage angefangen wird und später kein O mehr kommt. Das verwendete O( ist aber irreführend weil es wie U( wirkt!


    "SPBN FR02" und "SPBN AU01"
    Die einzelnen S oder R zu überspringen ist Ansichtssache. Man kann es so machen, weil es evtl. die Übersichtlichkeit erhöht. Solange nur S und R nach dem SPBN folgen ist das Überspringen nicht notwendig. Vielleicht war da aber auch noch weiterer (auskommentierter) VKE-unabhängiger Code nach dem SPBN (oder die Stelle soll für sowas freigehalten werden)?

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Es war auch zu S5-Zeiten nicht üblich, mitten in Verknüpfungen zu springen ...
    Hast du 'ne Ahnung ... Derartige Merkwürdigkeiten habe ich auch schon des Öfteren gesehen ... und ich mache mit dir eine Wette, dass noch viele "erfahrene" Programmierer auch heute noch so programmieren ...
    In meinem heutigen Zuständigkeitsbereich gibt es so etwas nicht ... und früher habe ich solche Konstrukte dann regelmäßig elemeniert, streng nach der vielleicht etwas größenwahnsinnigen Devise : wenn ich es nicht auf Anhieb verstehe - wie sollen es dann Andere tun ...



    Gruß
    Larry

  6. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Grimsey (28.10.2013)

  7. #6
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Die Devise ist aber sehr gut...

    Ich nehme mir immer vor, etwas so zu programmieren, dass ich auch in 5 Jahren mir einer Kiste Bier intus noch verstehe was ich programmiere. Aber wenn ich heute Programme anschaue die ich vor 10 Jahren gebastelt hab, glaub ich eher, dass ich damals besoffen war....
    mfG Aventinus

  8. #7
    Avatar von vollmi
    vollmi ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    775
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Zitat Zitat von Aventinus Beitrag anzeigen
    Aber wenn ich heute Programme anschaue die ich vor 10 Jahren gebastelt hab, glaub ich eher, dass ich damals besoffen war....
    Das geht mir heute auch so. Wenn ich mir die Merkerverballerei von vor 10 Jahren anschaue die ich programmiert habe. Wo ich heute alles versuche in Bausteine zu kapseln.

    Aber man lernt ja auch dazu. Zumindest versucht man es.

    Aber selbst vor 10 Jahren habe ich auch meinen wesentlich unübersichtlicheren Programmierstil ausführlich mit Kommentaren und Datum versehen dass ich auch auch heute noch weiss um was es ging und was die Intention hinter einer Programmzeile war.

    mfG René

  9. #8
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Zitat Zitat von vollmi Beitrag anzeigen
    Wenn ich mir die Merkerverballerei von vor 10 Jahren anschaue die ich programmiert habe. Wo ich heute alles versuche in Bausteine zu kapseln.
    Du weißt was ich meine
    mfG Aventinus

  10. #9
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    arbeitet bei dir in der firma ein mann der Alex heißt?

  11. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von KingHelmer Beitrag anzeigen
    arbeitet bei dir in der firma ein mann der Alex heißt?
    Gott arbeitet nicht, Gott erschafft!!!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  12. Folgende 3 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    Grimsey (28.10.2013),Thomas_v2.1 (17.10.2013),vollmi (17.10.2013)

Ähnliche Themen

  1. Strukturen Vergleichen in denen Arrays vorkommen
    Von SteffenD im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 31.07.2013, 09:18
  2. WCf 2008 SP2 HF3 hängt sich manchmal auf
    Von Günni1977 im Forum HMI
    Antworten: 3
    Letzter Beitrag: 26.11.2010, 09:14
  3. CX hängt sich manchmal auf bei "Route hinzufügen"
    Von karlheinzsps im Forum CODESYS und IEC61131
    Antworten: 17
    Letzter Beitrag: 03.03.2010, 13:15
  4. blutender Anfänger fragt .....
    Von Martha72 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 16.07.2009, 11:46
  5. Warum man sich OPC sparen sollte...
    Von seeba im Forum Stammtisch
    Antworten: 8
    Letzter Beitrag: 19.06.2006, 10:58

Lesezeichen

Berechtigungen

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