Möglich? Whatchdog einer Maschine mit visualisierung & Steuerung...

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo..

    Ich bin gerade dabei eine recht komplexe Maschine zu bauen, bei der ich den Raspi gern als Whatchdog, der Steuerung von teilkomponenten und als Virtualisierungsplattform nutzen möchte...

    Ich möchte mit dem Raspi in diesem Rahmen:

    Ausgangsspannungen von verbauten Netzteilen (6Stück) messen.

    Ausgangsströme der Netzteile messen.

    Temperaturen der Netzteile (6Stück), der Motoren (4-7Stück), des Kühlmediums an 2-3 Stellen erfassen (DS18B20 Sensoren?)

    Eine "Startautomatik" (SPS ähnlich) einrichten.

    Und die zustandsdaten auf nem kleinen Touchscreen (in mehreren Reitern) direkt an der Maschine und zusätzlich auch am "entfernten Rechner" zur Anzeige bringen.. (denke da ist PHP in Verbindung mit Ajax die beste Wahl, oder?)
    Braucht der Pi dafür ne Desktopumgebung?
    Könnte der Pi nen grafischen brauser direkt beim booten im Vollbild starten und das - ich nenn es mal "Maschineninterface" - darstellen?

    Geht das alles mit 1 Raspi, oder müssen es dafür mehrere Raspis / Arduinos oder Kombinationen von beidem sein?

    LG..
    Automatisch zusammengefügt:
    Nachtrag: die "Startautomatik" soll hierbei teils konventionell (bis die benötigte Spannung vorhanden ist) und via ModBus (sobald die dafür benötigte Spannung da ist) ausgeführt werden..

    Falls nicht über die GPIOS machbar, währe ein USB Adapter auf RS485 für ModBus vorhanden, ebenso ein RJ45 to RS485 Converter verfügbar, der allerdings AUCH für den separaten Steuerungsrechner benutzt wird. (Darüber werden diverse Positions-Sensoren über ModBus eingelesen).

    Einmal editiert, zuletzt von Tiieto (9. Januar 2017 um 12:46)

  • Möglich? Whatchdog einer Maschine mit visualisierung & Steuerung...? Schau mal ob du hier fündig wirst!

  • Hallo,

    das alles ist mit 1 Raspi möglich. Aber zum messen der analogen Werte, Spannung, Strom benötigt man zusätzlich A/D -Umsetzer. Das geht über Arduinos, Zusatzkarten oder IC,s auf einer Lochrasterleiterplatte.

    DS18B20 Sensoren zur Temperaturmessung kan man auch direkt anschließen.

    Zustandsdaten auf grafischer Oberfläche und Bedienung auf einem kleinen Touchscreen ist auch möglich.

    Autostart im Vollbildmodus ist auch kein Problem.

    Definitiv alles Machbar.

  • Hallo Tiieto,

    entschuldige Bitte, das ich erst jetzt antworte. Ich schaue von Zeit zu Zeit noch mal meine alten Beiträge an und dachte der Fall ist abgeschlossenn..

    Deine Frage zu den GPIO:

    Es gibt GPIO, die für spezielle Aufgaben vorgesehen sind( z.B.i2c) und es gibt GPIO zur freien Verwendung. Das solltest Du beachten. Sollten die freien Kontakte nicht ausreichen kannsst Du ganz einfach die Ports erweitern durch MCP23017. Dazu findest Du viele Quellen.

  • Und die zustandsdaten auf nem kleinen Touchscreen (in mehreren Reitern) direkt an der Maschine und zusätzlich auch am "entfernten Rechner" zur Anzeige bringen.. (denke da ist PHP in Verbindung mit Ajax die beste Wahl, oder?)

    Also ich bin zwar auch erst am Anfang der ganzen Materie (Pi, Linux, Python etc.) aber ich hätte die grafische Darstellung mittels Pythonmodul tkinter in Angriff genommen.
    Tkinter

  • Hallo Tiieto,

    da Du hier noch am Anfang stehst, erlaube ich mir, die Programmiersprache Icon ins Spiel zu bringen. In dieser Programmiersprache habe ich in den vergangenen Jahren 3 Prozessvisualisierungen und -simulationen programmiert. Und in diesem Jahr eine weitere begonnen und schon wieder beendet. In der kommenden Woche treffen sich ein paar Firmen, um zu entscheiden, ob darauf basierend eine Prozessautomatisierung entwickelt werden soll - und ggf. meine Prozessvisualisierung auch gleich die Steuerung übernimmt.

    Ich weiß, normalerweise ist die Richtung umgekehrt...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Hofei,

    sicher kannst Du das mit Tkinter erledigen und Python ist bei vielen so wieso die einzig wirkliche Programmiersprache, über die es sich nachzudenken lohnt.

    Wenn Du aber jemals unter Delphi oder auf dem Pi als Lazarus gearbeitet hättest,
    wenn Du erlebt hättest wie Du zur Entwicklungszeit Deine Komponenten einfach mit der Maus auf die schönste Position verschieben kannst,
    wenn Du erlebt hättest, wie einfach sich über den Objektinspektor wirklich alle Eigenschaften anpassen lassen und man sofort das Ergebnis der Änderung optisch verfolgen kann,
    wenn Du erlebt hättest, wie Du schon bei der Entwicklung sofort siehst wie das spätere Programm einmal aussehen wird,
    Wenn Du wüstest, wie leicht man in die vorbereiteten Formulatre ,gerade als Anfänger, nur wenig Quelltext einfügen muß um selbst anspruchsvolle Ergebnisse zu realisiern,
    hättest Du sicher etwas ganz anderes geschrieben.

    Aber Luxus den man nicht kennt wird man auch nie vermissen. Denk einfach mal darüber nach.

    MfG

    Aro

  • Hallo Tiieto,


    Hallo Tiieto,
    Deine Frage zu den GPIO:

    Es gibt GPIO, die für spezielle Aufgaben vorgesehen sind( z.B.i2c) und es gibt GPIO zur freien Verwendung. Das solltest Du beachten. Sollten die freien Kontakte nicht ausreichen kannsst Du ganz einfach die Ports erweitern durch MCP23017. Dazu findest Du viele Quellen.


    vorgesehen schon, aber - wenn nicht anders konfiguriert - fungieren alle als normale GPIO und können auch so genutzt werden. Wenn Du also kein 1wire, I2C etc. benötigst, dann kannst Du all diese betroffenen GPIO ganz normal nutzen.

    Ich habe hier mal eine Zusammenstellung der GPIO-Pins und ihrer Alternativ-Funktionen gepostet.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (16. Oktober 2017 um 23:39)

  • Na, geht das geätze schon wieder los? Nur weil du beschlossen hast in der Vergangenheit zu leben, in der GUI-Builder und Visual Programming ein Ding waren (ca 1995), in der Sprachen noch keinen Schimmer von automatischem Speichermanagement hatten, testgetriebene Entwicklung unbekannt war, es als schick galt, seinen Anwendungscode über möglichst viele onClick-Handler zu schmieren statt vernünftige Modelle, die ihre Views treiben, und Controller, die diese Views modifizieren, moderne (Touch)UIs nicht existierten, sondern Microsofts überladene GUIs das Mass aller Dinge waren, muss der Rest der Welt nicht stehen bleiben.

    Und glaub mir, ich habe genug von solchen "tollen" visuell programmierten Maintenance-Monstern unter den Fingern gehabt um zu wissen, welche Sackgasse sie darstellen. Aber der Anfang war so schön einfach....

    Übrigens kann man die rein gestalterischen Dinge die du beschreibst mit Python durchaus machen - wenn man den Qt Designer verwendet, statt das eh altbackenen Tkinter.

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Womit mal wieder beleget waere - über Dinge zu reden, von denen man offensichtlich keine Ahnung hat, ist eine schlechte Idee. Denk einfach mal drüber nach...

  • Hallo __deets__,

    Du hast ja so Recht. Jeder der Python nicht als das Maß aller Dinge hält, hat keine Ahnung von Programmierung, lebt in der Vergangenheit und sollte eigentlich überhaupt nichts mehr von sich geben. Und wenn man mit Qt Designer heute sogar das erledigen kann, was mit Delphi vor über 20 Jahren eingeführt und seit der Zeit ständig aktualisiert und verbessert wurde, dann sind das einfach schlagende Argumente, denen ich mich einfach nicht verschließen kann.

  • Aro, der einzige, der sich hier im Besitz grenzenloser Weisheit wähnt, bist du. Ich habe zu *keinem* Zeitpunkt behauptet, dieses oder andere Probleme sich nicht auch mit Lazarus (oder ICON oder was auch immer) lösen lassen, und das diese Lösungen denen in Python in irgendetwas nachstehen würden. Denn im Gegensatz zu dir fühle ich mich in meiner Wahl der Mittel nicht bedroht, weil jemand anderes zu anderen Mitteln greift.

    Aber irgendwie ist es dein Ding, in einer erstaunlichen Zurschaustellung von Analogieschwaeche deine persönlichen, negativen Erfahrungen mit irgendetwas von vor Jahrzehnten (BASIC) mit einem Ökosystem gleichzusetzen, das damit nichts zu tun hat. Und daraus nicht nur fuer dich persönlich zu folgern, dich damit nicht beschäftigen zu wollen - dein gutes Recht, wie uninformiert ich das auch finden mag, aber kratzt mich ehrlich gesagt nicht die Bohne. Doch darüber hinaus meinst du, dich despektierlich über die Wahl der Mittel *anderer*, deren Erfahrungshorizont und Entscheidungsgrundlagen du ebensowenig kennst, auslassen zu koennen. Sie als Rohrkrepierer, Retro, und generell Leute denen es offensichtlich am rechten Verstand fehlt, so das du dich herablassend anzuerbietest, uns an deiner reichen Lebenserfahrung teilhaben zu lassen. Welche Programmiersprache für Projekt

    Und *das* juckt mich.

    Wenn du Lazarus hier nicht anpreisen kannst, ohne andere Optionen als minderwertig zu erklären, sollte sich jeder der das liest genau überlegen, was er oder sie davon haelt. Denn mit den Qualitäten kann es dann ja so nicht weit her sein. Ebenso mit der Lebenserfahrung von jemanden, der sich so verhält...

  • Und die zustandsdaten auf nem kleinen Touchscreen (in mehreren Reitern) direkt an der Maschine und zusätzlich auch am "entfernten Rechner" zur Anzeige bringen.. (denke da ist PHP in Verbindung mit Ajax die beste Wahl, oder?)

    Ganz ehrlich? Vergiss PHP !!

    Gerade wenn es um GPIO's geht bietet Python die umfassensten und besten Möglichkeiten. Es stellt auch einen weitaus geringeren Aufwand dar das Konstrukt komplett auf Python Basis umzusetzen - und zugleich äußerst flexibel.

    Spontan würde ich das Konstrukt in mehrere Segmente unterteilen:
    - Hauptscript zum erfassen und direkten ansprechen der externen Hardware. Das Hauptscript speichert alle relevanten Informationen zwischen. Angebrochen werden kann es über Socket.
    - Visuelle Schnittstellen, sei es lokal oder auf anderen Computern, verbinden sich via Socket zum Hauptscript und empfangen Daten sowie senden auch Befehle.

    Die Visualisierung kann dann wahlweise direkt auf dem Pi erfolgen, oder auf einem über Netzwerk ansprechbaren anderen Gerät. Dadurch könntest du zB nur für das Hauptscript einen PiZero verwenden, sollte eigentlich headless völlig reichen. Und zur Visualisierung setzt du dann in deinem Burö ein Pi3 oder sogar einfach deinen PC ein.

    Visualisieren kannst du dann zB über eine Webseite oder Tkinter oder was auch immer....

    Bezüglich Webseite empfehle ich aber: FAQ => Nützliche Links / Linksammlung => [Python] Webserver, Websocket und ein bisschen AJAX
    Hätte den Vorteil das du auch direkt mein obigen Vorschlag ignorieren könntest und alles in einem/diesem Script unterbringst, aber auch dass selbst Python auf deinem PC läuft, oder deinem MAC was auch immer.


    Mein RoPi Projekt war anfangs ähnlich aufgebaut, auch das ziemlich erfolgreiche ROS (Robot Operating System) basiert auf Sockets: Ein Hauptscript wohin sich weitere Module via Socket verbinden.


    Je nach dem um was für eine Maschine es sich handelt und wie wichtig eine pausenlose Überwachung (watchdog) ist würde ich aber auch in Erwägung ziehen nicht ein eher anfälligen Computer als watchdog zu verwenden sondern einen Mikrocontroller.

  • Ich wollte ehrlich gesagt auch eine Sprache verwenden, die etwas näher an der Maschine ist als PHP..

    So wird es dann also Python...
    Ich hoffe ihr habt viel Geduld mit mir...
    Ich kann bis dato null was Python angeht...

    Die Unterteilungen in Scriptbereiche (Segmente) find ich klasse...
    Man kann einen Teil umbauen ohne den anderen zu gefährden... [emoji106][emoji39]

    Muss jetzt aber erstmal Tutorials wälzen - Python lernen... [emoji37][emoji39]

Jetzt mitmachen!

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