Hallo Kollegen, hallo Siemens-Mitleser
( VORBEMERKUNG)
Ich kenne das TIA-Portal noch nicht, möchte aber im Vorfeld auf einige Sachen hinweisen.
Mit der Entstehung einer neuen Programmiersoftware und einer neuen CPU-Generation könnten nun auch einige Design-Fehler behoben werden, die nach einer gewissen Zeit (nachvollziehbar) zur Systemeigenschaft mutiert sind, und dadurch unabänderbar wurden.
Es ist gut zu hören / lesen, dass die Länge der Labelnamen endlich verlängert wurde, aber es bleibt, denke ich, noch ein Problem:
VORSCHLAG:
Es sollte zwischen Netzwerk-lokalen und Baustein-globalen Labeln unterschieden werden können.
GRUND:
( Ich kopiere hier einfach mal, modifiziert, einen Vorschlag ein, den ich 2000 schon mal gemacht habe. Die Sache mit den Labelnamen ist geklärt, der Rest gilt aber immer noch.)
( Man erinnere sich in diesem Zusammenhang an die Glaubensdiskussionen der Hochsprachler in den 70/80er Jahre:
"Sind Labels in Hochsprachen schlechter Stil?"
Die Step5-Entwickler hatten dieser Diskussion damals mit lokalen Labels Rechnung getragen und die damals angeführten Argumente gelten fuer uns Halb-Assembler-Programmier nach wie vor. )
In der S5 waren die Labels Netzwerk-Lokal.
Dies hatte auch verschiedene Vorteile:
Bei Änderung musste nur eine umgrenzter Bereich (max 256 Befehle, also maximal das Netzwerk ) auf die Auswirkung der Änderung untersucht werden.
Eines der Hauptargumente der GOTO-Gegner war "Spagetti-Code".
Durch die jetzt ( Step7) bausteinweiten Labels in 64kb-Bausteinen hat sich die "Spagetti-Code"-Gefahr deutlich verschärft.
Ausserdem führen Netzwerk-Kopierfunktionen schnell zu fehlerhaften Sprüngen.
In dem TIA-Portal sollten deshalb folgende Verbesserungen eingebaut werden:
- Label sind Lokal, wenn nicht als mit einem Präfix gekennzeichnet. Dies erleichertert die Übersichtlichkeit (s.o)
- Es sollten in verschiedenen Netzwerken gleiche Labelnamen möglich sein, solange sie lokal sind. Dies ermöglicht im Netzwerk-Zusammenhang ausagefähige Namen ohne langen Info-Overhead. ("HSK30AP001_nabb" oder "HSK30AP001_Auto" liest sich schlechter als "nabb" oder "Auto", vom Eintippen mal ganz abgesehen. )
- Sprünge, die ausserhalb des Netzwerks springen, werden ebenfalls mit einem Präfix versehen, es koennen nur Globale labels von ausserhalb des Netzwrks angesprungen werden.
( Dies hat im Uebrigen keinen Einfluss auf die SPSen. Ich weiss nicht,
ob S7-Programme mittlerweile abwaertskompatibel sind, aber auch dies
koennte realisiert werden, wenn die Praefixes nicht mit abgespeichert
werden und nur zur Editierzeit existieren. )
z.B:
------- Netzwerk n ------------------
spb nabb // lokaler Sprung
....
spa G#ende // globaler Sprung
nabb: NOP 0 // lokales Label
------- Netzwerk n + 1 --------------
spb nabb
nabb: NOP
------- Netzwerk n + m --------------
G#ende: nop 0 // Globales Label
Es sollte also diesbezüglich der operative Stand der S5 (lokale Labels) und der S7 (bastein-weite Labels ) erreicht und übertroffen werden.
Gruss
Werner