ESC via RS232 senden - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA) +---- Thema: ESC via RS232 senden (/Thread-ESC-via-RS232-senden) Seiten: 1 2 |
ESC via RS232 senden - joekuli - 08.04.2006 11:04 Hallo Leute Für meine DA möchte ich einen Controller ansprechen. Um die Kommunikation zu testen, kann ich die Taste "ESC" drücken und es sollte ein > Zeichen zurückkomen. Mit dem Hyperterminal funktioniert es, doch mit lv bring ich es nicht zum laufen und wie muss ich das realisieren, damit ich die Taste nicht drücken muss, sondern beim Start dieser Test automatisch ausgeführt wird? Wenn das klappt, möchte ich dem Controller Befehle wie zum Beispiel MD10 oder WA 1000 etc senden um einen Motor zu steuern. Wie muss ich das senden? Kann mir jemand weiterhelfen? Danke im voraus. Gruss Joekuli ESC via RS232 senden - oppossom - 10.04.2006 10:20 Hi! Um ein ESC-Zeichen zu senden, musst du über die Schnittstelle (ich nehm an du verwendest die serielle) das Zeichen 27 (0x1b) senden. Das bekommst du zB indem du den Wert (27) in ein Byte-Array schreibst und anschließend mit der Funktion Byte-Array in String konvertierst. Diesen String sendest du an den Controller. Wenn du das Ganze nun als Konstanten anlegst, und zB in einer Schleife mit einem Button den Sendevorgang startest, sollte es eigentlich ohne Drücken der ESC-Taste funktionieren. Welchen Controller verwendest du denn? Hat der die Befehle zur Motorsteuerung integriert, oder legst du die selbst fest? Lg Stefan ESC via RS232 senden - joekuli - 10.04.2006 14:21 Vielen Dank Stefan Die Befehle für den Kontroller sind vom Hersteller gegeben (SMAC). Anhand der Ascii-Tabelle versuchte ich es mit dem Wert 27. Leider funktionierte das nicht und nun habe ich es so gelöst, dass ich den Wert mittels einem vi von der Tastatur ausgelesen habe. Zu meiner Überraschung kam der Wert 62 heraus und siehe da, mit dieser Eingabe funktioniert es, obwohl ich keine Ahnung habe warum???????? :shock: Trotzdem vielen Dank ESC via RS232 senden - oppossom - 10.04.2006 14:47 also 62 ist der dezimalwert für ">", schickst du dieses zeichen dem controller oder das escape-zeichen? vielleicht kannst du dein vi mal posten (wenn geht in version 7.0), dann kann ich es mir mal anschauen... ESC via RS232 senden - joekuli - 10.04.2006 14:56 Jetzt versteh ich die Welt nicht mehr????? Wenn ich dem Kontroller ein escape sende, sollte er ein ">" zurücksenden. Als ich den Wert 27 schickte erhielt ich nichts.... Dann habe ich ein vi entwickelt, welches mir den Wert der gedrückten Taste zurückgibt. Sobald ich die escape-Taste drücke kommt komischerweise der Wert 62 heraus?????? :? Ich dachte eigentlich, dass meine Kommunikation erfolgreich war, da ich jedoch das ">"-Zeichen sendete, kommt auch dasselbe Zeichen zurück. Denn wen ich ein E sende kommt auch ein E zurück. hmmmm ESC via RS232 senden - oppossom - 10.04.2006 15:04 hm... ich hab mal ein vi angehängt, dass ein ESC-Zeichen erstellt, angezeigt wird es einmal normal und als hex-String (da siehst du den Wert 1B). Versuch mal, das an den Controller zu schicken... Hast du auch schon andere Befehle ausprobiert? Weil ESC wird ja nur die Terminierung eines Befehls sein, nehme ich an... ESC via RS232 senden - joekuli - 10.04.2006 16:37 ich habe es mit deinem hex file versucht, aber leider hat es nicht geklappt. Im Bild rs232 siehst Du mein Prgramm. Andere Befehle habe ich noch nicht ausprobiert. Werd ich mal versuchen. Im Manual steht, dass wenn man ein ESC sendet ein >- Zeichen zurück kommen muss, damit die Kommunikation funktioniert. Das Bild keyboard zeigt meine Funktion um die den Wert der jeweiligen Taste auszulesen. Mit dieser Routine erhalte ich den Wert 62 für die Escape-Taste. Kann es damit zusammenhängen, dass ich ein Laptop benutzte? Kann man bei der Kommunikation mit lv ein echo einstellen oder ist das Standartmässig eingestellt? Wenn ja, wo kann ich das einstellen? Denn ich erhalte immer dieselben Werte zurück, die ich sende. Ein sehr grosses Dankeschön für Deinen Einsatz. ESC via RS232 senden - oppossom - 10.04.2006 16:53 In deinem Rs232-Vi sendest du zumindest mal definitiv das Zeichen ">" an den Controller. Versuch mal hier einen anderen Befehls-String zu verwenden, und schau, was der Controller zurückgibt. Warum du beim Auslesen der ESC-Taste 62 bekommst ist mir auch ein Rätsel, dürfte allerdings keinen Unterschied machen, ob es ein Notebook ist oder nicht. Vielleicht haben die von dir verwendeten Funktionen Probleme mit dem Lesen von Sondertasten, probier vielleicht mal eine andere Taste aus (zB enter -> 13) Zitat:Kann man bei der Kommunikation mit lv ein echo einstellen oder ist das Standartmässig eingestellt?Was meinst du denn mit echo? Was eventuell noch ein Hindernis sein könnte, ist wenn du am Controller und in LV eine unterschiedliche Baudrate eingestellt hast. ESC via RS232 senden - oppossom - 10.04.2006 17:05 ok, ich weiß jetzt, warum du 62 bekommst: dein Anzeigeelement "element" ist ein ring, dessen Wert ESCAPE dem dezimalwert 62 entspricht... (dieses Ring ist also nicht nach Ascii-Standard geordnet!!!) ESC via RS232 senden - joekuli - 10.04.2006 17:08 Beim hyperterminal kann man einstellen, ob das gesendete Zeichen intern wieder zurückgesendet werden soll -->Echo. Ist das beim lv auch mölich? Du hast recht, wenn ich Enter drücke kommt der Wert 91 statt der 13. Da stimmt wohl was nicht!!!!!!!! |