Gewicht einer Soehnle Waage 7792 (Anzeigegerät 2790) per RS232 auslesen

L I V E Stammtisch ab 20:30 Uhr im Chat
    • Offizieller Beitrag

    Hallo Community,

    ich beabsichtige das Gewicht einer Soehnle Industriewaage auszulesen und würde gerne vor der teuren Anschaffung ein paar Dinge sicher stellen. Ich habe leider noch keine Erfahrungen mit Seriellen Schnittellen, Com Ports bzw RS232 gemacht.
    Diese Waage hat einen RS232 Anschluss der am Pi irgendwie ausgelesen werden soll. Das ganze soll später an einem Bildschirm auf einem lokalen Webserver angezeigt werden. Die Daten müssen also zu PHP gelangen.
    Hier also erst einmal die Hardware für die ich mich entschieden habe:

    • Anzeigegerät: Soehnle Anzeigegerät 2790 (Link | Datenblatt)
      verfügt über RS232 Schnitstelle


    EDIT: Im weiteren Verlauf des Projektes habe ich mich für das Basisterminal 3010 entschieden. :shy:

    7792.jpg


    Zusätzliche Hardware wie RS232 Schnittelle für den Raspberry Pi:


    Hier bin ich mir natürlich unsicher, welchen Adapter ich wählen soll.

    In dem Datenblatt zum Anzeigegerät habe ich folgende Infos gefunden die eventuell wichtig sein könnten:

    • Die Schnittstelle kann unidirektional und bidirektional betrieben werden. Das AWG ist
      grundsätzlich empfangsbereit und hat deshalb keine Handshakesignale.
    • Pin Belegung AWG
      1 TxD (V24)
      2 RxD (V24)
      3 Signal Ground
    • Die Schnittstellenparameter sind fest auf 8 Bit, 1 Stopbit, no Parity eingestellt.
      Die Baudradte kann auf 1200, 2400, 4800 und 9600, über das UCAL eingestellt werden.
    • und eine Liste diverser Befehlscodes


    Ich stelle mir nun folgende Fragen:

    • Welches Modul als Schnittelle? RS232 zu GPIO, wenn ja welches? Oder besser RS232 USB Adapter, wenn ja welcher?
    • Wie kann im Hintergrund das Gewicht abgefragt werden und auf einem Webserver via PHP (JS/AJAX)?
      Idee: Per Schleife bzw Intervall den Gewichtswert in eine Textdatei, die PHP ausliest.
    • Wie werden die Daten per RS232 übertragen? Verschlüsselt? Im Klartext? Textdatei wie hier beschrieben? Oder über die oben genannten Befehlcodes aus dem Datenblatt?
    • mir werden sicherlich noch mehr Fragen einfallen.


    Ich würde gerne vorher abwägen ob ich, oder mit eurer Hilfe, die Waage auslesen kann und das Gewicht per Webserver anzeigen lassen kann. Das sollte bei diesem Anschaffungspreis schon gut überlegt sein. Dazu kommt nämlich noch Industrie-Tastatur/Bildschirm/und andere Dinge.

    Hintergrund:
    Es soll ein Terminal entstehen an dem Benutzer auf einen lokalen Webserver diverse Daten per Tastatur bzw Touch eintragen.
    Des weiteren soll das Gewicht des Objektes auf der Waage auf dem Terminal angezeigt werden.


    Ich freue mich auf eure Antworten.

    Gruß,
    ps915

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Einmal editiert, zuletzt von ps915 (17. Juli 2013 um 21:18)

  • Gewicht einer Soehnle Waage 7792 (Anzeigegerät 2790) per RS232 auslesen? Schau mal ob du hier fündig wirst!

  • Hi ps915,

    hmm ... für meinen Geschmack sind die Infos noch ein wenig dünn.

    Das, was Du vermutlich mit der Tabelle meinst, bezieht sich m.E. auf die Usermode-Einstellungen in der Seite zuvor.

    Doch ... es ist noch nicht alles verloren:

    Schnittstelle RS 232 (V24) f ̧r Druckeranschluss
    [font="sans-serif"]oder Anbindung an EDV. Schnittstellenbeschreibung [/font]
    bei Ihrem Soehnle-Servicepartner anfordern

    Ohne die kommst Du vermutlich nicht aus.

    Und wie es aussieht, wirst Du nur dann Daten erhalten, wenn diese Drucker/EDV-Taste gedrückt wird.
    Möglicherweise aber auch nicht ... warten wir mal auf die Schnittstellen-Beschreibung.

    Wegen der RS232 vom Raspi würde ich mir jetzt noch keinen Kopf machen. Übertragen lässt sich alles und ob Du bei dem Preis für die Waage jetzt noch 5 Ocken zusätzlich für ein anderes RS232 Modul verbrennst, ist - denke ich - eh egal. Ich persönlich würde da den GPIO mit Pegelwandler nehmen, weil Du kein Hardware-Handshake brauchst.

    Eine gewisse Idee hätte ich schon, aber warten wir mal auf die Beschreibung ...

    PS:
    Kann es sein dass Du das falsche Datenblatt verlinkt hast?


    Code
    In dem Datenblatt zum Anzeigegerät habe ich folgende Infos gefunden die eventuell wichtig sein könntenie Schnittstelle kann unidirektional und bidirektional betrieben werden. Das AWG ist
     grundsätzlich empfangsbereit und hat deshalb keine Handshakesignale.Pin Belegung AWG
     1 TxD (V24)
     2 RxD (V24)
     3 Signal GroundDie Schnittstellenparameter sind fest auf 8 Bit, 1 Stopbit, no Parity eingestellt.
     Die Baudradte kann auf 1200, 2400, 4800 und 9600, über das UCAL eingestellt werden.und eine Liste diverser Befehlscodes

    Also ich finde in dem Datenblatt weder was von einer Belegung noch was von Einstellungen geschweige denn Befehlscodes.


    ciao und Grüsse aus dem - mittlerweile - verregneten Rosenheim,
    -ds-

    • Offizieller Beitrag

    Danke für die Antwort. Entschuldige bitte das falsche verlinken.
    Dies ist ein Dokument zu der Datenschnittstelle des Anzeigegerätes

    http://www.wum-profishop.de/downloads/date…08.046d.v21.pdf

    Aus diesem Dokument habe ich die Infos.


    Schöne Grüße aus dem nebeligen Norden,
    ps915

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Einmal editiert, zuletzt von ps915 (18. Mai 2013 um 00:54)

  • Hi ...

    na das sieht doch schon mal besser aus ;)

    Auf den ersten Blick würde ich sagen, ist es kein Problem mit dem Steuergerät - oder wie immer man es nennen mag - ein Schwätzchen zu halten.
    Ich guck mir das noch mal in Ruhe an ... aber so aus meinem Bauchgefühl heraus sollte das weniger Aufwand sein, als die zugehörigen HTML/PHP Seiten zu gestalten...

    bis denne mal,
    sprach er, und verschwand in der samtenen Dunkelheit der Nacht einer südostbayrischen Kleinstadt ...

  • Die RS232-Module sind beide nur Pegelwandler, da ist es egal welchen Du nimmst.
    Zum Testen kannst Du einfach mal ein Terminalprogramm starten (Minicom) und '<E>' eintippen und Return drücken. Dann sollte die Waage ständig den Messwert schicken sobald Du etwas drauflegst. Die Daten kommen im Klartext.

  • Hi ps915,

    so ... also ich seh da jetzt kein größeres Hindernis.

    Du müsstest nur mal sicherstellen, dass die Daten, die Du benötigst, auch zur Verfügung gestellt werden.
    Interessant wäre u.U. noch das Format der Antworten.
    Ich kenne das nur als reine Zahlenwerte, evtl. durch Doppelpunkte getrennt.
    Wie orb schon richtig angemerkt hat, kommen die Daten im Klartext als ASCII-Zeichen.
    Ich denke die hex-Angabe bei den spitzen Klammern dienen nur der Eindeutigkeit, weil diese beiden Zeichen auf verschiedenen Codepages evtl. verschiedene Hexcodes haben.

    Wenn Deine Ansprüche an die Antworten erfüllt sind, kannst Du imho nichts falsch machen.

    Ich würde mir dann ein popeliges C-Programm basteln, dass dieses Steuerteil simuliert und auf einem zweiten PC mit serieller Schnittstelle laufen lassen, solange Du das Gerät noch nicht hast.
    Open auf die Schnittstelle, Parameter setzen, auf Input pollen, Input abscannen und irgendeinen festen Response schicken. Ob der nun vom Format passt ist erstmal Banane - das kannst Du dann später anpassen.
    Dann auf dem Pi ebenfalls ein C-Programm mit Aurufparameter was es machen soll, Parameter auswerten, passendes Kommando suchen,
    Schnittstelle öffnen und Übertragungsparameter setzen, Komando schicken, Response abwarten, Daten in die Datenbank - fertig.


    Also das ist sicherlich hinzubekommen,
    -ds-

    PS: Dieses Bedienteil - haben da später "Benutzer" Zugriff drauf? Das könnte u.U. dazu führen, dass irgendwo zwischendrin einer die Übertragungstaste drückt und dann empfängt Dein Pi - schlimmstenfalls während er selbst was abfragt - irgendwelche Daten, die er gar nicht wollte. Ich denke das sollte man - z.B. mittels Acryl-Abdeckung - ausschliessen.
    Und RS232-mässig würde ich eher zu etwas in der Richtung wie das hier tendieren, was Du ja auch schon überlegt hattest. Aber dazu können vielleicht andere Leutz hier mehr sagen, die schon mal so ein Teil ausprobiert haben ...

    nu aber ... ;)

  • H,

    was ich vergass ...

    Ich würde da noch zwischen GPIO und MAX232 sicherheitshalber so was wie dieses Teil hier einbauen.
    Irgendjemand, ich glaub aber nicht hier aus dem Forum, hat mir zwar mal geflüstert, das ginge auch so, aber ich denke, sicher ist sicher.
    Vielleicht haben die Elektroniker dazu ja noch ne Meinung ...

    ciao und schönes WE noch,
    -ds-

    • Offizieller Beitrag

    Danke für die Antworten.

    Diese Woche geht's zum örtlichen Soehnle Waagenanbieter.
    Soweit haben sich schon alle Fragen geklärt. Jedoch muss das Anzeigegerät und deren Funktionen vor dem RPI funktionieren. Wenn (d)ein C-Programm in einem bestimmten Intervall die Daten anfordert ist das genau das was ich suche. Reden wir bei dem Intervall von Millisekunden oder Sekunden? Es wäre auch möglich (d)ein Programm per Button via PHP zu starten und als Rückgabe den Wert anzuzeigen?

    Die Frage von Fehlerströmen interessiert mich auch? Ist das notwendig?

    Gruß,
    ps915

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

  • Tach ps915,

    nun - ich weiß jetzt nicht welche Funktionalität Du genau benötigst. Aber so wie es aussieht kannst Du über ein Programm alles steuern, was Du auch über das Bediengerät steuern kannst.
    Mir fehlt da so ein bisschen der Hintergrund, aber möglich ist, theoretisch zumindest, zunächst mal alles.
    Wägevorgang per Button starten, wie orb schon schrieb, den Automatismus triggern, dass jeder neue Wiegevorgang automatisch Daten schickt, zu einem bestimmten Zeitpunkt Daten abrufen ...

    Mit den Fehlerströmen meintest Du wohl den Levelshifter 3V3 <-> 5V, nehme ich jetzt mal an.

    Werd scho ....

    Viele Grüsse vom Alpenrand,
    -ds-

    • Offizieller Beitrag

    Die Benutzer legen in der Regel eine Wanne auf die Waage und betätigen die Tarafunktion. Danach wird ein Gewicht in die Wanne gelegt und ab da soll der Messwert an den RPI übertragen werden.

    Wie genau die Waage sich verhält wenn man gerade den Wert abfragt, kann ich nicht sagen, aber ich denke doch dass das parallel im Hintergrund abgefragt ohne die Funktion der Waage oder den Rpi zu stören.

    Wie sieht es denn mit Plug and Play bei seriellen Anschlüssen aus? Das ganze System wird unter Umständen auch portabel betrieben.

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Einmal editiert, zuletzt von ps915 (19. Mai 2013 um 21:47)


  • Die Benutzer legen in der Regel eine Wanne auf die Waage und betätigen die Tarafunktion. Danach wird ein Gewicht in die Wanne gelegt und ab da soll der Messwert an den RPI übertragen werden.

    Wie genau die Waage sich verhält wenn man gerade den Wert abfragt, kann ich nicht sagen, aber ich denke doch dass das parallel im Hintergrund abgefragt ohne die Funktion der Waage oder den Rpi zu stören.

    Wie sieht es denn mit Plug and Play bei seriellen Anschlüssen aus? Das ganze System wird unter Umständen auch Portable betrieben.

    Hi,

    da würde ich ad hoc das Steuergerät "verstecken" und dem Benutzer einen kleinen Touchscreen oder einen kleinen Bildschirm mit zwei Knöpfen zur Verfügung stellen:
    "Bitte Behälter auf die Waage stellen und OK drücken" -> OK -> Kommando auf dem Pi: Tarafunktion
    "Bitte legen Sie jetzt blablabla - Drücken Si anschliessend OK oder Abbruch" -> OK -> Pi: Wiegefunktion ....

    und das Ganze wieder von vorn.
    Plug & Pray mit RS232 ? Eher nicht ...
    Ist für Deine Zwecke imho auch gar nicht notwendig.

    bye,
    -ds-

    • Offizieller Beitrag

    Hi,

    da würde ich ad hoc das Steuergerät "verstecken" und dem Benutzer einen kleinen Touchscreen oder einen kleinen Bildschirm mit zwei Knöpfen zur Verfügung stellen:
    "Bitte Behälter auf die Waage stellen und OK drücken" -> OK -> Kommando auf dem Pi: Tarafunktion
    "Bitte legen Sie jetzt blablabla - Drücken Si anschliessend OK oder Abbruch" -> OK -> Pi: Wiegefunktion ....

    und das Ganze wieder von vorn.
    Plug & Pray mit RS232 ? Eher nicht ...
    Ist für Deine Zwecke imho auch gar nicht notwendig.

    bye,
    -ds-


    Das wollte ich eigentlich umgehen. Die Gewichtsermittlung soll eigentlich nur per Anzeigegerät geschehen. An dem Terminal wird ein Formular ausgefüllt mit diversen Angaben.

    Ist der levelshifter nur für mögliche Spannungsschwankungen?

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Einmal editiert, zuletzt von ps915 (19. Mai 2013 um 22:02)


  • Das wollte ich eigentlich umgehen. Die Gewichtsermittlung soll eigentlich nur per Anzeigegerät geschehen. An dem Terminal wird ein Formular ausgefüllt mit diversen Angaben.

    Ist der levelshifter nur für mögliche Spannungsschwankungen?


    Tja,
    dann wirst Du wohl bei Gelegenheit tatsächlich noch über die Kopplung Terminal -> Waage nachdenken.
    Wenn Du Dich da auf den Benutzer verlässt, dann bist Du verlassen ...
    Es sei denn, es ist Dir egal welche Wiegedaten zu welchen Formularen gehören. Dann kann man in der Tat diese <E> Funktion verwenden.
    Ich seh die erste Benutzerhürde aber schon bei der Tara-Geschichte.

    Der Levelshifter ist dazu da die Pegel des MAX (5V) an die vom GPIO des Pi (3V3) anzugleichen. Beim Senden vom Pi ist das noch egal. Der MAX erkennt soweit ich weiss auch 3V3 als High, aber die empfangenen Daten dürften mit 5V kommen - und ob der Pi das abkann - zumindest auf Dauer?? Ich weiss nicht ...


    ciao,
    -ds-

    • Offizieller Beitrag

    Tja,
    dann wirst Du wohl bei Gelegenheit tatsächlich noch über die Kopplung Terminal -> Waage nachdenken.
    Wenn Du Dich da auf den Benutzer verlässt, dann bist Du verlassen ...
    Es sei denn, es ist Dir egal welche Wiegedaten zu welchen Formularen gehören. Dann kann man in der Tat diese <E> Funktion verwenden.
    Ich seh die erste Benutzerhürde aber schon bei der Tara-Geschichte.


    Vielleicht reden wir aneinander vorbei. Meine Grobe Vorstellung noch einmal:
    1. Wanne auflegen
    2. Tara Funktion
    3. Wanne + Objekt auflegen (Endgewicht wird ja sowieso am Anzeigegerät angezeigt)
    4. Nun Button auf Terminal(PHP Webserver auf RPI) drücken
    5. Verbindung via RS232 aufbauen und aktuellen Messwert abfragen und speichern (Datei, .txt, oder meinetwegen auch in einer Datenbank)
    6. Via Ajax -> PHP z.B auf die Textdatei zugreifen und den Messwert in das korrekte Formular (enabled=false ;) ) eintragen.

    Es kann auch gerne die ganze Zeit das aktuelle Gewicht in die txt geschrieben werden und per Ajax dann nur das Formular gefüllt werden.
    Weiß leider nicht was du damit machst:

    Zitat


    Es sei denn, es ist Dir egal welche Wiegedaten zu welchen Formularen gehören. Dann kann man in der Tat diese <E> Funktion verwenden.

    Man könnte dafür doch dann einfach die "<A> | Sende Wert einmalig sofort" Funktion benutzten, oder liege ich da falsch?


    Der Levelshifter ist dazu da die Pegel des MAX (5V) an die vom GPIO des Pi (3V3) anzugleichen. Beim Senden vom Pi ist das noch egal. Der MAX erkennt soweit ich weiss auch 3V3 als High, aber die empfangenen Daten dürften mit 5V kommen - und ob der Pi das abkann - zumindest auf Dauer?? Ich weiss nicht ...


    Ah, okay. Da der MAX3232 auf 5V ausgelegt ist werden die Signale einfach auf 3V runtergebrochen! Logisch! ;)

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

  • So,

    nein nein, ich hab' Dich schon ;)

    Es geht so wie das beschrieben hast ... klar.

    Nur - wenn Du das Endbenutzern so zur Verfügung stellst, dann ist imho vorprogrammiert, dass da u.U. Bandsalat dabei herauskommt.

    Ich kenne aus der Vergangenheit einige Fälle, bei denen wir dachten, die Software wäre wirklich narrensicher. Aber da hatten wir die Rechnung ohne die Narren gemacht :)

    Aber, um beim Thema zu bleiben, geht ...

    ciao,
    -ds-


  • Ah, okay. Da der MAX3232 auf 5V ausgelegt ist werden die Signale einfach auf 3V runtergebrochen! Logisch! ;)

    ne falsch, der MAX 3232 kann auch gleich an 3,3V vom PI arbeiten, braucht also kein Levelshifter warum so umständlich ?

    die haben noch mehr
    http://para.maximintegrated.com/results.mvp?fam=rs232&793=3.3

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ne falsch, der MAX 3232 kann auch gleich an 3,3V vom PI arbeiten, braucht also kein Levelshifter warum so umständlich ?

    die haben noch mehr
    http://para.maximintegrated.com/results.mvp?fam=rs232&793=3.3

    Tach jar,

    stimmt schon ... aber die Empfangsdaten kommen trotzdem mit 5V, oder lieg ich da falsch (siehe weiter oben) ...

    ... und die MAX-Bausteine sind auf diesen Platinen schon verbaut. Kann man vllt. tauschen, wenn sie gesockelt sind aber bei smd-Teilen (wie dem hier oder dem hier ) dürfte das schwierig sein ;)

    bye,
    -ds-


  • Tach jar,

    stimmt schon ... aber die Empfangsdaten kommen trotzdem mit 5V, oder lieg ich da falsch (siehe weiter oben) ...

    ... und die MAX-Bausteine sind auf diesen Platinen schon verbaut. Kann man vllt. tauschen, wenn sie gesockelt sind aber bei smd-Teilen (wie dem hier ) dürfte das schwierig sein ;)

    bye,
    -ds-

    ???

    die Empfangsdaten von der Waage kommen doch als RS232 mit +-12V , V24 und genau das setzt der MAX um auf seine Vcc, entweder 5V oder 3,3V, der PI sendet mit 3,3V und will mit 3,3V empfangen, sind seine Ports mit 3,3V !

    es gibt doch fertige Platinen die haben 4 Pins +Vcc TxD RxD und GND, wenn dort ein Chip drauf ist der mit 3,3V zurecht kommt dann wird der eben an 3,3V vom PI angeschlossen ! dein Link sagt Voltage Range: 3~5V geht also an 3,3V

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (20. Mai 2013 um 00:23)

  • ???

    die Empfangsdaten von der Waage kommen doch als RS232 mit +-12V , V24 und genau das setzt der MAX um auf seine Vcc, entweder 5V oder 3,3V, der PI sendet mit 3,3V und will mit 3,3V empfangen, sind seine Ports mit 3,3V !

    es gibt doch fertige Platinen die haben 4 Pins +Vcc TxD RxD und GND, wenn dort ein Chip drauf ist der mit 3,3V zurecht kommt dann wird der eben an 3,3V vom PI angeschlossen ! dein Link sagt Voltage Range: 3~5V geht also an 3,3V

    Ok, das Teil direkt mit 3V3 betreiben ... na wenn das geht, ok :)

    Deshalb hatte ich ja weiter oben schon geschrieben, dass vielleicht mal einer der Elektronik-Cracks hier was dazu sagt, ob der zweite Levelkonverter überhaupt notwendig ist ...

    Was meinst Du - kann man da die 3V3 vom GPIO verwenden oder ziehen die Teile zuviel Strom?
    Dann hätte sich das natürlich ohne zusätzliche Pegelwandler erledigt ...
    Deinem Link folgend habe ich mal geschaut ... die Dinger brauchen gar nicht so viel Strom, müsste also eigentlich gehen.

    ciao,
    -ds-

  • Hi ps915,

    einen hab' ich noch:
    Wenn Du den Prozess umdrehst - also erst Tara, dann Kram rein und Kiste wieder auf die Waage und dann erst Formular ausfüllen, dann könntest Du Dir das Gepuzzle mit AJAX und so schenken, weil Du direkt bei Öffnen des Formular schon die Wiegedaten per Pi holen kannst.
    Nur mal so als Idee ...

    cu,
    -ds-

Jetzt mitmachen!

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