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 

Dieses Thema hat akzeptierte Lösungen:

IO88 Platine ansteuern



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!

26.10.2011, 18:27 (Dieser Beitrag wurde zuletzt bearbeitet: 26.10.2011 18:31 von Unimatrix.)
Beitrag #1

Unimatrix Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2011

2011
2009
EN



IO88 Platine ansteuern
Hallo,
ich betreibe eine ELV IO 88 Platine über den seriellen Anschluss. Soweit klappt das auch ganz gut. Ich kann Ausgänge setzten und löschen, also das Senden von Befehlen klappt.

Leider komme ich mit der Signalverarbeitung nicht zurecht. Dazu habe ich mal das Programm unten angehangen.

Mein Problem ist, dass im Fenster "read string" die Daten angezeigt werden, welche an die Schnittstelle geschickt werden, aber nicht was dort zurück kommt.

An die Schnittstelle werden ganz normale ASCII Befehle geschickt.

Zb.: <STX>O<ETX> um alle Ausgänge abzufragen

In meinem COM-Terminal würde das so aussehen:
[TX] - 02 4F 03
[RX] - 02 4F 01 06 03


Leider klappt das so in LabVIEW leider nicht. Wäre nett, wenn mir jemand einen heißen Tipp geben könnte, wie man das macht.

Gruß,
Unimatrix


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Versuch1.vi (Größe: 15,31 KB / Downloads: 169)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.10.2011, 19:02
Beitrag #2

Unimatrix Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2011

2011
2009
EN



RE: IO88 Platine ansteuern
Jetzt klappt alles soweit, wie es soll. Ich habe den Bytecount vom Reader Block auf 8 bit gesetzt.

Leider ist das ganze Programm nur sehr träge. Wenn ich beispielsweise die Ausgänge setzte dann leuchtet erst ca. eine Sekunde später das Lämpchen am Ausgang. Oder auch die Signalerfassung der Eingänge verläuft träge.

Kann mir da vielleicht einer sagen, wie das zu beschleunigen geht?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2011, 19:46
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: IO88 Platine ansteuern

Akzeptierte Lösung

Hallo Unimatrix,

diverse Fehlerchen im Umgang mit der seriellen Schnittstelle:
- die erwartete Antwort ist 5 Zeichen lang, du fragst aber 8 ab. Klar das da länger als nötig gewartet wird...
- du hast beim InitSerialPort die Option für das Ende-Zeichen auf Standard gelassen, d.h. es wird ein LF als Endezeichen erwartet. Ist dies wirklich so? Oder wird nicht vielleicht das 0x03 als Endezeichen verwendet und könnte so (statt der festen Abfrage von 8 Zeichen) als klares EOT benutzt werden...
- du schließt in der Schleife die VISA-Referenz, gibst also den Port frei. Trotzdem willst du in der nächsten Iteration wieder Daten vom Port abfragen... Den Port erst nach der Schleife wieder freigeben!!!
- Aufgrund falscher Abfragen (s.o.) wird wohl die Standard-TimeOut-Zeit verwendet - wenn ich mich recht erinnere, sind dies 10s...

Es gibt hier so viele Threads zum Thema "Serieller Port" und auch einige Beispiele, die mit LabVIEW mitgeliefert werden - da hättest du wenigstens mal reinschauen können...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2011, 20:49 (Dieser Beitrag wurde zuletzt bearbeitet: 26.10.2011 20:49 von Unimatrix.)
Beitrag #4

Unimatrix Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2011

2011
2009
EN



RE: IO88 Platine ansteuern
Danke für die schnelle Antwort. Natürlich habe ich auch vorher die Beispiele angeguckt.

Ich habe es jetzt durch die Tipp beschleunigen können. Aber leider ist das Ergebnis immer noch nicht zufriedenstellend. Ich habe den Eindruck, dass die Ausgabe "verrutscht" ist.

Zb. so:

0603024900

Im Anhang ist auch ein Bild, wie die Datenübertragung abläuft.


Angehängte Datei(en) Thumbnail(s)
   

11.0 .vi  Versuch1.vi (Größe: 16 KB / Downloads: 143)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2011, 08:05 (Dieser Beitrag wurde zuletzt bearbeitet: 27.10.2011 08:07 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: IO88 Platine ansteuern

Akzeptierte Lösung

Hallo Unimatrix,

Zitat:Ich habe den Eindruck, dass die Ausgabe "verrutscht" ist. Zb. so: 0603024900
(Leider kann ich momentan dein VI nicht anschauen, hab kein LV2011 zur Verfügung.)
Wie ich schon mal erläutert hatte:
Wenn du fest einstellst, 8 Bytes lesen zu wollen, macht das LV auch. Dann wird halt gewartet, bis die nächste Botschaft ankommt, um den Lesebuffer auf die geforderten 8 Byte aufzufüllen. So kommt es zum "Verrutschen" der Bytes...

Nochmal (wie auch schon geschrieben):
Nutze das 0x03 als Endezeichen beim VISA-Init. Dann sollte es passen...

Ansonsten:
- Bild des BD anhängen oder VI runterkonvertieren...
- Wie die serielle Übertragung auf Hardware-Ebene funktioniert, ist zumeist bekannt und für die Frage irrelevant (solange die richtigen Einstellungen beim VISA-Init vorgenommen werden) - das Bild hättest du dir sparen können...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.10.2011, 13:54
Beitrag #6

Unimatrix Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Oct 2011

2011
2009
EN



RE: IO88 Platine ansteuern
Danke! Das war es! Ich musste als Endzeichen das 0x03 eingstellen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Gehe zu: