# AGLink - Speichern der Symbolic in lesbarem Format



## Joline (17 September 2019)

Hi,

ich probiere gerade die großartige AGLink Bibliothek und deren Kommunikationsmöglichkeiten mit optimierten Bausteinen in der S7-1500 aus. Man kann die Symbolik-Informationen in eine binär codierte Datei mittels Symbolic_SaveAGLinkSymbolsToFile speichern. Wie kann man die Symbolik in einem lesbaren Format speichern, um später einfacher die richtige Syntax für die einzelnen Tags zu haben?

Beispiel (Text-Datei):

```
PLC.Blocks.DB_Symbolic_Example_Datatypes.bool
PLC.Blocks.DB_Symbolic_Example_Datatypes.byte
PLC.Blocks.DB_Symbolic_Example_Datatypes.char
PLC.Blocks.DB_Symbolic_Example_Datatypes.dint
PLC.Blocks.DB_Symbolic_Example_Datatypes.dtl
PLC.Blocks.DB_Symbolic_Example_Datatypes.dword
```

Muss man sich da umständlich selbst durchiterieren (Symbolic_GetChildCount, Symbolic_GetChild, ...)?


----------



## Larry Laffer (17 September 2019)

Was stellst du dir hier denn vor ?
Abspeichern kannst du es eigentlich nur so. Etwas anderes wäre wenn du es hinter verwenden und anzeigen möchtest. Ich habe das vor länerer Zeit mal gemacht in dem ich die Liste in einen TreeView (.Net) geladen habe und hier dann für jede neue Gruppe (Untergruppe) jeweils einen neuen Node angelegt habe unter dem das dann weiter geht - also im Grunde wie die Verzeichnisanzeige bei Windows.

Gruß
Larry


----------



## Joline (17 September 2019)

Ich hätte gern eine Datei, in der alle symbolischen Variablen aufgelistet sind (wie auszugsweise in dem Beispiel angegeben). Aus dieser Datei lassen sich dann die Variablen schon in der richtigen Syntax (z.B. PLC.Blocks.DB_Symbolic_Example_Datatypes.bool) weiterverwenden. Die Funktion Symbolic_SaveAGLinkSymbolsToFile speichert das in einem Binärformat, was mir an dieser Stelle aber nicht viel nützt. Ich muss jede Variable einzeln aus dem TIA-Projekt raussuchen. Ich müsste jetzt Code schreiben, der durch alle Childs iteriert etc. und dort alle Variablen raussucht und entsprechend der Gruppen/Ordner zusammensetzt. Aber ehrlich gesagt wollte ich das Rad nicht noch mal neu erfinden. Ich hoffe, dass es so eine Funktionalität schon gibt. Vorzugsweise so was wie Symbolic_SaveAGLinkSymbolsToFile, bei dem man angeben kann, die Variablen als (Text-)Liste auszugeben.


----------



## Rainer Hönle (18 September 2019)

Hallo Joline
meinst Du so etwas wie AGL_Symbolic_CreateAccessByPath? Da kannst Du dann den Text (= qualifizierten Variablenname) angeben und erhälst den Zugriffshandle. Dazu muss natürlich das Projekt (Online oder Offline oder die AGL-Datei vorhanden und geöffnet sein).
Wenn ich das jetzt richtig verstehe, möchtest Du aber genau die umgekehrte Funktion, also aus einem Projekt eine Textliste erzeugen. Dazu würde ich einfach den Extrakt bilden, in einer AGL-Datei speichern, diese Öffnen und dann alle Symbolnamen ausgeben.
Welche Programmiersprache verwendest Du?


----------



## Joline (18 September 2019)

Hallo Rainer,

ja, genau. Ich hätte gern eine Liste mit qualifizierten Variablennamen, um diese dann mit Symbolic_CreateAccessByPath weiterverarbeiten zu können. Ich verwende in diesem Fall C#.

"Dazu würde ich einfach den Extrakt bilden" -> Das bedeutet doch, dass ich durch alle Childs iteriere, oder? Am Besten wäre eine Liste in Format "Variablenname;ValueType;SystemType". Aber der qualifizierten Variablenname wäre schon mal ein Anfang.


P.S. Symbolic_SaveAGLinkSymbolsToFile erzeugt ja schon den gewünschten Inhalt. Wäre es nicht prima, wenn in einer späteren Version optional der Inhalt als Text erzeugt wird?


----------



## Rainer Hönle (18 September 2019)

Ich gebe diesen Wunsch an den verantwortlichen Entwickler weiter. Wir überarbeiten gerade unser Beispielprogramm "TIA Demo", eventuell passt es ja dort gut rein.


----------

