Grafische Darstellung von Messwerten

  • Hallo Zusammen,


    ich hab mal wieder eine Idee und bräuchte Eure Hilfe zur Umsetzung. Da meine Programmierkentnisse immer noch nahezu 0 sind stell ich das hier mal ein und hoffe auf Eure Unterstützung.


    Die Idee ist eigentlich relativ simpel, es geht darum Strom, Temperatur und Durchfluss auf dem PC darzustellen. Mit der Hardwareseite komm ich klar aber bei der Software hapert es gewaltig.
    Hab das ganze mal im Excel aufgezeichnet wie ich es mir grafisch vorstelle.


    Unbenannt.JPG


    Als Signalwandler hab ich mir folgendes vorgestellt einen DLP-IO14. Das ist eine USB Messwandler mit 14 Digitalen und Analogen Eingängen sowie einen Eingang für einen Temperaturfühler (Datasheet hab ich im Anhang). Dieser Messwandler kann über ASCII angesprochen werden was ja mit AutoIt möglich ist.


    Als Input habe ich folgende Signale zur Verfügung:
    3x 0-5V als Strommessung vom Externen Messwandler
    1x 1000 Imp/l vom Durchflusssensor (maximal werden es ca. 30000 Imp/l sein für 30 l/min)
    1x Temperatursensor


    Und jetzt dazu wie das ganze Funktionieren soll:
    Stommessung: Das Programm soll die 3x 0-5V Signale zusammenzählen und daraus einen Mittelwert bilden, diesen Mittelwert dann in der oberen Zeile als “CURRENT XX,XXA“ anzeigen. Des weiteren soll in der Mitte diese Feldes eine Prozentanzeige sein die den Prozentualen Wert des aktuellen Messwertes zum maximalen Messwert anzeigt. Gleichzeitig soll der Prozentuale Wert auch grafisch als Balken angezeigt werden, wobei der Balken von 0%bis 75% grün sein soll von 75% bis 90% gelb und von 90% bis 100% rot.


    Temperaturmessung: Die ist eigentlich ganz einfach da soll nur der gemessene Wert im zweiten Balken links als “TEMP XX,XX°“anzeigen.


    Durchflussmessung: Hier habe ich das Signal von 1000 Imp/l zur Verfügung. Dieses Signal soll dann in l/min umgerechnet werden und unten rechts als “FLOW xx,xx l/min“ angezeigt werden. Auch dieser Wert soll zusätzlich grafisch prozentual via Balken angezeigt werden, je doch hier sollen 0% bis 30 % rot, 30% bis 50% gelb und 50% bis 100% sollen grün sein


    Auch möchte ich gerne das beim Überschreiten bestimmter Grenzwerte ein Relais auf diesen Messwandler schaltet.
    Die Grafische Darstellung soll mit einen anderen Programm verknüpft sein also die soll nur angezeigt werden wenn dieses Programm auch im Vordergrund auf dem Bildschirm ist.



    So Das war es erst mal ich hoffe es ist alles einigermaßen verständlich. Falls etwas nicht verständlich ist einfach nachfragen ich probiere dann es zu erläutern.


    Und wegen der Bezahlung, ich hab keine Ahnung was man dafür verlangen kann weil ich den Aufwand absolut nicht einschätzen kann aber man wird sich dann sicher einig darüber.


    Danke schon mal

  • Hi,


    die Hardware ist noch nicht einsatzbereit. Wollte erst mal schauen ob das so überhaupt möglich ist wie ich mir das vorstelle und mit was für Kosten ich etwa rechnen müsste.


    Aber ich habe mich jetzt selber noch n bisschen mit der Hardware beschäftigt und hab noch ne einfachere Möglichkeit gefunden.
    Ich werde das ganze jetzt über einen Arduino realisieren. Dieser kann ja die gemessenen Werte an der seriellen Port übertragen.


    Ich werde das alles mal provisorisch aufbauen und dann hier mal die aufgezeichneten Werte posten.


    Danke

  • So ich hab das jetzt mal mit dem Arduino programmiert und testweise aufgebaut.


    Das sind die Daten die ich von Arduino bekomme:
    22.JPG


    Das Signal von den Stromsensoren und dem PT100 sind Analogwerte von 0-1024. Die kann man ja dann in der Software verwenden z.B. 0 = 0% und 1024 = 100% aber das kann ich ja dann einstellen wie ich will.


    Ich hoffe hier ist nun einer der sich der Sache annehmen könnte


    Danke

  • Der Arduino besitzt A/D-Wandler mit einer Auflösung von 10 Bit.
    Deshalb Werte von 0...1023. Der PT100 dürfte ein Temperatursensor sein. Die gibt es IMHO mit unterschiedlichen Temperaturbereichen und -kennlinien.
    Die Umrechnung in Grad ist bei den Dingern recht aufwendig, weil die Kennlinie nicht linear ist. Mir sind die DS18B20-Sensoren lieber.
    Bei den Stromsensoren sollte der TO auch mal dazuschreiben, wie dort die Umrechnung V -> A aussieht (Datenblatt).

  • Ist zwar ein bisschen OT, aber ich habe im Zuge meiner Bachelorarbeit ebenfalls mit einem Arduino Messungen durchgeführt. Der dafür gebastelte Plotter sieht in etwa so aus:2017_05_03_14_03_30.png

  • @Bitnugger Okay dann hab ich das nicht richtig verstanden :rolleyes:


    Der PT100 ist über einen abgeglichenen Messwandler an den Arduino angeschlossen, hier bekomme ich also für 0°C bis 50°C ein Signal von 0-5V und vom Arduino dann 0 bis 1023.


    Stromsensoren habe ich die HLSR 10-P von LEM eingeplant (Datenblatt ist im Anhang) auch hier bekomme ich das 0-5V Signal und vom Arduino wieder die 0 bis 1023.


    Reicht das?


    hlsr-p_series.pdf

  • Reicht das?

    Ich denke schon... wobei... wie @Oscar schon dazu schrieb:

    Die Umrechnung in Grad ist bei den Dingern recht aufwendig, weil die Kennlinie nicht linear ist.

    Für eine genaue Berechnung müssen nicht lineare Kennlinien mit einbezogen werden - die bräuchte ich dann in auswertbarer/tabellarischer Form. (Temperatur, StromSpannung und Durchfluss)
    Die Frage ist also: Mit welcher Formel sollen die Werte berechnet werden?


    Als Input habe ich folgende Signale zur Verfügung:
    3x 0-5V als Strommessung vom Externen Messwandler

    3x 0-5V als StromSpannungsmessung... du bekommst Volt, in deiner ersten Abbildung wird aber der Strom angezeigt... Current 5,00A - das verstehe ich nicht so recht - soll hier Volt in Ampere umgerechnet werden?!



    __
    PT100 Kennlinie in Tabellenform

  • @Bitnugger mit "3x 0-5V als Strommessung vom Externen Messwandler" hab ich eigentlich gemeint das der externe Messwandler mir den Strom in Spannung umwandelt und ich die dann an den Arduino anschließe.


    Hier nochmal mein Messaufbau ich hoffe das ist verständlich:


    Strommessung: Hier habe ich die HLSR 10-P Halleffeksensoren die mir den gemessenen Strom in eine 0-5V Signal umwandeln, dieses Signal hänge ich dann an einen Analogeingang des Arduinos der mir aus dem 0-5V Signal mittels A/D Wandler in die beschriebenen Schritte 0 bis 1023 umwandelt.


    In der Software hab ich mir gas ganze dann folgendermaßen vorgestellt: Ich kann irgendwo die Abhängigkeit der Werte die vom A/D Wandler kommen zum angezeigten Wert einstellen.


    Das ganze natürlich drei mal da ja drei Sensoren.


    Temperaturmessung: Hier habe ich den PT100 Messwandler von Pollin (Datenblatt ist im Anhang) dieser wandelt mir den Widerstandswert des PT100 ja auch wieder zu einem 0-5V Signal um, dieses hänge ich dann wieder an einen Analogeingang des Arduinos der mir aus dem 0-5V Signal mittels A/D Wandler in die Schritte 0 bis 1023 umwandelt. Also muss hier die Nichtlinearität nicht berücksichtigt werden oder?


    In der Software hab ich mir das dann gleich vorgestellt wie bei der Strommessung.


    Durchfluss ist ja klar hier bekomme ich die Impulse pro Sekunde vom Arduino.



    Die verfügbaren Signale die die Software verarbeiten soll sind also immer 0 bis 1023


    Ich hoffe das bringt ein bisschen Klarheit :/

  • Ok, habe verstanden, dann ist es halt eine Strommessuung... was aber eh keinen Unterschied für die Progressbar macht. :D


    Einen Fehler habe ich in deinem ersten Beitrag aber noch gefunden... und zwar bei den Farbwerten! :)


    Hier überschneiden sich die Bereiche...

    wobei der Balken von 0%bis 75% grün sein soll von 75% bis 90% gelb und von 90% bis 100% rot.

    jedoch hier sollen 0% bis 30 % rot, 30% bis 50% gelb und 50% bis 100% sollen grün sein

    Richtig wäre z. B.:
    a) 0% - 75% grün, 76% - 90% gelb, 91% - 100% rot
    b) 0% - 30% rot, 31% - 50% gelb, 51% - 100% grün



    Also muss hier die Nichtlinearität nicht berücksichtigt werden oder?

    Bei einer nicht linearen Kennlinie müssen die gelieferten Messerwerte korrigiert werden. Wann, wo und ob dies geschehen muss, ist abhängig von der Schaltung und der Frage, ob du mit dem Fehler leben kannst...


    Wo sollen die Progressbars angezeigt werden?
    - innerhalb deiner GUI
    - relative Position zu deiner GUI

  • Die Nichtlinearität von Pt100 im Bereich bis 50°C kannst du fast vernachlässigen. Hier ist die Differenz der Widerstandwerte pro 5°C zwischen 1,95 - 1,93 Ohm. Wenn das nicht genau genug ist, einfach linear interpolieren, oder vereinfachte Formel für Temperatur > 0°C:


    Rpt = R0 * (1 + (dT * a) )


    R0 - Widerstand bei 0°C (z.B. 100 Ohm)
    dT -Delta T zwischen der momentanen Temperatur und 0°C (bei 40°C dT = 40K)
    a - 0,00385 K-1 (Wert nach DIN43760; andere Standards haben leicht andere Werte)

  • Wenn ich das Datenblatt in Post#11 richtig deute, dann übernimmt der Messwandler bereits den Ausgleich der Nichtlinearität.
    Die Temperatur sollte damit bereits extern korrekt ankommen.


    Bei dem Datenblatt zum "HLSR 10-P" finde ich es etwas verwirrend, dass da als Ausgangsspannung 0...5 V angegeben wird, aber weiter unten bei "Theoretical sensitivity" steht dann 80 mV/A.


    Frost0071: Kannst Du bestätigen, dass die Ausgangsspannung wirklich von 0...5 V geht? Dann würde da intern bereits eine Umwandlung passieren. Das interessiert mich auch für ein eigenes Projekt.

  • @Bitnugger mit den Prozenten hast Du natürlich recht :Face: und wegen der Anzeige am liebsten hätte ich es wenn es mir direkt im Programm angezeigt wird, weil das Programm eigentlich dauernd im Fullscreen Mode auf dem PC läuft.


    Wegen dem PT100 ist es eigentlich so wie Oscar sagt: Die externe Elektronik übernimmt die Kompensation der Nichtlinearität.


    @Oscar so wie ich das verstehe haben die Stromsensoren einen 0-5V Ausgang. Sie werden ja auch extra dafür beworben das sie an Mikrocontrollern funktionieren. Sonst hätte ich die gar nicht gefunden. Ich habe sie jetzt mal bestellt sollten eigentlich diese Woche noch kommen dann kann ich ja mal ausprobieren und berichten.

  • Schau mal, ob du hiermit schon was anfangen kannst... und ob die Berechnungen richtig sind.


  • Wow das sieht ja schon gut aus :thumbup: sieht ja schon fast so aus wie ich es mir vorgestellt habe


    Aber was meinst Du mit Berechnungen? Ehrlich gesagt kann ich da mit meinen laienhaften Kenntnissen nix erkennen :/

  • Wow das sieht ja schon gut aus

    Ja, finde ich auch... ;)


    Aber was meinst Du mit Berechnungen?

    Nun, du sagtest, dass für jeden Sensor ein Wert von 0-1023 übergeben wird, welcher mit einer Formel, die abhängig vom Typ des Sensors ist, umgerechnet werden muss, um das Ergebnis dann in einer Progressbar anzuzeigen.


    In der Demo habe ich die Formeln für die Umrechnung gekürzt, so dass letztendlich nur noch ein Umrechnungsfaktor benötigt wird. Deine Aufgabe ist es nun, die zweite Demo zu testen und mir dann zu sagen, ob die Werte/Farben alle stimmen. Schau dir die zweite Demo einfach mal an, wenn dann noch Fragen offen sind, dann her damit.


    Problematisch ist noch die Positionierung der Controls - vor allem die Skala. Dieser Teil ist eine echte Herausforderung... weil sich die Parameter für die Berechnungen nicht analog zur Größe und den gesetzten Attributen der verwendeten Fonts ändern! :cursing:


    Dafür brauche ich noch ein wenig Zeit...



    Progress_Demo3.png Progress_Demo3_Skala.png

  • @Bitnugger ich wollte Dich nicht stressen mit meiner Frage ob Du schon weitergekommen bist! Bitte nicht falsch verstehen ;) gut Ding braucht Weile


    Etwas ist mir beim rummspielen schon aufgefallen und zwar wenn die Balken ihre Farbe ändern oder auch kurz davor verschwinden die "Zahlen" hier mal 2 Bilder was ich meine:
    1.JPG2.JPG


    Und dann hätte ich noch gern die Farbe der Anzeige geändert, für den Hintergrund habe ich es mit der Farbe 0xFFFFFF hinbekommen allerdings weis ich nicht wo ich dann die Farbe der Schrift ändere? Die soll einfach schwarz sein ;)
    3.JPG


    Jetzt noch mal zu den Werten. Müssen diese fest programmiert werden von Dir zwegs Umrechnung? Weil den tatsächlichen Durchflusswert weis ich noch gar nicht :rolleyes: .


    Strom muss ich auch noch messen wird sich aber denk ich irgendwo bei 10A bewegen.


    Temperatur sind 50° das passt.


    Lassen sich im nachhinein diese Werte nicht mehr so einfach ändern? Oder wie funktioniert das?



    Und das es so eine Herausforderung ist war mich echt nicht bewusst :/ aber schon mal vielen Dank für deine Mühe :thumbsup::thumbsup::thumbsup: