Akkumessung mit einem Raspberry PI in Kombination mit einer Siemens SPS

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

    ich habe da eine Frage vielleicht kann mir die jemand hier beantworten oder etwas bei meinem Problem helfen

    Ich möchte mit einem Raspberry PI einen kleinen Akku auslesen und dann der D/A-Wandler zur Weiterverarbeitung an eine Siemens SPS weiterleiten.

    Meine Frage ist : Wie bekomme ich es hin, dass mir der Raspberry Pi zum Beispiel ein 0-10V oder 4-20mA Analogsignal ausgibt? Welche Bauteile brauche ich noch zusätzlich, denn der Raspi verträgt ja weder 10V oder 20mA.

    oder liege ich da falsch

    habt ihr vielleicht Ideen wie es einfacher geht oder Lösungsvorschläge

    (Danke schon mal im Voraus)

  • Akkumessung mit einem Raspberry PI in Kombination mit einer Siemens SPS? Schau mal ob du hier fündig wirst!

  • Moinsen,

    Teilen wir diese Aufgabe mal in zwei Teilgebiete auf !
    A) Das messen einer Spannung:
    Jetzt geht schon erst einmal die Frage los, ob das Auswerte-PI die gleiche Masse / GND haben darf ?
    Dann woher bekommt das PI seinen Strom ?
    Welche Meßgenauigkeit / Auflösung ist angestrebt ?

    Das ganze bekommst du vereinfacht gesagt mit einem ADC entweder über I²C oder SPI in das PI ! Dabei ist erst einmal zu beachten, dass du keine Spannung ohne Spannungsteiler messen kannst, die größer ist als die Versorgungsspannung des ADC Chips. PI und ADC müssen nicht mit der gleichen Vc betreiben werden, dafür muss dann ein Levelshifter ( Pegelangleicher auf 3,3 Volt) für das PI zwischengeschaltet werden.

    B) Ausgabe einer Spannung:
    Auch hier wieder wie genau soll die ausgegeben Spannung sein ?
    Sind die Vout = 10 Volt das absolute Maximum ?

    Hier kannst du dir überlegen welchen Aufwand du betreiben willst oder musst !?
    Hier musst du eine Entscheidung herbeiführen wie ?
    Du kannst mit einem DAC der nur nur einer kleinen Vc arbeitet, dafür jedoch eine Höhere Auflösung bietet, und diese Minimale Ausgangspannung dann mit einem Rail-to-Rail OPV beschaltet als Spannungsmultiplizierer verwenden um auf deine 10 Volt zu kommen. Was bei oder je nach Auflösung auch die feine Abstufung dann verdoppelt über den OPV gewährleisten würde.

    Du kannst auch ein PWM Signal direkt im PI erzeugen, glätten und ebenfalls dann aber von max. 3,3 Volt auf 10 Volt via einer Spannungsmultiplikatorschaltung erhöhen. Die mögliche Genauigkeit, abhängig von deiner Glättungsstufe wäre hier höher, aber auch anfälliger bezüglich irgendwelcher Umfeldstörungen,.
    Oder du nutzt ein Digital Potentiometer / Kombination aus mehreren, bei höheren Genauigkeiten als 10 BIT = 1204 Schritte auf die Ausgangsspannung von maximal 5 Volt die auch wieder via eine Spannungsmultiplizieres angehoben werden müsste, oder nutzt dieses DigiPot um einen ADJ Spannungsregler zu treiben.
    Mit der Kombination / Reihenschaltung mehrerer DIgiPot oder Rheostaten kannst du die Auflösung in der Summe erhöhen.

    Franky

    2 Mal editiert, zuletzt von Franky07 (3. November 2022 um 17:48) aus folgendem Grund: Klammerfehler im Text

  • Warum misst du die Spannung nicht direkt mit der Steuerung?

    Nicht alle SIEMENS-SPS haben Analogeingänge. Die Kombi-Modelle sollten aber Spannungseingänge haben (0-10V).

    Dass der RPi keine Analog-Eingänge hat, sollte klar sein.

    Strom kannst du nicht mit dem MCP3xxx nicht messen und er ist ja auf 3.3V begrenzt (aufgrund des Logik-Pegels beim RPi).

    Also musst du den Strom in Spannung umwandeln.

    R = U / I

    3.3 V / 20 mA = 165 Ohm

    Aus der E24-Reihe den nächst kleineren (kleinerer Widerstand, geringerer Spannungsfall): 160 Ohm

    Bei 20 mA fallen dann am Widerstand 3.2V ab.

    Der Messbereich müsste dann zuerst normalisiert und dann wieder auf Einheiten skaliert werden.

    Beim 160 Ohm Widerstand geht dann der Messbereich von 0.64V - 3.2V.

    Umgerechnet bei einem 10 Bit ADC wäre der Anfang des Messbereichs der Rohwert 198.

    Das Ende des Messbereichs wäre dann bei 993.

    Unterhalb der 4mA hat man einen Kabelbruch oder der Sensor ist kaputt.

    Jedenfalls kann dann der Rohwert entweder auf 0-10V skaliert werden oder man rechnet gleich direkt in die entsprechende Messgröße um (Druck, Temperatur, usw.).

    Um die Daten an die SPS zu übertragen, hast du gleich mehrere Möglichkeiten.

    Die schnellste Übertragung bekommt man mit snap7 hin. Dafür muss bei der SPS GET/PUT aktiviert werden.

    Alternativ stünde OPCUA zur Verfügung, wenn die CPU nicht zu alt ist.

    OPCUA ist bei den meisten CPUs aber auf einem Intervall von 100 ms begrenzt.

    Eine weitere Möglichkeit wären UDP/TCP-Verbindungen, die die Rohdaten senden.

  • Moinsen,

    Strom kannst du nicht mit dem MCP3xxx nicht messen und er ist ja auf 3.3V begrenzt (aufgrund des Logik-Pegels beim RPi).

    Falsch ! Siehe MCP3008-Datasheet !
    Die zu messende Maximalspannung ist an die separat einzuspeisende Referenzspannung gebunden. Zudem darf die Referenzspannung nicht größer sein als die Vc Versorgungsspannung, die jedoch wieder für die Logikpegel an den SPI Anschlüssen verantwortlich ist ! Das heißt wie auch nachzulesen, mit der Vc bestimmt man die maximal mögliche Samplingrate und mit der Referenzspannung bestimmt man die maximale zu messende Spannung.
    Und wozu hat der Mensch Levelshifter erfunden ?
    Aber wo steht überhaupt das er einen Strom messen will ?
    Da hier keinerlei Aussage getroffen wurde um welche Akkuspannung es sich handelt, sind deine ganzen Rechenbeispiele mit irgendwelchen Widerständen nur hypothetische Annahmen.

    Wie bekomme ich es hin, dass mir der Raspberry Pi zum Beispiel ein 0-10V oder 4-20mA Analogsignal ausgibt?

    Ein Spannungsaussgabe ist etwas anderes als eine zu messende Eingangsspannung !
    Auf welche Art man nun mit welcher uns allen unbekannten Auflösung eine Ausgangsspannung im Bereich zwischen 0 und 10 Volt erzeugt ist wieder an Dinge gebunden, zu dem es auch keine Spezifikation gibt.

    Und wenn du mir jetzt sagen willst und begründen kannst, das man bei gleichem Massepotential keine Strom Messung via eines Shunt mit einem MCP3X0X bewerkstelligen kann, dann solltest du vielleicht noch mal in dich gehen, und deine sehr verallgemeinernde Aussage überprüfen, bzw. das Gegenteil beweisen können.

    Franky

  • Aber wo steht überhaupt das er einen Strom messen will ?

    Wie bekomme ich es hin, dass mir der Raspberry Pi zum Beispiel ein 0-10V oder 4-20mA Analogsignal ausgibt?

    Falsch gelesen.

    Dafür brauchst du einen DAC und es gibt wohl auch DACs für Strom.

    Einmal editiert, zuletzt von RestlessMud46765 (4. November 2022 um 14:07)

  • Vielleicht eine dumme Frage, für was wird denn der RPi noch gebraucht? Bekommt man so etwas nicht auch mit einem Spannungs- / Messumformer gelöst, welcher die gemessenen Werte über eine Stromschnittstelle ausgibt?

  • Einfacher wäre es, die SPS die Analogsignale (Spannung/Strom) ausgeben zu lassen, die du mit dem RPi übers Netzwerk steuern kannst.

    Wenn der RPI hingegen ein DAC (Digital-to-Analog Converter) nutzt, ist dieser auf 3,3V festgelegt.

    Mit 5V könnte man ihn auch versorgen, benötigt dann aber noch die Pegelwandler für SPI/i2C.

    Da auch die Ausgangsspannung verstärkt werden muss, spielt es kaum eine Rolle, ob es nun von 3.3V auf 10V oder von 5V auf 10V verstärkt werden muss. Letzteres ist einfacher zu rechnen.

    Die Verstärkung kann man über einen Operationsverstärker machen.

    Auch dazu gibt es im Netz viele Grundlagen und sogar Online-Rechner, um die Widerstände für den Verstärkungsfaktor zu berechnen.

    Möglicherweise bekommst du hier, was du suchst: https://www.horter-shop.de/de/home/93-bau…0404260752.html


    Der Schaltplan wird auch zur Verfügung gestellt. Leider habe ich dort nichts für 4-20MA gefunden (nur Eingangskarten).

  • Moinsen

    Einfacher wäre es, die SPS die Analogsignale (Spannung/Strom) ausgeben zu lassen, die du mit dem RPi übers Netzwerk steuern kannst.

    Bevor ihr hier weiter herumhypotetisiert, ohne wirklich die Fakten zu kennen, ich hatte dazu bereits in meiner ersten Aussage klare Rückfragen gestellt.
    Da du und wir alle nicht wissen können, es aber auch vom TO ein Aussage oder eine Antwort dazu gibt um welche Akku-Spannung es sich handelt, bzw auch kein Verifizierung dazu gibt, ob die Vc der SPS und die des Akkus das gleiche Massepotential hat, wäre ich mit dieser Behauptung ganz vorsichtig. Das kann je nach SPS auch mal ganz schnell teuer werden, wenn dieser spezielle Umstand nicht zutrifft.

    Bekommt man so etwas nicht auch mit einem Spannungs- / Messumformer gelöst, welcher die gemessenen Werte über eine Stromschnittstelle ausgibt?

    Wenn du über hellseherische Fähigkeiten verfügst möglicher Weise. Nur dann muss du dem TO auch erklären, dass du damit eine Dauerlast auf dem Akku erzeugst, der den Akku, wenn dieser nicht aktiv geschaltet werden kann ( µC Steuerung oder das PI ) auch den Akku je nach Spannungsbereich permanent leersaugt.
    Hier beginnt das Thema was im Unbekannten liegt, ob an dem Akku nur die Leerlaufspannung, oder die Spannung unter einer definierten Grundlast gemessen werden soll. Wenn du diese Grundlast, bzw. beim Einsatz eines Spannungsteiler diese Komponenten nicht Spannungsfrei schalten kannst, bevorzugt einen OPV als Spannungsfolger mit SHDN, lutscht dir dieser Meßwandler oder Spannungsteiler vor dem ADC den Akku permanent leer. Hier jetzt auf einen besonders hochohmigen Spannungsteiler zu setzen um den Meßstrom gering zu halten, aber das im Umfeld einer SPS und damit einer wahrscheinlich maschinellen Industrieanwendung ist sowas von ( Entschuldigung ) dämlich, weil du alle Einflußgröße die über andere Signalleitungen bzw. möglicher Weise auch über Leitungssysteme von Leistungsendstufen induktiv auf dieses Messsystem übertragen werden herausfiltern muss.

    Ich gebe dir dahingehen recht, dass das PI damit wenn es nicht noch eine Protokollfunktion hat, damit vollkommen unterfordert ist, und hier jeder µC ( Auch AVR ) vollkommen genügen würde. Mehr als einen I²C Bus, dazu noch einen zu schaltenden GPIO braucht man mal von der Schaltung "Meßwerterfassung" und dem Schaltungsteil "Spannungsausgabe = DAC mit Analogmultiplizierer oder DigiPot- ADJ Spannungsregler" nun wirklich nicht.

    Franky

  • Da du und wir alle nicht wissen können, es aber auch vom TO ein Aussage oder eine Antwort dazu gibt um welche Akku-Spannung es sich handelt, bzw auch kein Verifizierung dazu gibt, ob die Vc der SPS und die des Akkus das gleiche Massepotential hat, wäre ich mit dieser Behauptung ganz vorsichtig. Das kann je nach SPS auch mal ganz schnell teuer werden, wenn dieser spezielle Umstand nicht zutrifft.

    Das sollte der TO schon wissen, dass man z.B. 12 V nicht mit dem analog-Eingang der SPS messen kann (0-10V).

    Die heutigen SPS sind so gut, dass die analogen Eingänge auch 24V überleben. Vor 20 Jahren war das noch alles viel empfindlicher.

    Das mit dem Zerstören ist mittlerweile nicht mehr so einfach wie früher. Von den Geräten habe ich genügend zusammengebaut und Fehler gemacht, um diese Aussage treffen zu können.

    Der TO muss jedenfalls noch mal genau erklären, was er will.

    Je länger ich darüber nachdenke, umso mehr vermute ich ein XY-Problem.

Jetzt mitmachen!

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