Hallo alle, ih bin ganz anfänger bei VBS.jetzt habe ich ein Problem. Bei diesem Satz DIM summe3 As Double, gibt es immer den Fehler, Anweisungsende erwartet. Wie soll ich korrigieren? Vielen Dank!
Hallo youye,
in VBS sind die Variablen dynamisch. Das beudeutet, dass „AS Double“ kannst du dir sparen, bzw. musst du weglassen, da vbs damit nicht umgehen kann. Dann sollte es gehen.
Grüße
Ingo
Vielen Dank für Ihre Antwort! Jetzt benutze ich ein Programm heißt Diadem, aber noch mit VBs programmiert.
Hier ist eine Teil
If Pausendauer > 10 Then
i6=i5
'------------------------------------------- Berechnung für Delay
Pausendauerround = round(Pausendauer,0)
Pausendauer=Pausendauer*12 Delay = i5+ Pausendauer
For i6 = i5 to Delay
NO_VALUE= NoVALUE
neuer_wert = NO_VALUE
CHD (i6,Kanalname3)= neuer_wert
Next
Dann gibt es einen Fehler:„NOVALUE“ wurde ein unzulässiger Feldindex erkannt. oder bei Durchschnittwert Berechnung gibt es Fehler „überlauf“.
Is es richtig, dass datentypen nicht gut passen?
in Welcher Zeile erscheinen denn die Fehler? bitte schreib das bei deinem Script hinzu. Auch, was du erreichen willst damit und was wo berechnet wird.
Hallo,
ich möchte der Max,Min und Mittelwert von tCool_eng_out berechnen. Wenn es eine pause gibt, dann muss novalue den Kanalwerten gegeben werden.Das problem ist, wenn ich novalue zuweise,erscheint in der Zeile 138 „CHD(83577,“[12]/tCool_eng_out")=NOVALUE" wurde ein unzulässiger Feldindex erkannt. Hier ist der Script. Vielen Dank!
DIM i
DIM zaehler 'zur Mittelwertberechnung#
DIM zaehler1
DIM zaehler2
DIM zaehler3
DIM zaehler4
DIM zaehler5
DIM zaehler6
DIM kanallaenge
DIM kanalname
DIM index_wert
DIM maxwert, minwert, neuer_wert
DIM summe 'zur Mittelwertberechnung
DIM summe1
DIM summe2
DIM summe3
DIM mittel 'zur Mittelwertberechnung
DIM max_speed 'zur Begrenzung der Einbeziehung der Geschwindigkeiten
DIM max_tAmb
DIM max_tCool_eng_out
DIM min_tCool_eng_out
DIM average1
DIM average2
DIM average3
DIM i2 'Schleifenzähler
DIM Kanallaenge2 'Informationen wieviele Werte du im Kanal hast
DIM maxwert2 'Der Maximalwert
DIM minwert2 'Der Minmalwert
DIM Kanalname2 'Variable für deinen Kanalnamen
DIM index_wert2 'Variable für den Wert der in der Zelle steht
DIM neuer_wert2
'---------neu erstellte Variablen zur Differnezierung---------------
DIM kanalname3 'Variable für Kanalnamen
DIM kanallaenge3 'Information wie viele Werte im Kanal sind
DIM kanalname4 'Variable für Kanalnamen
DIM kanallaenge4 'Information wie viele Werte im Kanal sind
DIM i3 'Schleifenzähler
DIM i4 'Schleifenzähler
DIM i5
DIM max_ableitung 'Maximalre Ableitungswert der erreicht werden darf
DIM min_ableitung 'Minimaler Ableitungswert der erreicht werden darf
DIM neuer_wert3 'neuer Wert für Ableitungssignal
DIM neuer_wert4 'neuer Wert für Geschwindigkeit
DIM index_wert3 'Variable für den Wert der in der Zelle steht
DIM index_wert4 'Variable für den Wert der in der Zelle steht
'Variable für Pausendauer (in Sekunden)
DIM Pausenmin 'Variabel für Pausendauer
DIM Minutenwert1
DIM Minutenwert2
DIM index_wertmin
DIM index_wertmin2
DIM index_werthour
DIM index_werthour2
DIM index_wert5
DIM index_wert6
DIM diffmin
DIM diffhour
DIM Pausenhour
Dim Pausendauer
DIM Minges
DIM Hourges
DIM i6
DIM Delay
DIM Pausendauerround
DIM Beginn
DIM NO_VALUE
'------Einstellungen durch User-----------
’ kanalname4="[11]/differentiatedMinute"
kanalname2="[14]/Hour"
kanalname="[14]/Minute"
kanalname3="[12]/tCool_eng_out"
'------Script----------------
kanallaenge = ChnPropValGet(kanalname, „length“)
kanallaenge2 = ChnPropValGet(kanalname2, „length“)
kanallaenge3 = ChnPropValget(kanalname3, „length“)
'kanallaenge4 = ChnPropValget(kanalname4, „length“)
i2=2
i3=1
i4=2
i5=1
i6=1
Pausenmin = 0 'Initialisierung der Variablen
Pausenhour = 0
Pausendauer = 0
Hourges = 0
Minges = 0
For i = 1 to kanallaenge
index_wertmin = CHD(i,kanalname)
index_wertmin2 = CHD(i2,kanalname)
index_werthour = CHD(i3,kanalname2)
index_werthour2 = CHD(i4,kanalname2)
index_wert5 = CHD(i5,kanalname3)
index_wert6 = CHD(i6,kanalname3)
diffmin = index_wertmin2-index_wertmin
diffhour = index_werthour2-index_werthour
if diffmin > 1 Then 'if-Schleifen zur Detektierung von Pausen
if diffhour > 0.01 Then
Pausenhour = Pausenhour + diffhour
End if
Pausenmin = Pausenmin + diffmin
End if
if diffhour > 0.01 Then
i2 = i2 + 5
index_wertmin2 = CHD(i2,kanalname)
if index_wertmin2 0 Then
Pausenhour = Pausenhour + diffhour
End if
i2 = i2 - 5
index_wertmin2 = CHD(i2,kanalname)
End if
Pausenhour = Pausenhour * 60
Pausendauer = Pausenmin + Pausenhour
If Pausendauer > 10 Then
i6=i5
'------------------------------------------- Berechnung für Delay
Pausendauerround = round(Pausendauer,0)
Pausendauer = Pausendauer*12 '10% von Pause * 120 (für minute, da zwei werte pro sekunde))
Delay = i5+ Pausendauer
For i6 = i5 to Delay
NO_VALUE= NoVALUE
neuer_wert = NO_VALUE
CHD (i6,Kanalname3)= neuer_wert
Next
End if
if diffmin min_tCool_eng_out Then
If index_wert
NOVALUE ist nirgends definiert und auch kein Wert zugewiesen.
Kann es sein, dass du mit NOVALUE den Wert löschen willst? Hierfür solltest du dann eher empty nutzen.
Danke! aber wie kann man empty nutzen? Gibt es bestiimte Funktionen?
NOVALUE ist nirgends definiert und auch kein Wert zugewiesen.
Kann es sein, dass du mit NOVALUE den Wert löschen willst?
Hierfür solltest du dann eher empty nutzen.
Einfach anstelle von NOVALUE
x=Empty
Hallo,
ich habe gerade Empty versucht, leider funktioniert auch nicht. Immer der fehler „CHD(83577,“[12]/tCool_eng_out")=NOVALUE" wurde ein unzulässiger Feldindex erkannt. Aber ich danke Ihnen noch.
Einfach anstelle von NOVALUE
x=Empty
Hallo youye
Im vbs musst du die Datentyp Deklaration weglassen. Also nur DIM summe3 verwenden.
Gruss jorge
Hallo alle, ih bin ganz anfänger bei VBS.jetzt habe ich ein
Problem. Bei diesem Satz DIM summe3 As Double, gibt es immer
den Fehler, Anweisungsende erwartet. Wie soll ich korrigieren?
Vielen Dank!