In Verbindung mit dem attribute symbol können Sie mit dem pragma {attribute namespace} den Namespace von Projektvariablen neu definieren. Das Pragma kann auf komplette POUs, wie z. B. GVLs oder Programme, aber keine besonderen Variablen angewendet werden. Die betroffenen Variablen werden mit einer neuen Namespace-Definition in eine Symboldatei exportiert und sind nach einem Download dieser Datei auf der Steuerung verfügbar.
Das ermöglicht den Zugriff auf Variablen aus POUs oder Visualisierungen, die ursprünglich unterschiedliche Namespaces haben. So können Sie beispielsweise eine vorherige EcoStruxure Machine Expert Visualisierung auch in einer späteren EcoStruxure Machine Expert Umgebung ausführen.
Weitere Informationen hierzu finden Sie in der Beschreibung der Symbolkonfiguration. Bei einem Download oder dem Online Change des Projekts wird eine neue Symboldatei erstellt. Diese Datei wird zusammen mit der Anwendung auf die SPS heruntergeladen.
{attribute 'namespace' := '<Namespace>'}
Beispiel einer Namespace-Ersetzung für die Variablen eines Programms
{attribute 'namespace':='prog'}
PROGRAM PLC_PRG
VAR
{attribute 'symbol' := 'readwrite'}
iVar:INT;
bVar:BOOL;
END_VAR
Wenn der Zugriff auf iVar zuvor beispielsweise über App1.PLC_PRG.ivar erfolgt ist, steht er anschließend über prog.ivar zur Verfügung.
Ursprünglicher Namespace |
Variable |
Namespace-Ersetzung |
Zugriff auf die Variable innerhalb des aktuellen Projekts |
---|---|---|---|
App1.Lib2.GVL2 |
Var07 |
{attribute 'namespace':=''} |
.Var07 |
App1.GVL2 |
Var02 |
{attribute 'namespace':='Ext''} |
Ext.Var02 |
App1.GVL2.FB1 |
Var02 |
{attribute 'namespace':='App1.GVL2''} |
App1.GVL2.Var02 |
Die in der Tabelle aufgeführten Ersetzungen bewirken die nachstehenden Einträge in der Symboldatei:
<NodeList>
<Node name="">
<Node name="Var07" type="T_INT" access="ReadWrite">
</Node>
</NodeList>
<NodeList>
<Node name="Ext">
<Node name="Var02 " type="T_INT" access="ReadWrite"></Node>
</Node>
</NodeList>
<NodeList>
<Node name="App1">
<Node name="GVL2">
<Node name="Var02 " type="T_INT" access="ReadWrite"></Node>
</Node>
</Node>
</NodeList>