Showing results 1 to 9 of 9

Thread: Tagname ändern via DynProperties

  1. #1
    Join Date
    03.06.2008
    Posts
    76

    Default Tagname ändern via DynProperties

    Aktuell nutze ich über VBA die Methode

    thisProject.Variables.Item("xxx").DynProperties("Tagname")

    um den Tagname von Variablen in der Zenon Runtime zu verändern.

    Kann Ich diese Methode verwenden, oder kann es in Nachfolgefunktionen sein, dass diese Möglichkeit nicht mehr funktioniert?

    Laut VBA Object Model ist der Tagname über

    Variable.Tagname

    in der Runtime nur read only


    Angewant mit Zenon 7.00

  2. #2
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Tagname ändern via DynProperties

    es ist nicht ratsam die kennung der variablen über das objektmodell zu verändern.... was genau soll implementiert werden?
    -> vielleicht geht da etwas in richtung dynamische grenzwert texte oder sprachtabelle....

    gruß,
    herbert


  3. #3
    Join Date
    03.06.2008
    Posts
    76

    Default AW: Tagname ändern via DynProperties

    Ziel ist es über ein Ini-File gewissse informationen in die Runtime zu bringen.
    Ohne eine Programmänderung durchführen zu müssen.

    Aktuell soll es möglich sein
    z.B. Schlüsselworte zu ändern die z.B. von Variablenkennungen gelesen werdn um
    Druckprotokolle (Kopfzeile) zu korrigiern.
    Ebenso den Rechnernamen dieser wird oft beim Kunden geändert da der Rechner in die Kundendomäne gelegt wird.
    Dadurch wird nachträglich der Rechnername geändert. Dies würde bei unseren Anwendungen zu einer Programmänderung führen, da wird den Rechnernamen mit Variablenkennungen von Variablen zu vergleichen um zu ermitteln ob es sich bei dem jeweiligen Panel um maschinennahes Panel handelt dann müssen die am Panel befindlichen Hardwaretasten auf die Maschine wirken oder um ein maschinenfremdes Panel handelt an dem die Hardwaretasten nicht wirksam sind.

    Ich hoffe diese Erklärung ist verständlich.

  4. #4
    Join Date
    03.06.2008
    Posts
    76

    Default AW: Tagname ändern via DynProperties

    Laut dem VBA Objectkatalog kann der Archivfüllwert modifiziert werden.

    Variable.ModifyAlternateValue

    ModifyAlternateValue(newValue As Variant)


    über meine Routine

    thisProject.Variables.Item(strEintrag(iEintraege)) .ModifyAlternateValue = CVar("yxz")


    bekomme ich aber in der Runtime

    Compile error:
    Argument not optional.

    Was mache ich hier falsch.

    Ich möchte anstatt des "Tagname" nun den Archivfüllwert verändern.
    Und dies wahlweise für Stringvariablwen und Numerische Variablen.
    Wie kann ich das per VBA lösen?

  5. #5
    Join Date
    03.06.2008
    Posts
    76

    Default AW: Tagname ändern via DynProperties

    Das beschreiben funktioniert nun

    thisProject.Variables.Item(strEintrag(iEintraege)) .ModifyAlternateValue (CVar(strValue))


    nun aber schon meine nächste Frage.
    Über welchen Variablenknoten bekomme diesen modifizierten Wert wieder zurück ?

    .AlternativeArchiveValue
    und
    .Alternate Value

    bringen keine Werte.

  6. #6
    Join Date
    03.06.2008
    Posts
    76

    Default AW: Tagname ändern via DynProperties

    Eine Weitere Möglichkeit die ich aktuell verwende ist

    Variable.UserValue

    Remarks

    This property can get a user defined value and is not used for the Runtime. In VBA a variant can be linked with the variable, that is needed at a later moment. This variant could e.g. be the Id for a record in a SQL database, that contains further information on the variable.

    diese wird laut Hilfe durch die Runtime nicht verwendet.

    Kann ich diese nutzen um Informationen aus einem Ini-File in die Runtime zu bringen?

  7. #7
    martins Gast

    Default Re: Tagname ändern via DynProperties

    hi,

    besteht die Möglichkeit, dieses ini-File zu den Projektdateien hinzuzufügen und dann während dem Runtimestart zu parsen?

    Für den Rechnernamen gäbe es beispielsweise eine Systemtreibervariable, die genutzt werden kann.

    Eine Möglichkeit wäre vielleicht auch, Variablen am Intern-Treiber anzulegen und den Initialwert zu verwenden, um danach in der Runtime einfach den Wert der Variable anzuzeigen/zu lesen.

    Ich muss ehrlich sein, ich bin mir nicht 100% schlüssig, wie das Endergebnis aussehen soll und was mit dem ini-File genau passiert. Vielleicht kannst du mir das noch einmal erklären.

    lg
    Martin

  8. #8
    Join Date
    03.06.2008
    Posts
    76

    Default AW: Tagname ändern via DynProperties

    Hallo
    Danke für die Info.
    Grundsätzlich stellt sich die Frage ob eine Manipulation per VBA von z.B.

    .UserValue
    .Value
    .Unit
    .Tagname
    .Recourceslabel

    Nach dem Runtime Neustart erhalten bleibt.
    Ebenso ob sich die Veränderung auch auf alle angeschlossene Clients auswirkt.
    Nach meinen Test´s verliert die jeweilige Variable nach RT Neustart die manipulierte Eigenschaften.
    Es sei den es gibt die Möglichkeit die manipulierte Eigenschaft der Variable per VBA in der Runtime zu Speichern .

    '---Beispiel aus der Hilfe allerdings ist diese Methode nicht in RT verfügbar
    'Changes on properties
    zVariable.DynProperties("Unit") = "Volt"
    zVariable.DynProperties("Name") = "Var_1"
    'Now changes should be written into the database
    zVariables.DoAutoSave (True)
    '----Ende Beispiel


    Ebenso ist aufgefallen, dass die manipulierte Eigenschaft am Client nicht greifbar ist.
    Es müsste also an allen angeschlossenen Clients ebenso die Manipulation ausgeführt werden.

    Sollte es nicht möglich sein eine dauerhafte Veränderung durchführen zu können muss ich den Weg über interne Remanente Variablen gehen deren Wert ich manipuliere und als alternativ Informationsquelle lesen und auswerten kann.

  9. #9
    Join Date
    30.05.2007
    Location
    Salzburg
    Posts
    879

    Default Re: Tagname ändern via DynProperties

    Sollte es nicht möglich sein eine dauerhafte Veränderung durchführen zu können muss ich den Weg über interne Remanente Variablen gehen deren Wert ich manipuliere und als alternativ Informationsquelle lesen und auswerten kann.
    -> der Weg über remanenten internen Variablen ist hier mit Sicherheit der beste Weg
    -> diese werden ja beim Neukompelieren der RT-Dateien ja nicht überschrieben
    -> die Werte der internen Variablen werden in der Datei INTERNVAR.BIN abgespeichert (bei Beenden der Runtime)
    -> das Abspeichern kann auch manuell angetriggert werden (über die Funktion "Remanentdaten speichern")

    Gruß,
    Herbert


Similar Threads

  1. Can I write a DynProperties in Runtime?
    By fransiska in forum VBA
    Replies: 4
    Last Post: 29th August 2013, 04:51
  2. Import Tagname from .csv file
    By jaroslav.kral in forum VBA
    Replies: 2
    Last Post: 1st July 2011, 13:18
  3. How to use Variable tagname in link text element?
    By softart2 in forum zenon Supervisor
    Replies: 2
    Last Post: 17th June 2010, 08:11
  4. Replies: 1
    Last Post: 2nd December 2008, 11:07
  5. Replies: 14
    Last Post: 1st December 2008, 09:46

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •