TIA FUP - zusammengesetzter Variablennamen

Zuviel Werbung?
-> Hier kostenlos registrieren
Der Vollständigkeit halber sei erwähnt, dass solche Vorhaben durchaus umsetzbar sind.
Man benötigt dafür allerdings eine 1518 MFP, die Programme in Hochsprachen wie C, C++ oder C# ausführen kann.
Sei doch mal so nett und zeig das an Hand eines kurzen Code-Beispiels.
Bisher kannte ich das eigentlich nur so, dass die C++ - Runtime in der 1518MFP als eigenständiger Task / Prozess unabhängig vom PLC-Programm läuft. Die Kommunikation PLC <> C++Runtime erfolgt, meines Wissens, doch über ein internes virtuelles Netzwerk.
 
Variablennamen zusammenbasteln ist noch nie möglich gewesen.
Auch wenn die eigentliche Frage bereits gelöst wurde, möchte ich trotzdem, der Vollständigkeit halber, auf die "ResolveSymbol" Bausteine hinweisen.
Damit lässt sich mittels des symbolischen Namens der Variable in einem WSTRING auf diese zugreifen.
Bei dem gegebenen Problem von @Grille wäe das kompletter Overkill und das performancetechnische Grauen, machbar wäre es aber.
Bisher habe ich aber noch keine sinnvolle Verwendungsmöglichkeit dafür gefunden ¯\_(ツ)_/¯
Persönlich habe ich solche symbolischen Zusamensetzereien auch nur in HMI-Scripts benötigt.

Symbolischer Zugriff zur Laufzeit (S7-1500)
Anwendungsbereich
Die Funktion "Symbolischer Zugriff zur Laufzeit" ermöglicht externen Applikationen zur Laufzeit den Zugriff auf Variablen im PLC-Programm. Externe Applikationen können zum Beispiel HMI-Anwendungen, OPC UA-Funktionen oder andere Kommunikationsfunktionen sein. Die Variablen können gelesen oder geschrieben werden.
Der Lese- oder Schreibzugriff wird nicht statisch zum Zeitpunkt der Programmerstellung projektiert. Der Zugriff erfolgt vielmehr dynamisch zur Laufzeit. Der Anwender gibt manuell oder programmgesteuert zur Laufzeit die symbolischen Variablennamen ein, auf die er zugreifen möchte.
Die Funktion "Symbolischer Zugriff zur Laufzeit" kann sowohl optimierte als auch nicht-optimierte Daten verarbeiten. Sie ist somit flexibler und leistungsfähiger als ein ANY-Pointer, der nur auf nicht-optimierte Daten zugreifen kann.
Die Funktion ermöglicht z. B. das Tracing von Variablen durch externe Geräte oder Applikationen.
Randbedingungen
Für den symbolischen Zugriff zur Laufzeit gelten folgende Randbedingungen:
  • Der symbolische Zugriff steht für S7-1500 ab Firmware Stand V3.0 zur Verfügung.
  • Die Variablen müssen das Attribut "Erreichbar aus HMI / OPC UA / Web API" oder "Schreibbar aus HMI / OPC UA / Web API" tragen.
 
(...) auf die "ResolveSymbol" Bausteine hinweisen.
Damit lässt sich mittels des symbolischen Namens der Variable in einem WSTRING auf diese zugreifen.
Bei dem gegebenen Problem von @Grille wäe das kompletter Overkill und das performancetechnische Grauen, machbar wäre es aber.
(...)
Anwendungsbereich
Die Funktion "Symbolischer Zugriff zur Laufzeit" ermöglicht externen Applikationen zur Laufzeit den Zugriff auf Variablen im PLC-Programm.
also nicht machbar im PLC-Programm
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe die Funktion noch nicht genutzt ( und das bleibt vermutlich auch so ) aber Siemens schreibt, dass mit der Funktion z.B. über ein HMI eine Variable rein über den Variablennamen abholt werden kann. Das Panel muss dafür einen String bereitstellen. Was spricht dagegen, den String auf der CPU zusammenzustellen? Sollte meiner Meinung nach auch funktionieren ( aber ich lasse mich gerne eines besseren belehren ). Aber Achtung, das passiert teilweise asynchron.

1731319417063.png
 
Ich habe die Funktion noch nicht genutzt ( und das bleibt vermutlich auch so ) aber Siemens schreibt, dass mit der Funktion z.B. über ein HMI eine Variable rein über den Variablennamen abholt werden kann. Das Panel muss dafür einen String bereitstellen. Was spricht dagegen, den String auf der CPU zusammenzustellen? Sollte meiner Meinung nach auch funktionieren ( aber ich lasse mich gerne eines besseren belehren ). Aber Achtung, das passiert teilweise asynchron.

Anhang anzeigen 82929
In den Folien zur TIA V19 wirbt Siemens sogar damit, den ANY-Pointer mit der Funktion abzulösen/migrieren und so "vollsymbolisch" zu sein.
Ich sehe aktuell keinen Nutzen für mich darin.

1731319754158.png
 
Moin,

sehr interessant. Ich arbeite mit TIA V19. Unter "Einfache Anweisungen > Verschieben > Symbolisch verschieben > ..." finde ich zwar die Bausteine., allerdings kann ich sie nicht in meiner Programmierung einfügen. Dabei wollte ich das sehr gerne mal testen.

Hat Jemand diese Bausteine schon einmal programmiert?
 
also nicht machbar im PLC-Programm
Korrektur: Das ist dann also neuerdings doch machbar, wenn auch extrem umständlich und uneffizient. Das hatte ich noch nicht gewusst, weil ich keinen Bedarf und kein Interesse an solchen Programmierweisen in einer PLC habe. Es gibt ja genügend andere effiziente Möglichkeiten für indirekte Zugriffe.

Da ist die Einführung in der TIA-Hilfe für mich etwas irreführend
Anwendungsbereich
Die Funktion "Symbolischer Zugriff zur Laufzeit" ermöglicht externen Applikationen zur Laufzeit den Zugriff auf Variablen im PLC-Programm.
oder ist das eher als Warnung gemeint? Immerhin muss man die betreffenden PLC-Variablen für den Zugriff von außerhalb der PLC freischalten, und falls auf Safety-relevantes zugegriffen wird, geht die PLC in STOP. DBs nach online (über)laden im RUN der PLC wird dann auch ein neues Abenteuer.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
....und falls auf Safety-relevantes zugegriffen wird, geht die PLC in STOP.
Die Variablen müssen jeweils den Haken bei "Schreibbar aus HMI / OPC UA / Web API" gesetzt haben.
Denke das wird/sollte bei den relevanten DBs sowieso nicht der Fall sein.
oder ist das eher als Warnung gemeint?
Ich könnte mir Vorstellen damit beispielsweise Funktionalitäten einer Beobachtungstabelle zur Verfügung stellen zu können.
Beispielsweise könnte man 10 Stings definieren, über die eine externe Apllikation symbolische Variablennamen schreiben kann & daraufhin 10 Zahlenwerte zur Verfügung stellen, die die Werte der symbolischen Variablennamen enthalten.
Aber ob man damit in Zeiten von OPC UA tatsächlich sinnvoll Aufwand sparen kann....
 
Oder z.b. eine 1511 ab V3.0.....
Die V3er können Hochsprachen? o_O
Wenn ja: wie?
Mein letzter Stand war, dass du eine mit ODK-Unterstützung brauchst. Zu den V3 finde ich nichts entsprechendes...

SIMATIC ODK 1500S
Das SIMATIC ODK 1500S ermöglicht die Entwicklung von Funktionsbibliotheken mit den Hochsprachen C/C++ für ODK-fähige SIMATIC S7-1500 PLCs. Diese Funktionsbibliotheken können direkt aus dem Anwenderprogramm geladen und ausgeführt werden. ODK-fähige S7-1500 PLC sind:
  • S7-1500 Software Controller (CPU 1507S (F))
  • ET 200SP Open Controller (CPU 1515SP PC (F))
  • S7-1500 Advanced Controller (CPU 1518(F)-4 PN/DP ODK)
 
Zurück
Oben