TIA SCL Variablen dynamisch zusammensetzten

Den Variablenname kann man nicht dynamisch zusammensetzen.

Warum willst Du das tun? Was willst Du tun? Welche CPU willst Du programmieren?

Harald
 
Den Variablenname kann man nicht dynamisch zusammensetzen.

Warum willst Du das tun? Was willst Du tun? Welche CPU willst Du programmieren?

Harald

Ich kann ihn verstehen. Das Konzept einer reinen symololischen Programmierung wird erst dann wirklich vollständig, wenn man zur Laufzeit symbolische Variablennamen zusammensetzen und die Werte dieser Variablen auslesen kann. Ich habe meine Typanwahl innerhalb der SPS in Datenbausteinen (1 DB je Typ) organisiert. Das geht nicht wirklich symbolisch, denn wie soll ich den richtigen DB anwählen? Klar, eine lange Caseanweisung wäre machbar, aber das ist nicht schön.

"Zusammensetzen" hieße:

Typ 1 : DB Type_001
Typ 2 : Db Type_002

Wählt am Panel jemand Type 2, dann kommt eine INT 2 im Programm an.
Ich setze dann einfach zusammen : Type_ + 002 --> Type_002 und kopiere z.Bsp. die Daten schön symbolisch um.
Das geht so leider nicht, also wieder die "Krücke" peek, poke und Freunde.
 
Wählt am Panel jemand Type 2, dann kommt eine INT 2 im Programm an.
Ich setze dann einfach zusammen : Type_ + 002 --> Type_002 und kopiere z.Bsp. die Daten schön symbolisch um.
Das geht so leider nicht, also wieder die "Krücke" peek, poke und Freunde.
In WinCC und WinCC-Flex machen wir ja auch seit Jahren nix anderes.
Insofern ist die Frage des TE nicht sonders verwunderlich...
Sei es in C oder Vbs...
Code:
Nr = 1

Value = SmartTags("MeineVariable_" & CStr(Nr))

Dann wäre die Programmierung der indirekten Variablenzugriffe zumindest auf allen Systemen gleich...
Das aber in ner PLC umzusetzen dürfte wohl schwer sein.... schade. Die Möglichkeiten wären damit wohl unbegrenzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gemäss einem Insider bei Siemens sind dynamische Arrays geplant. Auf wann konnte ich ihm aber nicht entlocken. Aber schon eher ein "in den nächsten Jahren" als in zehn.

Auch mit dem Variant sollen noch einige Neuerungen geplant sein. Vieleicht gibts dann ja bald ein Array_Tag1[Int_Tag1...Int_Tag2] of typeof(Variant_Tag1) ;)

Gerade für Standartbausteine, wie einen dynamischen Ringbuffer, welcher mit Int, DINT, Real etc. arbeiten kann, wäre dies doch sehr spannend.
 
Zuletzt bearbeitet:
Zurück
Oben