rs232 mit USB blockiert, ttyUSB0

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich habe mich mit dieses Problem im Pyhton Forum gemeldet. Dort wurde gefragt, ob es sich möglicherweise nicht um ein Pyhton sondern ein Hardware Problem handelt

    Das Endgerät ist ein Industricodiesystem und kann von mir in keiner Weise manipuliert werden.

    U.a. Python Code (Version: 2.7) läuft unter Windows problemfrei!

    Aus dem raspi, wir die Meldung an das Endgerät korrekt übertragen. Die Rückmeldung des Systems kann nicht empfangen werden. Das Programm wartet ewig.

    Vielleicht hat hier jemand eine Idee, was ich noch probieren könnt.

    BTW: das Endgerät arbeitet korrekt, dass kann von mir durch einen rs232 Editor unter windows kontrolliert werden.


    besten Dank
    \^/ili


  • Hallo,

    ...

    Aus dem raspi, wir die Meldung an das Endgerät korrekt übertragen. Die Rückmeldung des Systems kann nicht empfangen werden. Das Programm wartet ewig.

    ...

    Woher weisst Du das?
    Hast Du schon mal den Pi mit Deinem Win-PC per Nullmodem-Kabel verbunden um nachzuschauen was, vom Pi aus gesehen, auf der anderen Seite ankommt?
    Ich trau, ehrlich gesagt, diesen USB <-> RS232 Teilen nicht so recht.

    cu,
    -ds-

    • Offizieller Beitrag

    ich würde den ganze script in ner interactiven python shell testen, natürlich nur das wichtigste, keine schleifen, kein errorhandling usw und natürlich als root. Desweiteren würde ich ich mich direkt über klasse.methode verbinden. Ich hatte schon öfters probleme mit "with" statements, allerdings nur bei einigen recht seltenen bibliotheken.

    Edit: bisher keine Probleme mit rs232 zu USB Adaptern gehabt (auf Holz klopf)

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (9. Juni 2013 um 20:19)

  • Woher weisst Du das?
    Hast Du schon mal den Pi mit Deinem Win-PC per Nullmodem-Kabel verbunden um nachzuschauen was, vom Pi aus gesehen, auf der anderen Seite ankommt?
    Ich trau, ehrlich gesagt, diesen USB <-> RS232 Teilen nicht so recht.

    cu,
    -ds-

    Hallo,
    erstmal danke fuer die antwort.

    Ein Berechtigungsproblem kann es nicht sein, da ich das Device inzwischen auf 777 gesetzt habe (abgesehen von der zuteilung von dialup usw.).

    >Woher weisst Du das?
    ich weiss das, weil es das Endgerät anzeigt.
    Das Programm blockiert definitiv an der Antwort. Debug Meldungen im Programm.

    >Ich trau, ehrlich gesagt, diesen USB <-> RS232 Teilen nicht so recht.
    Das Problem ist, dass es keine Laptops mit einer 'echten' RS232 gibt. Den letzten hatte ich vor 5 Jahren - und das ist es auch nicht gesagt, dass es intern ueber USB gibt und einfach nur eine DS9 herausgeführt ist.

    Das Endgerät hat leider auch als Eingang eine USB. Ich kann also nicht über die RS232 /dev/ttyAMA0 des Raspis gehen.
    Geht auch aus anderen Gründen nicht, ich muss eventuell über ein RS232 Terminal auf dem Raspi.

    Im Augenblick verdächtige ich sehr das ttyUSB(x) device. Wenn ich das selbe Programm auf einem Laptop mit Ubuntu (13.04) laufen lasse so verhält es sich wie der Raspi (also keine Antwort).

    Ich habe auch versuche mit minicom angestellt - selbes ergebnis, keine Antwort.

    Gibt es irgendwas was ich bei ttyUSB0 hisichtlich senden/empfangen beachten muss/kann?
    BTW: stty -F /dev/ttyUSB0 -a
    zeigt nichts auffälliges. Flowcontrol ist ausgeschalten.

    lg
    \^/ili


  • ich würde den ganze script in ner interactiven python shell testen, natürlich nur das wichtigste, keine schleifen, kein errorhandling usw und natürlich als root. Desweiteren würde ich ich mich direkt über klasse.methode verbinden. Ich hatte schon öfters probleme mit "with" statements, allerdings nur bei einigen recht seltenen bibliotheken.

    Edit: bisher keine Probleme mit rs232 zu USB Adaptern gehabt (auf Holz klopf)

    Hallo dbv,

    Danke.
    ich hatte das Programm schon so wie du es beschrieben hast. Das dzg. Programm stammt vom Python forum. Aber das ist ncht der Grund des Postings.

    Ich hab' s nicht so mit Linux und mit dem Raspi bin ich auch noch nicht auf du und du.
    Soweit ich verstanden habe ist die eigentliche RS232 über die pins der GIPO anzusprechen. Das habe ich auch gemacht. Dort habe ich meine Konsole angeschlossen damit ich nicht über das Netzwerk gehen muss. Im Endausbau sollte das so funktionieren, da der raspi ev. verbaut wird und kein Netzwerkanschluss möglich ist. Das währe es praktisch aus Wartungsgründen sowohl den USB anschluss als auch eine RS232 zur Wartung zu haben.

    Auf der Konsole ist die Schnittstellenkennung /dev/ttyAMA0. Ich habe auch - wie sehr gut beschrieben - die Konsole ausgeschalten (dann kommt beim einschalten des Raspi nur noch eine Zeile). Das sollte aber IMHO nichts mit dem Device /dev/ttyUSB0 zu tun haben - jedenfalls konnte ich keine Veränderung des Verahalten feststellen.
    Sollte es auch nicht, da das selbe Fehlverhalten auch unter Umbuntu auf einem anderen Laptop zu beobachten ist.

    Weißt du oder jemand andere wie und ob die /dev/ttyAMA0 und /dev/ttyUSB0 eventuell zusammenhängen.

    BTW: ich hatte auch noch keine Probleme mit USB/RS232 Konvertern, verwedete diese aber bislang nur unter WIN (von 95 bis Windows 7)


    lg & danke
    \^/ili

  • Servas -ds-

    DANKE fürs mitdenken!


    weil du was von WIN und keinen Problemen schrubst :) ...


    Nur im Bezug mit den RS232/USB Schnittstelle(n):angel:

    [font="Courier New"]<cr><lf>[/font] Problematik:
    Leider auch keine Möglichkeit, da ich eine Version habe, bei der genau ein Byte gelesen wird und das blockts auch.

    Inzwischen schreibe ich mir gerade einen Endgerätsimulator auf einem Arduino um mit unterschiedlichen Baudraten testen zu können. Die Hoffnung stirbt zuletzt. Wenn alles nichts nützt muss ich halt auf einen 300,- Euro Windosrechner SBC umsteigen. Das möchte ich aber nicht wirklich. Ich finde das Raspi-Ding einfach genial!

    lg
    \^/ili

    Einmal editiert, zuletzt von wili (11. Juni 2013 um 08:03)


  • Servas -ds-

    DANKE fürs mitdenken!


    Nur im Bezug mit den RS232/USB Schnittstelle(n):angel:


    ;-> ... ich meinte natürlich in Bezug auf RS232 ...

    Was evtl. noch zu beachten wäre:
    auf der Linux-Seite raw-Modus verwenden (ob/wie das unter WIN geht kann ich im Moment nicht sagen) und Buffer ausschalten.
    Vielleicht mal im Source von irgendeinem Terminalprogramm spicken ( Stichwort ioctl() ).


    cu,
    -ds-

  • Hallo -ds-

    nochmal danke für die Tips.

    STATUSBERICHT

    Inzwischen habe ich folgendes Probiert:

    Das (python) Programm und minicom/screen auf einem CentOS versucht - kein Erfolg.

    Ich fasse zusammen: auf folgenden Umgebungen funktioniert es nicht:
    Laptop Ubuntu 13.04
    Rasperry
    Standrechner mit centos

    Die einzige Plattform wo es einwandfrei funktioniert ist windows.

    ich hab mit minicom und screen eine Kommunikation probiert.
    Erstaunlich ist, dass es NUR immer in eine Richtung ging: senden.

    Ich habe am Raspi über die GIPO/RS232 versucht. Diese ist unter /dev/ttyAMA0 ansprechbar. Dort funktioniert es!
    Das könnte? ein Workaround darstellen -
    Nachteil:

    a) ich muss hardwareseitig eine weitere Brücke rs232/usb haben.

    b) Ich verliere die Fähigkeit beim kunden mit einem Terminalprogramm Änderungen vornehmen zu können. Ich bin mir nicht sicher, ob der Kunde es schätzt einen kleincomputer in sein netzwerk zu lassen. Das ist in gewissen branchen etwas heikel :)

    Ein Arbeitskollege (der kennt sich besser bei den Pinguinen aus wie ich) habe versucht alles mögliche mit stty umstellenen (auch raw) - erfolglos.

    Hast du - oder jemand anderes - schon eine bidirektionale Verbindung zwischen dem Raspi und einem anderen Computer/Endgerät über /dev/ttyUSB0 herstellen können?

    Inzwischen glaube ich, dass es eine prinzipielles Problem bei der /dev/ttyUSB0 darstelle. Warum es im Netze keine Hinweise gibt weiss ich leider nicht. Es macht mich aber stutzig, dass es bei drei unterschiedlichen Geräten zu den selben fehlverhalten kommt.

    Das stürln in code, welchen du vorgeschlagen hast bringt glaube ich nicht's, da das Problem ja bei zwei unterschiedlichen Terminalprogrammen auftritt.


    lg
    \^/ili

  • Hi,

    Ich sagte doch schon, ich traue diesen USB<->RS232 Teilen nicht so recht. Das mag unter Windows anders aussehen, aber ich traue Windows erst recht nicht über den Weg ;) ...

    Für einen Laptop könnte evtl. eine Express-Karte Abhilfe schaffen.
    Beim Pi eben eine RS232 (je nach Geschmack mit oder ohne vorgeschaltetem 3V3 <-> TTL Wandler)

    Versucht habe ich das bisher noch nicht ... steht zwar auf meiner Agenda aber doch eher weiter unten.

    Wobei ich glaube, dass man es trotzdem hinbekommen müsste.
    Ich habe das Gefühl, es kommt beim Endgerät zwar alles an, aber es wartet noch auf irgendwas ... daher meine Idee mit dem <CR>>LF>.

    Vielleicht mal ein minicom capture machen, was der Windows Rechner sendet und mit den Daten von einer Linux-Verbindung vergleichen?
    Ist sicherlich nur irgend ein Steuerzeichen ...

    cu,
    -ds-


  • Hi,

    Ich sagte doch schon, ich traue diesen USB<->RS232 Teilen nicht so recht. Das mag unter Windows anders aussehen, aber ich traue Windows erst recht nicht über den Weg ;) ...

    Hi,
    Du bist aber misstrauisch :)

    Aber Spass beiseite. Ich stoss seit Jahren auf diese Meinung (USB<->Rs232) geht nicht recht - sowohl in der Windows als auch in der Linuxwelt.
    Irgendwas ist daran (für mich!) mystisch - da auf die Behauptung meist keine Begründung und erst rech kein Beweis oder Beispiel kommt.
    Bisher konnte ich (unter WIN) immer nachweisen, dass es am Protokoll, Baudrate usw. gelegen hat die Hardware - bislang! - unschuldig war.

    Wobei ich nochmalig betonen muss, meine Linuxkenntnisse und Erfahrungen sind NICHT nennenswert!.
    ich wurde auf PDP-11 und Digital[1] VAX sozialisiert :-). Denke also, dass VMS das Betriebssytem der Wahl währe, wenn ich es mir aussuchen dürfte :angel:.

    Ein Protokollproblem (endgerät warte noch auf etwas usw.) kann ich (leider!) definitiv ausschließen! Da die Software unter [das böse W-Wort] einweindfrei und dauerhaft funktioniert!

    Ich kann (wiederum leider) ausschließen dass es an den Leitungen liegt. Ich habe ein Schnittstelleschnüffel Programm mit dem ich den Datenverkehr sehr genau monitoren kann. Dort sehen ich, dass der Raspi und andere (mittels minicom, screen, python, bash[2]) sendet aber leider nicht empfangen kann.

    Derzeigi arbeit ich daran, dass ich die interne RS232 (GIPO) hardwaretechnisch umrüste, dass es an die Anschlüsse des Engerätes passt. Da bärts noch.

    lg & BESTEN Dank!
    \^/ili

    [1] Für die etwas jüngeren Leser: Digital Equipment Cooperation (DEC) war einmal der 3. größte Computer Hersteller der Welt - nach IBM und HP

    [2] [font="Courier New"]cat|cp msg.bin > /def/ttyUSB0
    echo -e "...."

    [/font]

  • Hi


    Ich hab mal auf ner ALTOS Anlage angefangen ... 8 Terminals und ein 8086 Prozessor ;) ...

    Univac 90/40, mit RPGII programmiet.
    Phillips, DINOS 4000 Cobol
    IBM 4230, 370-Assembler/Cobol, CICS, VTAM; Es leben die Basisregister und stacklose Maschinen.
    CP/M MSBasic, Compas-Pascal (Vorgänger des Turbopascal) DBASEII, Wordstar, Z80 Assembler
    Und der Star unter allen den Dinosauriern ZX81 (basic, forth & asembler) - Jawoll!

    Ok wir langweisen das junge Publikum.

    Raspi RS232
    ------------

    -- Auf der raspi Seite ist ein 3V3 TTL Wandler --> daran stecke ich einen RS232->USB Wandler -->daran einen USB A -> USB A (zwei Stecker) Verbinder --> daran kommt ein USB Rs232 zu RS458 Konverter --> und dann erst das Endgerät.

    Ich befürchte, das da das eine oder ander schief gehtn könnte..

    lg
    \^/ili

  • Tach auch ...

    hmm .... ganz schön heavy.
    Also: 3V3 <-> TTL kannst Du Dir notfalls sparen, wenn Du den MAX232 auf dem RS232-Board mit den 3V3 von der GPIO-Leiste betreibst.
    Dann habe ich mal Papa Google nach RS458 befragt: die scheint es auch als RS232 <-> RS458 zu geben.
    Und bumms .... haste nur noch zwei Komponenten ;) ...

    cu,
    -ds-

  • Sorry,
    Ist natürlich so, dass ich den MAX232 an die GPIO Leiste anhänge.

    Das ganze ist etwas kompliziert und ich wollte keine 2 Seiten beschreibung liefern.

    Aber dass du eine Eindruck erhälst:

    Also das Codiersystem ist ein U2 Inkjet Drucker [http://www.anser-u2.com/]
    Der ganze Kram kommt aus China (dort wird das Ding zusamengeschraubt) und hat entsprechend gute :@ Dokumentation.

    An dem Ding ist ein RS232/RS485 Wander mit einem USB A an der Windowsseite.

    Dieser ist auch von der Firma, ich traue mich nicht recht einen anderen zu verwenden, da ich nicht die die Chinaboys möglicherweise etwas miteingebaut haben.

    Von der Idee her nimmt man einen Windows PC schließt das Gerät an und verwendet die beigefügt Software zum Programmieren des Druckers.

    Mein Kunde möchte gerne mit einem Handy die Programmierung vornehmen. Also habe ich eine Webanwendung gebastelt (und jetzt kommt der Raspi ins spiel) einen httplight und mein Python Programm raufgeschraubt und Fertig.

    Einen Eindruck kannst du dir in angefügten GIF ansehen.

    Wie gesagt die ganze Anwendung (inklusieve optionanler Scanneranbindung, Produktdatenbank) funktioniert unter Windows gut.

    Nur die Verdammte USB/RS232 von der /dev/ttyUSB0 macht das Problem.

  • Hi,

    so ... jetzt hast Du es geschafft ... jetzt blicke ich gar nicht mehr durch und auf der Website des Drucker-Chinesen sindja überhaupt keine Infos zu finden :).

    Ich habe allerdings den Eindruck habe, dass Du ziemlich viel Kram an Peripherie per USB an den Pi stöpselst. Ich fürchte, das wird so nicht gehen.

    cu,
    -ds-

  • Versuch mal einen RS232/USB mit FTDI Chip zu nehmen, die PL2303 machen schon mal Faxen.
    Ich nehme auch schon mal gerne dies hier :
    http://www.elv.de/mini-usb-modul-um2102-komplettbausatz.html

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (12. Juni 2013 um 19:43)

  • HI


    auf der Website des Drucker-Chinesen sindja überhaupt keine Infos zu finden :).


    Willkommen in meiner Welt. Und das Ding ist noch nichtmal das schlimmtste.
    Manchmal bekomme ich nur 3 A4 Seiten mitgelogten hexcode und kann mir die Kommunikation selbst zusammenreimen.


    Ich habe allerdings den Eindruck habe, dass Du ziemlich viel Kram an Peripherie per USB an den Pi stöpselst. Ich fürchte, das wird so nicht gehen.

    Ist nicht so schlimm, ich glaube die verbale Beschreibung ist unpassend. Nur weil du unvorsichtigerweise Interesse gezeigt hast u.A. UML Deployment:)

    Ich forsche weiter. Bin da extrem stur.

    \^/ili

  • Na super :) ...

    das Bild war sehr aussagekräftig.

    Wenn ich mir das so anschaue dann stellt sich mir allerdings die Frage, ob Du so ein Teil wie vom Imperator angeregt hast, schon probiert hast.

    Und was ich mit dem Haufen Kram meinte: meine Sorge geht eher in Richtung Stromversorgung.
    Dir stehen auf dem Pi nur ca. 200-300mA für beide USB-Ports zusammen zur Verfügung. Und davon musst Du den evtl. über die GPIOs abgezapften Strom noch abziehen. Da hilft nur ein aktiver Hub mit ausreichend Power (siehe auch Forum Stromversorgung).

    Und als drittes fällt mir noch ein: der Pi hat mit seinem Prozessor eine nur eher eingeschränkte Rechenleistung. Ich gehe jetzt aber mal davon aus, dass Du das berücksichtigt hast.

    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!