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: 

wie kann ich einen Wert aus einem Datum- Kanal auslesen

Hallo,

 

ich habe einen Kanal der mit Datum und Uhrzeit in folgender Form gefüllt ist:

 

z.B.:  11.03.2011 14:10:11.0000

 

Datentyp ist Float64.

 

Jetzt möchte ich an einer bestimmten Stelle den Wert auslesen und versuchsweiße erstmal mit msgbox ausgeben. Wenn ich den Befehl ChD verwende kommt irgendein langer Zahlenwert raus. Dass wundert mich auch nicht, da laut Hilfe der Befehl für Numerische Kanäle da ist. Doch mit welchem Befehl kann ich ihn auslesen?

 

Die nächste Frage: wie kann ich die Uhrzeit "wegschneiden"? Dass also nurnoch das Datum im Kanal steht.

 

Danke im Vorraus

0 Kudos
Message 1 of 8
(4,977 Views)

Hallo Doma,

 

mit einer halbwegs aktuellen Version gibt es zwei Möglichkeiten VBS formatiert (msgbox und Kanalobjekt) oder man formatiert die Ausgabe für den DIAdem-Befehl selbst (msgboxdisp und Kanalobjekt)

 

 

Dim oChn
set oChn = Data.GetChannel("Datum")
msgbox oChn(2)
msgboxdisp str(oChn(2), "#dd.mm.yyyyy hh:nn:ss")

 

Gruß

Walter

0 Kudos
Message 2 of 8
(4,975 Views)

Hi Doma,

 

I believe Walter meant oChn.Values(2) instead of oChn(2)

 

Brad Turpin

DIAdem Product Support Engineer

National Instruments

 

0 Kudos
Message 3 of 8
(4,972 Views)

Yes, you can use oChn.Values(2), but in case of a channel object it is not necessary to use Values. This is the Default and was implemented to improve the speed of accessing a single channel value.

 

Greetings

Walter

0 Kudos
Message 4 of 8
(4,970 Views)

Hey Walter,

 

Are you saying it's easier to type the shorter code oChn(2) than the more explicit oChn.Values(2), or are you saying that the shorter code actually runs faster than the more explicit code?  Has this syntax been available since DIAdem 11.0 when the Data object first appeared?

 

Brad Turpin

DIAdem Product Support Engineer

National Instruments

0 Kudos
Message 5 of 8
(4,968 Views)

Hey Brad,

 

Yes this works since the first DIAdem version with Data-API. Not using the default "Values" is faster than using it. But if you have just a few values like 10000 or 20000 you don't see any difference. I guess you are pointing also to a more readable script code, especially if you have to modify it later on. In that case I would say if the channels don't contain hugh numbers of values you can use oChn.values(x). And if you would like to speed it up just use oChn(x).

 

Greetings

Walter

0 Kudos
Message 6 of 8
(4,965 Views)

Hey,

 

thank you, it works !

 

to my 2nd question, the channel values are in the form "11.03.2011 14:10:11.0000", its "dd.mm.yyyy hh:mm:ss 0000" and i just want to have the first part, "dd.mm.yyyy", how can i cut the rest out of the channel?

 

thx

 

 

0 Kudos
Message 7 of 8
(4,956 Views)

Hallo Doma,

 

ein Datums- Zeitkanal enthält in DIAdem immer auch ein Uhrzeit. (Gezählt werden die Sekunden ab dem Jahre Null.) Für die Anzeige kannst du den Zeitanteil weg lassen.

 

Dim oChn
set oChn = Data.GetChannel("Datum")
msgbox oChn(2)
msgboxdisp str(oChn(2), "#dd.mm.yyyyy")

 

Diese Formatierung ("#dd.mm.yyyyy") kannst du auch an allen anderen Stellen, an denen diese Daten angezeigt werden sollen verwenden z.B. in einer VIEW-Kanaltabelle oder einer REPORT Tabelle etc.

 

Gruß

Walter

0 Kudos
Message 8 of 8
(4,953 Views)