Hallo,
Ich gebe einem controller einen Befehl als string per TCP/IP. Da ich sichergehen will, ob der controller verstanden hat, was er machen soll, habe ich eingestellt, dass er mir den Befehl als echo zurückgibt.
Jetzt möchte ich lediglich die beiden 2 strings miteinander vergleichen.
Warum funktioniert mein Beispiel nicht?
Danke,
P.S.:Ich verwende LV8.6
Wenn du deine beiden Strings noch postest könnte dir geholfen werden.
Doch, das sollte funktionieren, zumindest das auf dem Screenshot.. Wenn beide Strings exakt gleich sind, gibts true zurück.. Was genau funktioniert denn da nicht? Vielleicht sind die Strings nicht exakt gleich (z.B. irgendwelche whitespaces vorne/hinten)...?
Hallo,
das Problem war, dass egal welche strings ich eingegeben habe, es niemals zu einer Übereinstimmung kam.
Also egal ob beide strings "768" oder "AAB" oder sonstwie hießen.
Wenn man Konstanten anschließt statt string controls funktioniert die Sache wieder.
Ich habe also erstmal aus den controls constanten erzeugt. In diesen Konstanten konnte ich jetzt alle von mir gemachten Eingaben sehen (d.h. das string control löscht seine "Historie" nicht automatisch).
Somit wird jedesmal die gesamte Historie der beiden controls verglichen. Falls jemals verschiedene strings miteinander verglichen worden sind, liefert der Vergleich also niemals mehr TRUE.
Ich habe mich an das LabVIEW-Beispiel "TCP communicator active" erinnert. Dort wird beim Programmstart der Inhalt (besser der Wert "Value") des indicators "You typed" gelöscht.
[
attachment=23562]
Nachdem ich das nachgestellt habe, funktioniert auch mein Beispiel....
[
attachment=23563]

Also bei mir hat schon dein erstes Beispiel funktioniert....
aBc == abc ? => FALSE
aBc == aBc ? => TRUE
Also ich konnte Dein Problem nicht reproduzieren, aber schön, dass Du es gelöst hast!
Hallo
Ich glaube, es liegt an der Einstellung "Limit to single line". Wenn man für die String-Controls diese Option setzt, dann tritt der Fehler nicht mehr auf. Durch Eingabe "Enter" verschwindet der String aus der Anzeige, aber nicht aus dem Control!
Gruss BDB
Hallo Bernd,
also lag der Fehler darin, das du das String-Control nicht groß genug gemacht hast?
Wenn du die Return-Taste drückst, fügst du einen Zeilenvorschub in den String ein - was sich durch die von dir beschriebene Option verhindern lässt.
String-controls haben übrigens keine "Historie": sie merken sich nur (wie alle anderen Controls auch) alle Eingaben, die du machst!
Also mir ist völlig unklar warum mein LabVIEW gestern dieses Verhalten gezeigt hat...Ich hatte extra meinen Rechner einmal neu gestartet..ohne Erfolg.
Ich habe das gleiche Beispiel gerade nocheinmal "programmiert" (ohne die "Limit to single line"-Option zu nutzen und ebenfalls ohne Einsatz des Property Node...)
Diesmal arbeitet das Programm genauso wie man es erwartet...
..Problem gelöst. LabVIEW spinnt halt auch manchmal...

Hallo Gerd
Ich dachte eher, dass echtzeit die vorher eingegebenen Zeilen nicht gesehen hat.
Ich weiss schon, dass man das Control vergrössern kann.
Gruss, BDB