DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

ChnAdd

hallo kollegen,
 
ich möchte zwei kanäle mit einander addieren.
allerdings wenn ein kanal aus novalue bestehet,
wird die summe auch nur novalue haben.
 
was kann ich in diesem fall tun?
 
ich muss die kanäle summieren trotz,
dass ein kanal ab und zu mit novalue beschrieben wird.
 
danke und gruß,
a6a
0 Kudos
Message 1 of 4
(4,041 Views)

Hallo a6a,

der Befehl ChnNovHandle erlaubt es auch NoValues durch einen Wert, z.B. 0 zu ersetzen. Dies kann man dann wie folgt nutzen:

Call ChnNovHandle("Kanal1", "Kanal2", "SetValue", "XY") ' NoValues durch 0 ersetzen
Dim ResultChn : ResultChn = ChnAdd(GlobUsedChn - 1, GlobUsedChn)
Call ChnDelete(GlobUsedChn - 2 & "-" & GlobUsedChn - 1) ' Von ChnNovHandle angelegte Kanäle wieder löschen

Christian

0 Kudos
Message 2 of 4
(4,029 Views)
hi chistian,
danke für deine antwort.
 
allerdings weiss ich nicht, wann einer von den kanälen mit novalue beschrieben wird.
abhängig von den bedingungen wird ein kanal mit novalue oder mit werten beschrieben.
 
d.h. dass ich zuerst alle meine kanäle auf novalue abfragen soll
und dann die novalue ausschneiden?
 
gibt es keine fkt, die bei add novalue einfach ignoriert?
 
vg,
a6a
0 Kudos
Message 3 of 4
(4,024 Views)
Hallo a6a,

NOVALUES kennzeichnen ungültige Werte. Abhängig von der Aufgabenstellung kann es aber durchaus richtig sein, NOVALUES durch einen anderen Werte zu ersetzen. Die vorgehensweise ist so wie Christian es beschrieben hat. Diese Funktion kann die Ergebnisse auch in die Ursprungskanäle speichern (implaced). D. h. das NOVALUES durch andere Werte ersetzt werden und alle sonstigen Werte bleiben unverändert. Aus Gründen der Verarbeitungsgeschwindigkeit kann zusätzlich vor der Berechnung geprüft werden, ob eine NOVALUE-Verechnung notwendig ist. Das geht wie folgt:

if ChnPropValGet("KanalGruppe/Kanalname", "novaluekey") = "Yes" then ....

Ich hoffe diese Info hilft weiter.

Gruß
Walter
0 Kudos
Message 4 of 4
(4,019 Views)