Hallo,
Ich habe ein Problem beim Auslesen des Messgerats. Ich bin mir nicht ganz sicher, ob es an Labview liegt oder an etwas anderem. Sende ich den String("MA0r") an das Geraet erhalte ich immer 0 Bits zurueck. Orientiert habe ich mich dabei einfach am Beispiel aus der Anleitung (Seite 8). Oder muss man das ganze als Hex-Code senden?
Hat jemand eine Idee, wo der Fehler liegen koennte?
Mit freundlichen Gruessen
Gesetzt
Hallo Gesetzt,
Zitat:Oder muss man das ganze als Hex-Code senden?
Man sollte die Hexwerte senden, nicht etwa ASCII-Zeichen…
So in etwa:
[
attachment=55089]
Beachte:
- den Darstellungsmodus der Stringkonstanten.
- die Konfiguration des TermChars
- das Entfernen des BytesAtPort-Aufrufs und der Case-Struktur…
Außerdem: Lösche
NIE das Label eines Bedienelements!
Jein:
In HEX-Code musst du senden: 0x4D 0x41 0x00 0x72 0x0D
Fehler bei dir: ASCII-Zeichen 0 ist in HEX-Code 0x30
Außerdem: Definiere CR (0x0D) als Termination-Char bei VISA Configure Serial Port. Aktuell verwendest du dort LF (0x0A). Dann kannst du nämlich auf das "Bytes at Port" und die Wartezeit verzichten, VISA liest dann automatisch bis zum definierten Ende-Zeichen.
[
attachment=55090]
Gruß, Jens
EDIT & P.S.: 2 Stühle, 1 Meinung
Hallo,
Vielen dank euch beiden schonmal. Ich bekomme jetzt etwas zurueck
Mit freundlichen Gruessen
Gesetzt
Hallo,
noch eine Nachfrage. Die ganze Umrechnung in den Druckwert funktioniert, das einzige hoffentlich kleine Problem ist, ich bekomme den jeweiligen String zwar im Hexa-Code angezeigt, aber fuer die Weiterverarbeitung muesste er auch so umgewandelt sein. Ich hoffe es ist verstaendlich was ich meine. Ausgabe WIKA zeigt mir quasi alles richtig an, weil ich dort auf Hexadezimal umgestellt habe. Gibt es dazu ein einfaches Aequivalent fuer den String im gesamten?
Mit freundlichen Gruessen
Gesetzt
Hallo Gesetzt,
gib doch mal ein Beispiel für einen regulären Messwert an, d.h. welche Antwort bekommst du vom WIKA?
Und bitte auch, welche Bytes in welchen Messwert umgewandelt werden sollen…
Ganz allgemein: man holt sich die Bytes aus dem String und verrechnet sie, bei einem U16 z.B. Byte1*256+Byte2.
Es gibt aber auch andere Methoden (TypeCast, UnflattenFromString, JoinBytes, …)!
Hallo,
Ein Beispiel für einen regulären Messwert waere: 5000 7758 E10D. Den bekomme ich dadurch, dass ich Wika Ausgabe auf ein hexadezimales Display umgestellt habe. Die Umwandlung des Befehls danach funktioniert soweit, wenn ich halt manuell den umgewandelten Befehl überreiche. Mein Problem ist also, dass ich eine Umwandlung des Strings von VISA Read benoetige so wie Labview das automatisch bei WIKA Ausgabe macht.
Mit freundlichen Gruessen
Gesetzt
Hallo Gesetzt,
bei einem Beispiel sollte man auch immer das erwartete Ergebnis angeben…
Wenn ich Seite 4 im Manual richtig deute, sollte es so funktionieren:
[
attachment=55118]
Beachte den Darstellungsmodus der String- & Zahlen-Konstanten!
Und nein: Strings im Hex-Display-Modus kann man nicht mittels StringSubset mit der Länge=2 zerlegen…
Hallo,
Danke fuer die Hilfe. Das Ergebnis sind 0,077 bar mit meiner Umwandlung, was mit dem Wert ueber das normale WIKA Programm übereinstimmt. Leider verstehe ich deinen Loesungsvorschlag nicht ganz. Also ich brauche ja eigentlich nur eine Umwandlung der Ausgabe in einen Hexastring. Ich habe mich gerade an Format into String versucht, bin aber damit nicht weiter gekommen. Kann man es damit machen? Ich schaue mir jetzt mal die für mich unbekannten Symbole in deinem Programm an
.
Ich glaube ich habe mich ein wenig umstaendlich ausgedrueckt. Mein Visa Read gibt mir nur Hieroglyphen aus, wie man im Bild sieht. Mein Indikator gibt mir dann formatiert das richtige aus. Genau die Formatierung die der Indikator vollzieht die brauechte ich quasi. Ich hoffe ich habe es jetzt deutlicher ausgedrueckt.
Mit freundlichen Gruessen
Gesetzt
Hallo Gesetzt,
Zitat:Genau die Formatierung die der Indikator vollzieht die brauechte ich quasi.
Nein, genau die brauchst du NICHT!
Du brauchst die Zahlenwerte - wozu also erst noch in lesbare ASCII-Zeichen umwandeln?
Zitat:Ich schaue mir jetzt mal die für mich unbekannten Symbole in deinem Programm an
Welche sollen das sein? Das sind doch elementare numerische, boolsche und Array-Funktionen…