LabVIEWForum.de - Heidenhain ND280

LabVIEWForum.de

Normale Version: Heidenhain ND280
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3

ACDC

Danke für die ganzen Antworten. Ich habe alle Schnittstelleneigenschaften selbst nochmal überprüft und diese stimmen mit denen im Gerät eingestellten Werten überein.
Diese ganzen Extras, wie Eigenschaftsknoten etc. habe ich nur testweise mit eingebaut. Ich änder das nochmal und schau mal, ob ich dann was auslesen kann. Ich hab auch schon andere Befehle getestet, aber der Lesebuffer ist jedesmal leer. :-(

ACDC

Falls es jemanden interessiert, ich habe heute Heidenhain eine Email geschrieben, da das Auslesen immer noch nicht geklappt hat- und sobald ich eine Antwort habe, schreibe ich diese hier rein.

ACDC

Die Antwort von HEIDENHAIN per Email lautet:

1. USBtoRS232 Converter unter http://content.heidenhain.de/filebase/fi...434002.zip downloaden und installieren
2. in LAbView COM Port als Anschluss nutzen

Für die Übertragung muss wie im Heidenhain Handbuch beschrieben der jeweilige Befehl wie folgt am Schreibpuffer
vom VISA schreiben Vi Eingang angegeben werden:

z.B. Softkey 1 :

\BT0100\r

Zudem muss der Eingang im Kontextmenü (Rechtsklick drauf) auf "\Code Anzeige" umgestellt werden.

Leider bekomme ich immer noch den Fehler: 1073807339-> Ich habe die Schnittstelleneigenschaften überprüft: stimmt, den timeout-Wert hochgesetzt, nur ein Byte gelesen und den von Heidenhain genannten Befehl eingegeben, um überhaupt eine Antwort zu bekommen.... ich bekomme immer noch die selbe Fehlermeldung. Das Gerät wird auch nur mit dem LabVIEW-Programm angesprochen, es läuft kein weiteres im Hintergrund.
Ich habe all das getan, was mir Heidenhain sagte, doch ich kann das Gerät nicht auslesen.
Mit der Firmware habe ich bereits die Verbindung geprüft und diese steht.
Gebe ich den oben genannten Befehl ein, wird allerdings automatisch eine 0 vor B gesetzt. Kann das da dran liegen?
Kann mir hier irgendeiner helfen? Bitte.
Ich wäre um weitere Ratschläge wirklich sehr dankbar.

ps.: das Gerät ist neu
Hallo ACDC,

Zitat:Gebe ich den oben genannten Befehl ein, wird allerdings automatisch eine 0 vor B gesetzt.
Du solltest im Manual nachlesen, ob als erstes Zeichen ein Backslash gesendet werden oder ob "\B" einen (mir nicht bekannten) Steuercode darstellen soll! Ich vermute, es wird ein Backslash gesendet.
Tipp1: Ersetze die unerwünschte Null durch einen weiteren Backslash.
Tipp2: Lese dir die Kontexthilfe zum \-Code-Display durch. Da steht, welche \-Codes verwendet werden und auch deren Bedeutung.
Tipp3: Bei LV2011 kann man auch für Stringkonstanten den Anzeigemodus anzeigen lassen, dies dient (nicht nur deiner eigenen) Übersicht im BD!
Quintessenz: Nicht nur lesen, sondern auch verstehen, was dir der Gerätehersteller sagt.

Zitat:Kann das da dran liegen?
Ich glaube kaum, dass das Gerät deshalb nicht antwortet. Oder es ist so strunzdoof programmiert, dass es fehlerhafte Befehle ohne irgendeine Rückmeldung ignoriert. Sollte aber auch im Manual dokumentiert sein...

Funktioniert der Zugriff per HyperTerminal?

ACDC

Danke für die vielen Tips, ich habe alles ausprobiert, sogar Hyperterminal installiert... als Antwort kamen solche Zeichen: €x€xø€x€x
Laut Handbuch antwortet der ND bei falsch erkannten bzw. ungültigen Befehlen mit dem Steuerzeichen NAK (No acknowledge, Control U).
Dies ist hier nicht der Fall.
Ach und ein Befehl wird laut Handbuch wie folgt gesendet:
<ESC>A0100<CR> bedeuted Positionsanzeigewert ausgeben.
Wie sendet man <ESC> richtig?

Danke für die Antworten.
Hallo ACDC,

Zitat:Wie sendet man <ESC> richtig?
Schon mal in die gute alte ASCII-Tabelle geschaut? Dort das Zeichen ESC auf Position 1Bh gefunden?
Du musst ein Byte mit dem numerischen Wert 27 senden. Steht sicherlich auch irgendwo im Manual des Gerätes...

P.S.: Um die nächste Frage vorwegzunehmen: CR findet sich auch in dieser Tabelle (0Dh) Big Grin

ACDC

Ja natürlich habe ich das. In meinem Post vom 2.11 sind die jeweiligen Werte im Quelltext zu sehen, sowie meine Umrechnung;
27=ESC=0001 1011 und 13=CR=0000 1101
Muss ich dann erst ein Byte mit 27, dann den Befehl als Code und dann 13 als Byte einzeln senden? Also drei mal schreiben?
Wie muss ich die Steuerzeichen wandeln um diese als string zu schreiben?
Danke für die Hilfe bis jetzt.
Hallo ACDC,

Zitat:Wie muss ich die Steuerzeichen wandeln um diese als string zu schreiben?
Man beachten den Anzeigemodus:
[attachment=42226]
Einmal schreiben reicht aus... Smile

ACDC

Vielen vielen vielen Dank! Ich kann nun Werte auslesen.
Wie ich diese interpretiere sehe ich mir gerade an. Sollte ich heute noch Zeit finden dies im Programm zu lösen, lade ich auch das VI hoch.
Im Anhang ist ein Screenshot des funktionierenden Programms.
Entferne noch die Racecondition und verdrahte den Sende-String direkt! Du kannst dir nicht sicher sein, dass in der lokalen Variable "Concatenated String" dasselbe steht wie du eigentlich einstellen willst.

Gruß, Jens
Seiten: 1 2 3
Referenz-URLs