DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Probleme mit ChD

Hallo ich habe folgendes Problem.

Ich möchte in einem Kanal Werte Vergleichen und ihnen dann einen Wert zuweisen. Hier ein Auszug aus dem VBS Script.

Das Problem ist das ich immer nur den letzen Wert aus dem Kanal qr lese und nicht von 1 bis Kanalende

FOR i = 1 TO CL("qr")

If Chd(i,"qr")>= 70 Then     
Call FormulaCalc("Ch(fm)         := 'Test'+3")

elseif Chd(i,"qr")<=40 then
Call FormulaCalc("Ch(fm)         := 'Test'+-3")

else
Call FormulaCalc("Ch(fm)         := 'Test'+0.5*'qr'-3")


END if  
next
0 Kudos
Message 1 of 3
(4,088 Views)
Hallo Messer!
 
Woran erkennst du das nur den letzen Wert bekommst? Der Code sieht eigentlich OK aus könnte nur ein wenig optimiert werden (s.u.). Du kannst ja mal mit dem Befehl LogFileWrite die Werte in LogFile schreiben und kontrollieren.
 
Optimierungsmöglichkeiten:
  • chdx verwenden
  • Kanalnummer von "qr" vorher ermitteln und in einer Variablen speichern
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 2 of 3
(4,083 Views)
Der Befehl FormulaCalc("Ch(fm)         := 'Test'+3") überschreibt den gesamten Kanal fm. Zeile für Zeile wird der Kanal 'Test' um 3 inkrementiert und in fm abgelegt. Ihre Schleife wird für jede Zeile des Kanal qr wiederholt und für jede Zeile wird der fm Kanal wieder neu komplett überschrieben.
Im letzte Schritt eben so, wie es der Vergleich der letzten Zeile in fm ergibt.

Ich vermute, sie wünschen sich eigentlich eine andere Funktionalität: nämlich Zeile für Zeile durch qr durchgehen und dementsprechend eine Zeile in fm editieren. Wenn meine Vermutung richtig ist, sollten Sie statt FormulaCalc die Syntax chd(i,"fm") = chd(i,"Test")+3 nutzen.
Schneller als chd() funktioniert noch chdx(), bei Verwendung dieses Befehls muss aber nach Ende der Schleife die Kanallänge von fm manuell gesetzt werden. Sollte der Zielkanal noch nicht existieren, können Sie ihn vor der Schleife mit dem ChnAlloc() Befehl erzeugen.

Ingo Schumacher
Systems Engineering Manager CEERNational Instruments Germany
0 Kudos
Message 3 of 3
(4,047 Views)