LabVIEWForum.de
COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - 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: COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht (/Thread-COM-RS232-Kein-Datentransfer-obwohl-ueber-Hyperterminal-geht)

Seiten: 1 2


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - karl.ranseier - 24.07.2006 16:03

Hi,
habe hier ein PANDRIVE 110-42 von Trinamics vorliegen (Schrittmotor).

Der Motor befindet sich im ASCI-Modus, so daß ich ihn über Hyperterminal z.B. mit dem Befehl "A ROL 0, 2000" dazu bringen kann, daß Gerät A, Motor 0 rechts dreht (rotate left) mit der Geschwibdigkeit 2000 Steps /s.
Klappt einwandfrei. Der Port ist wie folgt konfiguriert:
9600 bits/s
8 Datenbits
keien Parität
1 Stoppbit
keine Flusssteuerung.

Und das gehört auch alles so! Entsprechend habe ich im MAX die selben Daten eingegeben, und nochmal extra im VI festgelegt.

Wenn ich den selben Befehl im Measurement & Automation Studio via "Mein System -> geräte und Schnittstellen -> Ports -> COM1 (ist definitiv der richtige) -> open visa test panel -> write " eingebe, passiert nix am Motor. Nach execute folgt ohne nennbare Verzögerung "return count 13"

Hatte überlegt ob es am fehlenden Trennzeichen liegen kann? Denn ich kann keine neue Zeile im Testpanel eingeben. Wenn ich das "endchacracter" setzen will, gibt es nur 0...F als Möglichkeit, enstpricht davon eines dem "neue zeile"?
Werde jetzt mal das neueste VISA "aufspielen" - sollte es dann gehen, melde ich mich. Ich glaube aber nicht dran.

Benutze LabVIEW 7.1 an einem WinXP Rechner.

Edit: update hat nichts gebracht. Und man kann natürlich als Trennzeichen irgendeinen HEX-Wert angeben, nicht nur bis F. Bis F habe ich getestet.

In meinem VI habe ich das Trennzeichen aber einfach eingefügt, geht aber auch nicht.

Edit 2: Gruß karl.ranseier


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - diplNisse - 25.07.2006 07:06

Hallo!

Ich habe leider Dein Sub "Basic Serial Read and Write.vi" nicht, also kann ich mir das nicht anschauen.

Was musst du denn nach deinem Befehl "A ROL 0, 2000" im Hyper Term. eingeben? Wenn du ein ENTER Drücken musst, dann solltest du in LV an dein Steuersignal ein {CR} und ein {LF} anhängen (Carriage Return und Line Feed, sind beide unter der Palette STRING als feste Zeichen zu finden).

Wenn der Motor sofort reagiert, also nachdem du die letzte 0 der 2000 eingegben hast (das kann ich mir aber nicht vorstellen), dann brauchst du nichts anghängen.

Weiter würde ich mal nachschauen, ob du NI VISA installiert hast.
Falls nein: Von NI aktuelle Version runterladen.
Falls ja: Dann Benutzt du "VISA 'Configure Serial Port" um das Port mit den entsprechenden Parametern zu initialisieren.
Danach verwendest du "VISA-Write" und "VISA-Read" für das Lesen und Schreiben.

Ich weiß auch nicht ob LV 7.1 mit der Bezeichnung "COM1" was anfangen kann.
Ich benutze IMMER die Namen, die auch in der Hilfe stehen, nämlich ASRLx::INSTR und das x für den Port. ALso ASRL1::INSTR für COM1.

Das würde ich auch mal versuchen.

Also dann.
Teste mal. Ich warte auf Erfolgs- (oder auch Miserfolgs-) Meldungen.

Dann gucken wir mal weiter


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - karl.ranseier - 25.07.2006 08:10

Hi,
ok. habe etwas schwammig geschrieben.
Also ja, ich muß return eingeben nach dem Befehl. Deswegen bin ich ja auf die Idee mit dem fehlenden Trennzeichen gekommen. Hatte es bereits mit lf & cr versucht, aber hat nichts gebracht.
VISA habe ich ja breist installiert, auch die neueste Version - hatte ich aber auch geschrieben :-)
Seit der Neuinstallation beschwert sich LabVIEW jetz aber, daß es Citadel nicht finden könne ?!

Da ich die Fehelrsuche im Programm selbst aufgegeben habe, versuche ich es jetzt erstmal über MAX. Dort funktioniert es ja auch schon nicht (und es komtm keine "mir fehlt citadel"-medlung).

Der von mir zuletzt getestete Befehl A ROL 0, 500rn im Visa-Testpanel geht nicht.

Mit der Frage nach den Bezeichnungen COM1 etc. erledigt sich dadurch, daß ich ja das Testpanel benutze. Habe zur Sicherheit nochmal beide Ports auspürobiert, falls aus irgendeinem Grund die Namen dort durcheinander gearten sind, hat aber natürlich auch nichts gebracht.

Hab einzwischen auch heausgefunden das Endcharcter=A dem cr/lf entspricht. Habe es aktiviert. Dennoch passiert nichts (habe natürlich dann nur A ROL 0, 500 eingegeben).

Im Hyperterminal muß man zu allererst ENTER drücken, bevor man einen Befehl eingeben kann. Habe deswegen im testpanel auch rn A ROL 0, 500 rn und diverse Variationen mit weggelassenen Leerzeichen versucht. Kein Erfolg.

Jetzt gehe ich einfach mal an einen anderen Rechner wo der Comport via LabVIEW definitiv schon funktioniert hat.
Basic serial read & write ist jetzt dabei. Sorry.

Gruß karl.ranseier


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - diplNisse - 25.07.2006 09:02

' schrieb:Im Hyperterminal muß man zu allererst ENTER drücken, bevor man einen Befehl eingeben kann. Habe deswegen im testpanel auch rn A ROL 0, 500 rn und diverse Variationen mit weggelassenen Leerzeichen versucht. Kein Erfolg.

Hi!

ich weiß gerade gar nicht ob rn nicht auch als "rn übertragen wird?!

hast du schon mal folgendes gemacht:
[Bild: 12683-37.jpg]

Von Citadel habe ich -ehrlich gesagt- noch nie was gehört, sorry.

Sonst würde mir noch einfallen: Es gibt von VISA doch die Resourcen-Suche, die ausgibt, welche Schnittellen zur Verfügung stehen. Vielleicht bringt Dich das weiter.

Nisse


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - karl.ranseier - 25.07.2006 09:30

' schrieb:Hi!

ich weiß gerade gar nicht ob rn nicht auch als "rn übertragen wird?!

hast du schon mal folgendes gemacht:
[Bild: 12685-36.jpg]

Von Citadel habe ich -ehrlich gesagt- noch nie was gehört, sorry.

Sonst würde mir noch einfallen: Es gibt von VISA doch die Resourcen-Suche, die ausgibt, welche Schnittellen zur Verfügung stehen. Vielleicht bringt Dich das weiter.

Nisse

Ja, habe ich alles ausprobiert. Aber ich sagte bereits zweimal, daß ich inzwischen direkt im VISA-Testpanel mein Glück versuche. Somit ist das Porgramm, welches ich hochgeladen habe, eigentlich uninteressant.
Im Übrigen gibt es auch eine "neue Zeile"-Konstante. Das Symbol enthält im Prinzip beide Teilsymbole... mußt Du mal suchen :-)

Offensichtlich kommt der Befehl eifnach garnicht beim Gerät an. Auch kein Bruchteil oder so! Und eine Antwort bekomme ich sowieso schon mal garnicht.


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - karl.ranseier - 26.07.2006 08:07

So, habe was neues ausprobiert.

Habe ein Crosslink Kabel gebaut und sende jetzt von Com1 an Com2 bzw. umgekehrt. Lasse Hyperterminal auf Com1 laufen, "LabVIEW" auf Com2.
Eigenartigerweise kann ich vom serial write & read an den Hyperterminal z.B. ein "Hello World" schicken, aber umgekehrt nicht.
Vorher habe ich beim Schreiben via VISA-Test-Panel richtung Steppermotor mitgesnifft:
Ni-Spy verrät mir: 1. viWriteAsync (0x00F57160, "..", 2, 0x04040003)
Dabei sollten die ".." eigentlich ein simples rn (nach Aussage der Hotline ist dies auf jeden Fall der richtge Weg & Befehl) sein. Vielleicht wir dies irgendwie falsch interpretiert. Es würde dazu passen, daß ein "hello World" ankommt, aber der Schrittmotor den Befehl nicht verarbeitet, weil rn fehlt.

Wie gesagt, Trennzeichen in den Comportsettings aktivieren und auf A (was rn ist) setzen klappt nicht.

Die Ideen hatte ich übrigens nicht selbst, sondern von der LabVIEWhotline. Werde gleich nochmal mit dem freundlichen Berater tel.

Gruß
karl.ranseier


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - diplNisse - 26.07.2006 10:57

' schrieb:So, habe was neues ausprobiert.

Habe ein Crosslink Kabel gebaut und sende jetzt von Com1 an Com2 bzw. umgekehrt. Lasse Hyperterminal auf Com1 laufen, "LabVIEW" auf Com2.
Eigenartigerweise kann ich vom serial write & read an den Hyperterminal z.B. ein "Hello World" schicken, aber umgekehrt nicht.
Vorher habe ich beim Schreiben via VISA-Test-Panel richtung Steppermotor mitgesnifft:
Ni-Spy verrät mir: 1. viWriteAsync (0x00F57160, "..", 2, 0x04040003)
Dabei sollten die ".." eigentlich ein simples rn (nach Aussage der Hotline ist dies auf jeden Fall der richtge Weg & Befehl) sein. Vielleicht wir dies irgendwie falsch interpretiert. Es würde dazu passen, daß ein "hello World" ankommt, aber der Schrittmotor den Befehl nicht verarbeitet, weil rn fehlt.

Wie gesagt, Trennzeichen in den Comportsettings aktivieren und auf A (was rn ist) setzen klappt nicht.

Die Ideen hatte ich übrigens nicht selbst, sondern von der LabVIEWhotline. Werde gleich nochmal mit dem freundlichen Berater tel.

Hallo!

Ich glaube ganz ehrlich nicht, dass "rn" einem A entspricht!

Was würde denn dann passieren, wenn ich "DASISTEINTESTrn" über die serielle schicke?
Dann würde der Empfang bei "D" stoppen.

Das kann nicht sein.


Ein weiterer Punkt:
Dass Du sas "Hallo" VOM HyperTerm RICHTUNG LabVIEW nicht empfängst, kann auch daran liegen, dass du
die Variable "bytes to read" nicht oder zu groß gesetzt hast.
Wenn kein Termination Char empfangen wird, dann bricht das Empfamgen ja bei erreichten der Anzahl in "bytes to read" ab. Wird diese Anzahl jedoch nicht erreicht, bricht das Empangen gar nicht ab.

Was sagt den dein Error-Out eigenlich?


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - karl.ranseier - 27.07.2006 09:08

' schrieb:Hallo!

Ich glaube ganz ehrlich nicht, dass "rn" einem A entspricht!

Da hast Du Recht, es ist lediglich ein CR.

Aber ich rede hier von der HEX-Darstellung der Zeichen. Ist auch egal. Vergiß mein Problem bitte einfach. Ich glaube nicht, daß Du verstanden hast wo ich die Fehlersuche zur Zeit unternehme. Sonst hättest Du bei meinem Kommentar "Trennzeichen in den Comportsettings aktivieren und auf A (was rn ist) setzen klappt nicht" nachgeguckt und gemerkt, daß dort ein HEX-String einzugeben ist (wenn Du denn auch mal in die MAX->Comportsettings gucken würdest).

Natürlich passe ich die Anzahl der auszulesenden Bits an. Ist hier jemand der vielleicht mehr Ahnung hat? Vielelicht etas mehr Ahnung von den Stop-bits etc.? weil da habe ich was herausgefunden, aber sehe im Moment keinen Sinn das hier zu schreiben.

Gruß
karl.ranseier


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - diplNisse - 27.07.2006 09:17

' schrieb:Da hast Du Recht, es ist lediglich ein CR.

Aber ich rede hier von der HEX-Darstellung der Zeichen. Ist auch egal. Vergiß mein Problem bitte einfach. Ich glaube nicht, daß Du verstanden hast wo ich die Fehlersuche zur Zeit unternehme. Sonst hättest Du bei meinem Kommentar "Trennzeichen in den Comportsettings aktivieren und auf A (was rn ist) setzen klappt nicht" nachgeguckt und gemerkt, daß dort ein HEX-String einzugeben ist (wenn Du denn auch mal in die MAX->Comportsettings gucken würdest).

Natürlich passe ich die Anzahl der auszulesenden Bits an. Ist hier jemand der vielleicht mehr Ahnung hat? Vielelicht etas mehr Ahnung von den Stop-bits etc.? weil da habe ich was herausgefunden, aber sehe im Moment keinen Sinn das hier zu schreiben.

Gruß
karl.ranseier

0xA enspricht dez. 10, was laut ASCII-Tabelle ein {LF} ist. Soviel zum Thema "Ist hier jemand der vielleicht mehr Ahnung hat?".

Und jetzt lass ich Dich mit Deinem Problem alleine, weil mir das hier zu unfreundlich geworden ist.

Nisse


COM / RS232 -> Kein Datentransfer obwohl über Hyperterminal geht - Lunarfur - 21.03.2007 13:44

Der Motor befindet sich im ASCI-Modus, so daß ich ihn über Hyperterminal z.B. mit dem Befehl "A ROL 0, 2000" dazu bringen kann, daß Gerät A, Motor 0 rechts dreht (rotate left) mit der Geschwibdigkeit 2000 Steps /s.
Klappt einwandfrei. Der Port ist wie folgt konfiguriert:
9600 bits/s
8 Datenbits
keien Parität
1 Stoppbit
keine Flusssteuerung.
[/quote]
Hab ebenfalls 6 Motoren an einem TCM-610 angeschlossen mit der Software von trinamics funktioniert das auch alles. Aber weder über den MAX bekomme ich eine Drehung und auch wenn ich die TimeoutZeit hoch setze bekomm ich im VI immer einen timeout-Fehler..
Gibt es irgendwo ne Anleitung wie man Trinamics Geräte auch mit LV ansteuern kann? Oder wie hast du es mittlerweile hinbekommen?
i.A. Lunarfur