Hi,
meine symbolische Programmierung führt nicht automatisch dazu, dass es keine sichtbaren Adressen gibt (abgesehen von z.B. RSLogix 5000) oder dass sie überall unterschiedlich sind oder dass sie nicht bekannt sind.
Bei uns stehen eben (Merker-, DB-, FC-) Adressen nicht in einer "Firmen-Norm", sondern in der Symboltabelle und im Projekt. Die sind häufig tatsächlich fast immer gleich, weil ich es für sinnvoll halte, Dinge nicht ohne Grund unterschiedlich zu machen. Nur sind sie eben nicht streng normiert. Die Taktmerker sind also immer gleich nach Name, Kommentar und auch Byteadresse, aber wenn eine Kunden-Firmen-Norm oder eine importierte Bibliothek verlangt, dass das Byte verschoben wird, spricht nichts dagegen. Das Symbol zu ändern, ist etwas unangenehmer (weil das tatsächlich eine Abweichung von einer Art "Norm" sein könnte), aber auch möglich.
Und ich vermute, dass die, die solche Adressen normieren, ihre Norm auch gelegentlich ändern (müssen). Oder man hält sich nicht dran.
Addressen innerhalb DBs ändern sich durch Weiterentwicklung, Änderungen der Maschine, Kundenwünsche, weil sich die Struktur der UDTs und FBs ändert. Wenn das nicht sein dürfte, wäre Weiterentwicklung blockiert oder der Einsatz von UDTs, FBs und Arrays behindert.
So kann ich die Bedenken beantworten:
- Der Kunde hat die Adressen, sie stehen im Step7-Projekt. Globale Adressen (Symboltabelle) bleiben meistens gleich, Adressen tief in Strukturen eher nicht.
- Wer ganz ohne Step7-Projekt die Maschine ändert, kann es etwas leichter haben, wenn die Maschinen eines Herstellers alle gleich sind. Wenn ich keine neuen Kundenwünsche, keine Weiterentwicklung, keine Änderungen und keine Umstellung auf TIA-Portal umsetzen muss, geht das.
- Ein anderer MA hat ja Zugriff auf Quellcode und Adressen und kann im übrigen auf Anfrage informelle Programmierrichtlinien haben. Nach meiner Erfahrung, programmieren sie lieber so wie sie es wollen. Ich würde da nur nachbessern, wenn es "zu weit" abweicht oder fehlerhaft ist.
- Bei Kunden und Lieferanten werden Schnittstellen entwickelt, ich denke das ist nichts besonderes und liegt in der Natur der Sache.
- Bei Übergabe der Codebasis ist meines Erachtens ein Code, der auf Bezeichnern basiert statt Adressen, besser verständlich. Aber wie gesagt, die Adressen sind auch da (zumindest bei Step7 classic). Gleiches für "in 10 Jahren".
- Wenn ich nach 10 Jahren nur Adressen und Nummern vor mir sehen würde, würde ich da nichts finden. Gibt es Namen und Kommentare, sieht es besser aus. Das ist dann wohl "God-Mode".
Mein Beispiel für eine weniger wünschenswerte Richtlinie ist nicht theoretisch, sondern habe ich selbst so gesehen und anwenden müssen. Die gesamte Richtlinie, in der das enthalten war, hat auf weniger als 1 Blatt gepasst.
Wenn ich irgendwo programmiere, versuche ich mich an bestehende Standards zu halten, ob dokumentiert oder de facto ersichtlich. Nur wenn ich sehe, dass es so nicht funktioniert, dann bemühe ich mich um Verbesserung. Wenn es Programmier-Standards von mir geben soll, dann wird wohl weniger geregelt als manchen hier lieb ist, zumal ich sie ohnehin nicht durchsetzen kann.