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

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: Programmierstil / schöner programmieren?

  1. #1
    Registriert seit
    25.09.2011
    Beiträge
    130
    Danke
    4
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    da ich ja grade wieder anfange in die SPS Programmierung einzusteigen würde ich mich freuen wenn ihr mir ein paar Tipps geben könntet wie ich mein Programm schöner machen könnte.

    Schöner im Sinne von Resourcen sparend etc.

    Über ein paar grundlegende Tipps würde ich mich sehr freuen.

    Vielen Dank schon mal.

    Gruß Chris
    Zitieren Zitieren Programmierstil / schöner programmieren?  

  2. #2
    Registriert seit
    19.12.2008
    Beiträge
    336
    Danke
    19
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Schön und Resourcen sparen ist schon ein Widerspruch !
    Ein schönes Programm ist deshalb schön, weil es gut dokumentiert und somit gut verständlich und nachvollziehbar ist. Man kann bei ihm relativ schnell die Zusammenhänge erkennen. Dies läßt sich nach meiner Erfahrung idR nicht mit knappen, Resourcen sparenden, Programmcode verwirklichen.

    Wo soll der Zug also hinfahren ?

  3. #3
    Registriert seit
    16.05.2007
    Ort
    im Stahlwerk...
    Beiträge
    1.178
    Danke
    120
    Erhielt 429 Danke für 236 Beiträge

    Standard

    Deine Frage ist hier schon zig mal durchgekaut worden und meist endet alles im SV.
    Schon bei einfachen, und grundlegenden Dingen wie das Bilden der statischen globalen VKE-Merker gibt es Diskussionen.
    Dann sind da die Verfechter der jeweiligen Programmiersprache KOP/FUP/AWL/SCL...

    Hier mal meine Meinung zum "sauberen" Programmieren ("schön" klingt irgendwie tuckig):
    • Keine Codetrickserei mit indirekter Adressierung, nur um auf "dicke Hose" zu machen, wenns auch einfach geht - an die Instandhalter denken!
    • Symboltabelle komplett, d.h. keine Operanden unter den Referenzdatenliste "Operanden ohne Symbol"
    • Nicht verwendete Operanden möglichst aus der Symboltabelle entfernen - schlank und gut!
    • Eingänge für die Sensorik durchgängig benennen, z.B. im Kommentar "Endschalter", "Grenztaster" oder "Efektor" - dann lässt's sich später gut Filtern
    • Gut finde ich auch den Zusatz "=0" und "=1" für Öffner bzw. Schliesserkontakte.
    • Aussagekräftige Netzwerküberschriften
    • Erst überlegen, dann programmieren - Strukturen erstellen (UDT, FB, Struct usw - das macht das Leben hinterher leichter
    • keine direkten Zugriffe auf Lokaldaten ala U #L 0.1 - wenn mal etwas nachgefrickelt wird, dann fangen die Probleme an.
    • keine globalen Zugriffe auf Instanzen - ist meine persönliche Meinung - wird hier im Forum aber kontrovers diskutiert
    • keine meterlangen AWL-Netzwerke - an die Instandhalter denken
    • binäre Logiken in SCL nachzubilden finde ich gelinde gesagt auch nicht Instandhalterfreundlich
    • SCL-Bausteine ohne Quellen als AWL-Salat abzuliefert wird von mir nicht abgenommen.
    • Funktionen kapseln und Anlagenteile per Multiinstanz zusammenfassen - macht das Programm übersichtlich. Z.B. 20x Motor-FB im Multi-FB "Rollengang xy". Ist aber auch so ein Thema wo viel drüber gestritten wird.
    zum Abschuss freigegeben...


    P.S.: Recourcensparen? Immer gerne, aber die S5-Zeiten sind eigentlich vorbei.
    Approx
    Geändert von Approx (25.10.2011 um 07:31 Uhr) Grund: ps
    Nihil est in cpu, quod non fuerit in intellectu" - Nichts ist in der CPU, was nicht (zuvor) im Verstand war.

  4. Folgende 4 Benutzer sagen Danke zu Approx für den nützlichen Beitrag:

    Aventinus (25.10.2011),Deltal (25.10.2011),Pittie (27.10.2011),Pumpernickel (29.10.2011)

  5. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    ... ich hätte da auch noch einen ...

    Wenn man durch sein eigenes Programm, 6 Monate nachdem man es in Betrieb genommen hat, noch durch steigt dann ist es gut.

    Ansonsten : siehe Oben - damit ist m.E. das Wesentliche gesagt ...

  6. Folgende 2 Benutzer sagen Danke zu Larry Laffer für den nützlichen Beitrag:

    Pumpernickel (29.10.2011),weristwieGott (06.11.2011)

  7. #5
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von Approx Beitrag anzeigen
    Deine Frage ist hier schon zig mal durchgekaut worden und meist endet alles im SV.[*]Funktionen kapseln und Anlagenteile per Multiinstanz zusammenfassen - macht das Programm übersichtlich. Z.B. 20x Motor-FB im Multi-FB "Rollengang xy". Ist aber auch so ein Thema wo viel drüber gestritten wird.[/LIST]zum Abschuss freigegeben...


    P.S.: Recourcensparen? Immer gerne, aber die S5-Zeiten sind eigentlich vorbei.
    Approx
    Yep, das mit dem SV stimmt.

    Bei Multiinstanzen bin ich inzwischen immer skeptischer geworden, ich halte das für einen ganz üblen Irrweg, den Siemens einigen Programmierern damit ermöglicht hat. Ich hab gerade ein Programm am Wickel, da ist alles, bis hin zur Schrittkette in einer Multiinstanz je Station verpackt, ich denke mal, Schachtelungstiefe 4-5. Das ist unwartbar, unänderbar, Suchfunktionen (Querverweis) über Alles kann man komplett vergessen. Da sind wir dann auch schon bei der kontroversen Diskussion. Es ist schon interessant, wie ein an sich ganz gutes Strukturelement (Multiinstanz), durch fehlende Unterstützung (Keinerlei Querverweis möglich) und übertriebenen Einsatz (große Schachtelungstiefe, keine einzige Globalvariable, alles in der Multiinzstanz) zu einem Ärgernis pervertiert. Also Vorsicht und Augenmaß beim Einsatz, das gilt für viele Möglichkeiten, die Steuerungen so bieten.

    PS: Leider gilt das Augenmaß auch für den Einsatz von struct und udt, da Siemens hier durch die mangelnde Querverweisunterstützung fuchtbar geschlampt hat.
    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

  8. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Onkel Dagobert (31.10.2011)

  9. #6
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    naja die verwendung von Multiinstanzen würde ich nicht so verteufeln, genauso
    auch den zugriff auf Adressregister. Mal eben einen IEC-Timer oder Zähler in den
    Bausteinkopf, finde ich schon sehr Praktisch und garnicht unübersichtlich.

    Schlechte Programme kann mann man auch schreiben, wenn nur Merker und
    Global DB's verwendet werden. Alles eine Frage des Stils.

    Ein Zugriff auf Instanzen des FB's sind doch mit der Suche oder Gehe zu Methode
    zu finden und Außerhalb des FB's sollte dann ein Vollqualifizierte Zugriff verwendet
    werden.

  10. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von rostiger Nagel Beitrag anzeigen
    Ein Zugriff auf Instanzen des FB's sind doch mit der Suche oder Gehe zu Methode
    zu finden und Außerhalb des FB's sollte dann ein Vollqualifizierte Zugriff verwendet
    werden.
    Jawohl! Und dann noch ein paar Struct und UDT direkt als IN und OUT an den FB anlegen, dann ist nichts mehr zu finden, glaub mir, das wird zum großen Ratespiel für Dritte. Deswegen sag ich ja, mit Augenmaß verwenden und dann kann man damit schöne Dinge tun. IEC-Timer in der Multiinstanz, genau da sind sie richtig eingesetzt, werden ja auch außerhalb nicht benötig.

    PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!
    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

  11. #8
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Jawohl! Und dann noch ein paar Struct und UDT direkt als IN und OUT an den FB anlegen, dann ist nichts mehr zu finden, glaub mir, das wird zum großen Ratespiel für Dritte. Deswegen sag ich ja, mit Augenmaß verwenden und dann kann man damit schöne Dinge tun. IEC-Timer in der Multiinstanz, genau da sind sie richtig eingesetzt, werden ja auch außerhalb nicht benötig.

    PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!
    die gesamte struktur einer station in einem instanzdb und die "multiinstanzen" mit UC aufgerufen ... genial!
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  12. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    @Ralle:
    Du weißt schon, dass du jetzt mit der SV-Geschichte anfängst ...

    Was die Multi-Instanzen etc. angeht :
    Wenn ich einen FB (oder SFB) in einen anderen FB einlagere mußt ich die Funktion des eingelagerten Bausteins isoliert betrachten und vor Allem betrachten können. Siehe z.B. die MI-Timer - hier ist es vollkommen egal, wie die innen drin funktionieren. Kann ich sie nicht isoliert betrachten, so hast du Recht.

    Gruß
    Larry

  13. #10
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen

    PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!
    Endschuldigung ich hab mich schlecht ausgedrückt!

    GDB - Vollqualifizierzt
    IDB - Disqualifiziert

Ähnliche Themen

  1. Asi-Bus programmieren
    Von Nullinger im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.03.2010, 09:18
  2. Ein sehr schöner Artikel
    Von mariob im Forum Stammtisch
    Antworten: 3
    Letzter Beitrag: 12.03.2009, 09:44
  3. S5 95U programmieren !?
    Von Tom1971 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 16.10.2007, 19:24
  4. programmierstil s7
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 01.11.2005, 19:04
  5. Programmierstil - Richtlinien - S7
    Von eloboy im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 13.10.2004, 09:13

Lesezeichen

Berechtigungen

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