From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Variablenstand abspeichern/ Auswertung wieder aufnehmen

Hallo Diadem Anwender

eine Diademauswertung braucht bis zur Codezeile x sehr lange. Wenn ich dort Code umschreibe und erneut testen möchte, brauche ich diese Zeit erneut. Gibt es eine Möglichkeit alle Variablen abzuspeichern z.B. in die Datei Variableninhalt um nach der Codeänderung nur die Datei Variableninhalt einzulesen und dann weiterzumachen. Dann hätte man sich die Verarbeitungszeit bis Codzeile x gespart.

 

Gruß

Heinz

0 Kudos
Message 1 of 4
(4,843 Views)

Hallo Heinz,

 

vielleicht würde es helfen die Variablen / Arrays im Datenportal bis Codezeile X mit folgenden Befehlen zu speichern:

ArrayToChn: http://zone.ni.com/reference/en-XX/help/370859J-01/comoff/arraytochannels/

ValueToChn: http://zone.ni.com/reference/en-XX/help/370859J-01/comoff/valuetochn/

 

Einzelwerte könnte man auch mit folgendem Befehl in einen bestehenden Kanal schreiben:

CHD: http://zone.ni.com/reference/de-XX/help/370858K-0113/varoff/chd/

 

Die so im Datenportal 'gespeicherten' Variablen, könntest du dann einfach wieder aus den Kanälen lesen.

Ich bin mir nicht sicher, ob diese Lösung für dein Vorhaben nicht zu umständlich ist.

 

 

Viele Grüße

0 Kudos
Message 2 of 4
(4,837 Views)

Hallo,

um ein array mit ArrayToChn zu sichern, muss ich ja die Variable angeben. Da das Programm sehr umfangreich ist und ich zu dem Zeitpunkt in dem ich das Speichern benötige, ich nicht alle Variablen kenne die belegt sind , suche ich nach einem Befehl der alle Variablen abspeichert (Diademvariablen/ und VBS Variablen).

Den Weg über Einzelvariablen ist zu aufwendig.

 

Viele Grüße

Heinz

0 Kudos
Message 3 of 4
(4,827 Views)

Den Gesamtzustand kann man nicht einfach abspeichern.

Was man einfach Speichern kann ist der Zustand des Portals mit DataFileSave.

 

benutzt man die Möglichkeiten über Scriptinclude das Scripts zu Modularisieren,

kann man bei geschicktem Aufbau die Komponenten mit dem jeweiligen Portalzustand testen.

 

VBS Klassen können auch sehr hilfreich sein. Zwar kennen sie kein Vererbungskonzept, sind aber sehr wohl als

virtuelle Interface anzusehen.

 

Option Explicit

dim impl

set impl = new A
call WhoAreYou(impl)

set impl = new B
call WhoAreYou(impl)



Sub WhoAreYou(ByRef impl)
  call impl.WhoAreYou()
End Sub

class A
  Sub WhoAreYou()
    MsgBox "I am A"
  End Sub
end class

class B
  Sub WhoAreYou()
    MsgBox "I am B"
  End Sub
end class

 So kann man Testklassen implementieren, die andere Simulieren und sie einzeln über ein Scriptinclude testen. Auch Ahnliche aspekte können über ein solches Construct mit VBS implementiert werden.

 

Gibt man seinen Klassen jeweils noch ein Serialize und Deserialize methode kann man ein ähnliches Verhalten wie das gewünschte bekommen. Alerdings ist das nichts was man einfach bekommt.

0 Kudos
Message 4 of 4
(4,816 Views)