INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

CANopen VISA Read liefert unerwartete Antwort



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

06.08.2019, 13:44 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2019 13:49 von MarkusS.)
Beitrag #1

MarkusS Offline
Ambitionierter Ersti


Beiträge: 8
Registriert seit: Jun 2019

2019
2017
DE_EN

01067
Deutschland
CANopen VISA Read liefert unerwartete Antwort
Hallo zusammen,
ich beschäftige mich seit einiger Zeit mit seriellen Schnittstellen und verwende aktuell eine Nantotec C5-E Motorsteuerung mit einem NEMA-23 Schrittmotor. Die Steuerung ist über USB und einer RS485 (mit DS402) Schnittstelle mit dem PC verbunden, Betriebssystem ist Windows 7.

Ich bau an einem umfangreichen VI indem ich mehrere subVI's aufrufe und ausführe. Jedoch bereitet mir das read VI öfter Probleme.
Kurze Erläuterung zum Programm: Ich schreibe in die Steuerung den Befehl "Motor fahren" (bei CANopen mittels Controlword ist es eine Befehlskette) -> solange der Motor fährt und keine Befehle geschrieben werden, führe ich das im Anhang aufgeführte read_ever.VI aus, welches mir die aktuelle Motorposition ausgibt. Das VI read_ever funktioniert auch anfangs.

Jedoch, aus einem mir unbekannten Grund, liefert die Funktion "VISA Read" ein offensichtlich falschen String im "read buffer"

Geschrieben wird der String (als Beispiel):
4E54 000F 052B 0D00 0001 6062 0000 0000 04F8 6D
dabei ist 6062 00 das Register für die Position

Als Antwort kommt üblicherweise dieser String:
4E54 0013 052B 0D00 001 6062 0000 0000 04EA FEFF FFF4 E5
dabei ist der Anfang des Strings der Header und bleibt immer gleich, dann das Register 6062 00, dann die Antwortlänge 0000 0004, dann die Antwort in Hex-Dezimal für die Position FEFF FFF4 E5
(Der letzte Teil ist der, der sich üblicherweise mit der Taktrate ändert) -> soweit funktioniert alles

JETZT ABER gibt das VISA Read plötzlich folgendes aus:
0000 AEE9 4E54 0013 052B 0D00 001 6062 0000 0000 049B FF
Der Header stimmt nichtmehr, sodass meine Positionsantwort eine null ergibt. Insgesamt sieht die Antwort verschoben aus.
Ich habe bereits versucht die Zeit zwischen VISA Write und VISA Read zu verlängern, jedoch ohne erfolg. Die Taktrate von 250ms sollte mehr als genug sein um die Schnittstelle nicht zu "überladen".

Kann mir bitte jmd helfen und sagen wie ich diese Fehlantwort umgehen kann?


PS: im VI: das setzen der Konstanten und die Indicator-Array dienten einem anderen Zweck, der hier jetzt nicht so relevant ist.

LG
Markus


Angehängte Datei(en)
8.6 .vi  c5e_read_ever.vi (Größe: 41,61 KB / Downloads: 166)

8.6 .vi  c5e_CRC_Calculation.vi (Größe: 13,44 KB / Downloads: 159)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.08.2019, 16:04
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Wie hast du die VISA Schnittstelle beim Öffnen konfiguriert? Hoffentlich ohne Termination Char?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2019, 08:12
Beitrag #3

MarkusS Offline
Ambitionierter Ersti


Beiträge: 8
Registriert seit: Jun 2019

2019
2017
DE_EN

01067
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo Jens,
habe sie nur mit dem COM-Port und der VISA Open Funktion geöffnet. TerminationChar habe ich nicht verwendet
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2019, 09:33 (Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2019 09:36 von MarcoN.)
Beitrag #4

MarcoN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Mar 2019

2016
2019
DE_EN

562**
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo ,

wenn du das VI "Configure Serial Port" benutzt dann steht der TermChar aber standardmäßig auf True.

Gruß
Marco
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2019, 10:35
Beitrag #5

MarkusS Offline
Ambitionierter Ersti


Beiträge: 8
Registriert seit: Jun 2019

2019
2017
DE_EN

01067
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo Marco,

Zitat:wenn du das VI "Configure Serial Port" benutzt dann steht der TermChar aber standardmäßig auf True.
Das stimmt. Ich verwende zum öffnen der Schnittstelle jedoch lediglich das VISA "Open" VI.
Ich habe das mal in den Anhang gepackt.


Folgendes konnte ich herausfinden:

-das "write" funktioniert einwandfrei, der Header/Register etc. wird richtig überliefert
-Antwortstring aus der "read" Funktion sieht üblicherweise aus wie die 3. Zeile (siehe Bild2 im Anhang) -> die Position des Motors liegt dabei im Abschnitt 4 (rote Zahl)

-die flasche bzw falsch interpretierte Antwort (Bsp. 2. Zeile) liefert den String in einer veränderten Reihenfolge jedoch mit allen Informationen, nur leicht verschoben

Die graphische Darstellung der Stringlänge über der Zeit zeigte mir, dass ein String nur mit 18 anstatt 23 Zeichen gelesen wurde. Der Grund ist mir nicht bekannt.
Ich werde versuchen nach dem lesen den String direkt zu prüfen auf seine Länge und bei einer Länge von weniger als 23 Zeichen diesen Ergebnisstring zu überspringen.

Für weitere Anregungen bin ich gerne offen, ich weiß nicht, ob diese Methode zielführend ist

LG Markus


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2019, 10:53
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo Markus,

Zitat:Ich verwende zum öffnen der Schnittstelle jedoch lediglich das VISA "Open" VI.
Dann verwende doch mal ConfigureSerialPort - und stelle das TermChar explizit aus AUS!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.08.2019, 10:55 (Dieser Beitrag wurde zuletzt bearbeitet: 07.08.2019 11:03 von jg.)
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Schreiben-Lesen läuft auch nicht aus Versehen irgendwo parallel in deinem Programm? Auf einer RS485-Leitung kann immer nur einer senden, da kann bei Parallelaufrufen schon was schief laufen!

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.08.2019, 11:21
Beitrag #8

MarkusS Offline
Ambitionierter Ersti


Beiträge: 8
Registriert seit: Jun 2019

2019
2017
DE_EN

01067
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
@Gerd
Hallo Gerd,
Zitat:Dann verwende doch mal ConfigureSerialPort - und stelle das TermChar explizit aus AUS!
Das werde ich mal so ausprobieren, danke.


@Jens
Zitat:Schreiben-Lesen läuft auch nicht aus Versehen irgendwo parallel in deinem Programm? Auf einer RS485-Leitung kann immer nur einer senden, da kann bei Parallelaufrufen schon was schief laufen!
Über diese Thematik bin ich schon mal vorher gestolpert und habe meine Sache daraus gelernt Big Grin
Ich habe extra Acht gegeben, dass entweder gelesen oder geschrieben wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2019, 10:51 (Dieser Beitrag wurde zuletzt bearbeitet: 09.08.2019 10:55 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.399
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo Markus,

Crosslinks bitte immer selbst bekannt geben!

Zum dort geposteten VI:
- TimedWhileLoops sollte man nicht unter Windows benutzen. Normale Loops mit Wartezeit reichen aus!
- Wozu bitte eine TWL mit 1kHz Iterationsrate, wenn darin dann mehrfach für 1ms gewartet wird? Was soll das bringen???
- Viel zu viele lokale Variablen…
- Viel zu großes Blockdiagramm!
- keine Projekt-Datei…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.08.2019, 12:21
Beitrag #10

MarkusS Offline
Ambitionierter Ersti


Beiträge: 8
Registriert seit: Jun 2019

2019
2017
DE_EN

01067
Deutschland
RE: CANopen VISA Read liefert unerwartete Antwort
Hallo Gerd,

danke für deine Verbesserungsvorschläge.

Zitat:Crosslinks bitte immer selbst bekannt geben!
das mit dem Crosslink wusste ich nicht. Werde das in Zukunft natürlich angeben!

Zitat:- TimedWhileLoops sollte man nicht unter Windows benutzen. Normale Loops mit Wartezeit reichen aus!
- Wozu bitte eine TWL mit 1kHz Iterationsrate, wenn darin dann mehrfach für 1ms gewartet wird? Was soll das bringen???
Mit der TWL gebe ich dir recht, das ist an der Stelle Unsinn. Gint es einen Grund dafür, dass man TWLs unter WIN vermeiden sollte?

Zitat:- Viel zu viele lokale Variablen…
Hättest du weiterhin einen Tipp, wie ich die lokalen Variablen vermeiden bzw verringern kann?

Zitat:- keine Projekt-Datei…
Da das diese VI auch nur ein Sub-VI werden soll, und ich gerade an den Basics "rumdoktore" habe ich noch kein Projekt dazu angelegt, sollte ich aber der Übersichtlichkeit halber tun ebenso wie das Blockdiagramm anpassen.


Kann meine VISA Read Problem an einem (oder mehreren) deiner hier aufgeführten Punkte liegen? Trotz des schlecht organisierten VIs arbeitet der PC vermutlich immer noch schneller als die Steuerung (Support meinte 1ms Taktrate). Oder fehlt mir da gerade ein Zusammenhang?

LG
Markus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  CANopen VISA kommunikation MarkusS 5 3.523 21.06.2019 14:17
Letzter Beitrag: GerdW
  CANopen Hydrogencarbonat 2 4.729 12.01.2017 17:26
Letzter Beitrag: jg
  CanOpen Error Hex 0xBFF62023 Isenwelle2015 2 4.810 05.05.2015 10:45
Letzter Beitrag: GerdW
  CANopen Tutorial Bishop 1 5.658 22.12.2014 19:44
Letzter Beitrag: GerdW
  VISA-Read-Fehler-1073807339 eyk107 6 5.932 10.12.2014 08:39
Letzter Beitrag: eyk107
  Kommunikation mittels CANopen Bishop 1 3.790 03.11.2014 12:48
Letzter Beitrag: GerdW

Gehe zu: