Forum: PC-Programmierung USB-RS232-Wandler FTDI FT232R unter Linux mit Labview


von hro (Gast)


Lesenswert?

Liebe Gemeinde,

folgendes Problem:
Ich habe diverse Labview-Programme, die ueber die RS232 mit 
Mikrocontrollern kommunizieren.
Nun versuche ich, da neue PC-Hardware mit RS232-Schnittstelle immmer 
rarer wird, so langsam auf USB zu wechseln.

Leider gelingt es mir nicht, von Labview aus den USB-RS232-Wandler 
anzusprechen. Von der Kommandozeile her ist es kein Problem.

Folgende Voraussetzungen:
USB-RS232-Wandler: FTDI FT232R
OS: Linux Suse 10.0 (jetzt fuer den Test), spaeter 11.2 (auch schon im 
Einsatz)
Labview 6.1
Uebertragung 8N1

Der Kernel erkennt den USB-RS232-Wandler beim Einstecken wunderbar, per 
Kommandozeile kann man nach Rechtevergabe ueber die erzeugte 
/dev/ttyUSB0 wunderbar mit den Mikrocontrollern kommunizieren.

Leider finde ich von Labview aus keine Moeglichkeit direkt /dev/ttyUSB0 
anzusprechen, deshalb habe ich mit
ln -s ttyUSB0 ttyS100
die ttyUSB0 an die ttyS100 gebunden. Ueber diese ttyS100 kann ich per 
Kommandozeile wieder wunderbar mit den Mikrocontrollern kommunizieren.
Leider gibt Labview bei Einstellen dieser Schnittstelle einen Fehler 37 
aus; Schnittstelle nicht gefunden.

Hat jemand eine Idee, wie ich Labview unter Linux dazu bringen kann, mit 
dem USB-RS232-Wandler zusammenzuarbeiten?

Gruss hro

von zwieblum (Gast)


Lesenswert?

probier' mal:

rm /dev/ttyS100
cp -a /dev/ttyUSB0 /dev/ttyS100

und dann Labview

von me (Gast)


Lesenswert?


von hro (Gast)


Lesenswert?

@me

OK, danke fuer den Link, den kenne ich natuerlich.

Ich haette mich vielleicht klarer ausdruecken sollen: Da es um diverse 
Programme geht, die ich eigentlich nicht mehr anfassen moechte, suche 
ich eher nach einer Loesung auf OS-Ebene.

Gruss hro

von hro (Gast)


Lesenswert?

@zwieblum

Dein Vorschlag
cp -a /dev/ttyUSB0 /dev/ttyS100
funktioniert leider auch nicht. Trotzdem danke.

Ich nehme an, dass sich Labview um die Geraetedateien gar nicht 
kuemmert, sondern direkt oder indirekt ueber das OS auf die Hardware 
zugreift.

Sonst noch jemand eine Idee?

Gruss hro

von anonym (Gast)


Lesenswert?

hro schrieb:
> sondern direkt oder indirekt ueber das OS auf die Hardware
> zugreift.

unter linux über das os mit schnittstellen zu kommunizieren sollte 
eigentlich auf dev... (oder die entsprechenden sysfs-einträge) 
hinauslaufen.
direkt auf die hardware geht afair nur als root

von hro (Gast)


Lesenswert?

Na dann laeuft es wahrscheinlich drauf hinaus, dass ich mir was in Perl 
stricke. Muss ich die Programme doch noch mal anpacken.

Danke an alle.

Gruss hro

von zwieblum (Gast)


Lesenswert?

Bevor du aufgibst, schau dir mal deine Rechte an:
1
zwieblum@t60p:~$ ls -l /dev/ttyS*
2
crw-rw---- 1 root dialout 4, 64 26. Jän 17:34 /dev/ttyS0
3
crw-rw---- 1 root dialout 4, 65 26. Jän 18:14 /dev/ttyS1
4
crw-rw---- 1 root dialout 4, 66 26. Jän 18:14 /dev/ttyS2
5
crw-rw---- 1 root dialout 4, 67 26. Jän 18:14 /dev/ttyS3
6
zwieblum@t60p:~$ groups
7
zwieblum dialout cdrom floppy audio video plugdev netdev

Ergo darf ich auf meinem Kasterl auf ttyS* tun und lassen was ich will, 
weil ich zur Gruppe "dialout" gehöre ...

von hro (Gast)


Lesenswert?

Wie gesagt: Die Fehlermeldung besagt, dass die Schnittstelle nicht 
gefunden wurde. Ich habe der Schnittstelle auch alle Rechte fuer alle 
zugeweisen, so dass dies kein Problem darstellt.

Gruss hro

von zwieblum (Gast)


Lesenswert?

nun, als letzten Ausweg kannst du noch mit "strace" Labview auf die 
Finger schauen. Filtere den Output nach dem gewünschten Interface, 
vielleicht sucht Labview das Ding ja ganz wo anders.

von Mario (Gast)


Lesenswert?

Hi,

auch wenn das Thema schon etwas älter ist, habe ich hier noch ein 
kleines Update. Bei mir half ein symlink:

ln -s /dev/ttyUSB0 /dev/ttyS5

Gruß, Mario

von hro (Gast)


Lesenswert?

Das Problem hat mich nochmal eingeholt und dank Suchmaschine komme ich 
genau wieder auf meinen eigenen alten Fred.
Den letzten Beitrag hatte ich damals nicht mehr gelesen.

Und die Loesung ist ja nahezu die gleiche, die ich damals schon erdacht 
/ gefunden hatte.
Einziger Unterschied: Die Nr. der ttyS ist kleiner 8. DAS war mein 
damaliges Problem. mit der von Mario verwendeten ttyS5 klappt genau das.

Linux unterstuetzt offensichtlich nur 0-7. Getestet auf openSuse 13.1.

Den Link muss man natuerlich nach jedem Systemstart neu setzen (oder ein 
Script anlegen) und die vom System angelegte Geraetedatei ttySx muss 
vorher geloescht werden.

Also nach Jahren doch noch ein Dankeschoen an alle.

Gruss hro

von udev (Gast)


Lesenswert?

>Linux unterstuetzt offensichtlich nur 0-7. Getestet auf openSuse 13.1.

Ich glaube eher, dass dein Programm mit dem nodenamen nicht zurecht 
kommt. Wie das node heißt ist Linux egal.

>Den Link muss man natuerlich nach jedem Systemstart neu setzen (oder ein
>Script anlegen) und die vom System angelegte Geraetedatei ttySx muss
>vorher geloescht werden.

Dafür sind eigentlich udev rules vorgesehen.

von hro (Gast)


Lesenswert?

udev schrieb:
>>Linux unterstuetzt offensichtlich nur 0-7. Getestet auf openSuse 13.1.
>
> Ich glaube eher, dass dein Programm mit dem nodenamen nicht zurecht
> kommt. Wie das node heißt ist Linux egal.

Nun, das "Programm" heisst Labview.
Und da kann ich mir in der Tat 'ne Menge vorstellen.

Danke fuer den Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.