WinCC WinCC TIA V17 .csv auslesen

Zuviel Werbung?
-> Hier kostenlos registrieren
also das skript funktioniert, bis auf eine außnahme: die SmartTags("Stoerungshilfe_ID") benutzt er einfach nicht.
Die SmartTags("Stoerungshilfe_ID") benutzt das Skript ganz sicher. Aber bei Dir wird es sehr wahrscheinlich keine HMI-Variable mit dem Name geben, weil ich mir den ausgedacht habe, weil Du uns nicht mitgeteilt hast wie Deine HMI-Variable heißt, wo Du in Deinem Bild die gesuchte ID eingibst.

Du musst ziemlich sicher die HMI-Variable "Stoerungshilfe_ID" anlegen als Int oder UInt (oder als String, falls Deine ID auch was anderes als Zahlen enthalten soll). Oder in dem Skript das "Stoerungshilfe_ID" durch den Name Deiner HMI-Variable ersetzen.

Harald
 
Vielen dank Harald,
natürlich habe ich ("Stoerungshilfe_ID") nicht aber das habe ich schon vorher angepasst und die Variable war als Int definiert, und habe es dann als Real getestet ging auch nicht, UInt habe ich nicht probiert und String geht.
Meine Vermutung: Smarttags müssen als String definiert werden
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Meine Vermutung: Smarttags müssen als String definiert werden
Das ist definitiv falsch. "SmartTags" ist einfach nur der Weg, wie man HMI-Variablen im Skript anspricht. Der Datentyp der HMI-Variablen richtet sich danach, wofür man sie verwenden will.

Harald
 
Ok dann weis ich nicht weiter,
tatsache ist Ich hatte eine Variable benutzt die angelegt war und diese den datentyp Int gegeben und es ging nicht und
es wurden auch immer nur zahlen in das E/A-feld eingegeben.
Trotzdem vielen lieben dank!!!!!
 
eine idee hab ich noch wenn er die Variable "field" als string anlegt und dann versucht ne Int in eine string reinzuladen, kann es sein das er das dann einfach nicht macht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Max,

welchen Wert hat denn die Variable "Stoerungshilfe_ID" zum Zeitpunkt der Verwendung?
(Und zwar GENAU, strenggenommen ist z.B. 2 nicht gleich "2", wobei dies bei einer nicht-strengtypisierten Sprache wie VBS hier nicht so wichtig ist, aber zu unschönen Effekten führen kann.).

Wenn du in VBS einen Variablenwert in einem bestimmten Format (hier: String) benötigst, dann kannst du auch casten:
Code:
If field(0) = CStr(SmartTags("Stoerungshilfe_ID")) Then
 
Wenn du in VBS einen Variablenwert in einem bestimmten Format (hier: String) benötigst, dann kannst du auch casten:
Code:
If field(0) = CStr(SmartTags("Stoerungshilfe_ID")) Then
Das CStr ist in der Tat eine Lösung des Problems.

Ich hatte vermutet, daß VBS für den Vergleich automatisch field(0) in Int konvertiert, bei Vergleich mit einer numerischen Konstante macht es das ja auch: If field(0) = 1 Then funktioniert, es entspricht If CInt(field(0)) = 1 Then
Das Konvertieren CInt() beinhaltet außerdem ein Trim() (entfernen eventueller Leerzeichen vor und nach der ID-Zahl im String).

Für das Skript hier gibt es nun 2 Varianten:
A) If CInt(field(0)) = SmartTags("Stoerungshilfe_ID") Then da darf "Stoerungshilfe_ID" nur Zahlen enthalten
B) If Trim(field(0)) = CStr(SmartTags("Stoerungshilfe_ID")) Then da darf "Stoerungshilfe_ID" auch z.B. "12A" enthalten

Harald
 
Zurück
Oben