- Beiträge
- 9.191
- Reaktionspunkte
- 2.936
-> Hier kostenlos registrieren
Bitte jetzt nicht immer Ausreden suchen, vielleicht einfach mal zugeben das es einfach nicht geht.
Schon allein weil es keine Reflexionsanweisungen bei Classic gibt, mit denen ich zur Laufzeit Namen auslesen kann.
Ich kann mir aber in der S7 ein Programm schreiben, welches das SPS-Programm analysiert und die Namen und Adressen des Programms in einen DB sammelt, und dann eine SPS-Funktion GetSymbolName(in:= ANY) schreiben die eben in diesem DB nach der übergebenen Adresse (per Any) nach dem Namen sucht. GetSymbolName ist für mich kein Killer-Feature, sondern eine Krücke um die Mängel im restlichen Befehlssatz auszugleichen.
Das Problem bei der 1500 ist, dass durch das Fehlen von einer echten Zeiger/Referenz Funktionen, man auf solche unsinnigen und auch performancefressenden Funktionen wie GetSymbolName zurückgreifen muss. Erstelle mal in der 1500 eine verkettete oder doppelt verkettete Liste, und dann sieh dir mal an wie einfach das in Codesys geht.
Ich finde ja auch, dass die MCR Anweisung sehr wichtig ist, denn ich verwende diese in fast jedem Baustein in meinem SPS-Programm.