TIA Tia v13 indirekt auf optimierten Datenbaustein zugreifen

Flo

Level-1
Beiträge
133
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, ich bin gerade dabei mich mit tia Portal v13 anzufreunden.
mit step 7 vor tia haben wir viel über indirekte dB Aufrufe gemacht.
Bei tia werden ja, wenn ich das recht verstehe, die datenbausteine symbolische gespeichert.
gibt es eine Möglichkeit mittels einer Stringvariable, sozusagen indirekt auf einen datenbaustein zu zugreifen?
so in etwa:
dbname: string[5]; //deklaration

dbname:='Eng_2'; //Wert in Variable zuweisen
DB[string_to_DB_name(dbname)].ActCurrent; //Zugriff auf ActCurrent in datenbaustein "Eng_2"


Hab schon überall gesucht aber nichts passendes gefunden...

schönen Abend, flo
 
Bei s7 1200/1500 gibt es diese Optimierten Bausteinzugriffe über die Symbolik.
Wenn du auf deinen DB gehst kannst du unter Eigenschaften --> Attribute

Den haken bei "Optimierter Bausteinzugriff" entfernen, dann kannst du wieder Absolut auf diese Variablen zugreifen.

MFG Piit


Gesendet von iPhone mit Tapatalk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Piit278, danke der Antwort.
Diese Option habe ich gesehen, finde sie aber ein wenig unpraktisch, da ich hier 1. den Weg über den Absoluten "Operantenwert" habe und somit 2 Werte (Absolute DB-Nummer + Symbolischer name) handeln müsste.
2. sind laut Beschreibung die optimierten Bausteinzugriffe sehr performence-hilfreich (was auch immer das heisst), das würde ich mir nur ungern verbauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Flo

Genau, das, was dir vorschwebt, kann TIA nicht. Bin mal gespannt, wann und wie Siemens dazu etwas einfällt.
Wenn du in TIA symbolisch auf unterschiedliche optimierte Datenbausteine zugreifen willst, geht das m.E. nur über eine Case-Anweisung, die jeweils den Aufruf des gewünschten Bausteins enthält. Innerhalb des Bausteins bleibt nur eine Aufteilung als Array. Immerhin kann man auch Array of Struct nutzen, aber so toll symbolisch, wie und das immer suggeriert wurde ist es dann zum Schluß auch nicht immer, durch die Array muß man sich als Programmierer dann auch durchwursteln. Man kann natürlich dieFrage aufwerfen, ob DB, die z.Bsp. nur Rezeptdaten enthalten unbedingt "optimiert" sein müssen, wenn man die Daten nciht andauernd und "hochperformant" benötigt. Siemens hat da einen schönen Bockist auf uns Programmierer losgelassen, alle sind eher verunsichert. Wenn ich indirekte Adressierung benötige, nutze ich nicht optimierte Bausteine. ich kann bisher nciht erkennen, das die SPS damit deutlich langsamer sind. Oder sollte ich vielleicht besser sagen, ich kann nicht erkennen, dass eine SPS mit optimierten Bausteinen signifikant schneller ist, wenn man die nicht optimierten zumindest maßvoll einsetzt.
 
Zurück
Oben