Hi Jungs,
da Michael sich so gut für uns ins Zeug gelegt hat, übernehme ich hier jetzt mal die Erklärung des Programms S_Plot. Jedenfalls von dem, was ich bisher verstanden habe und nutze.
S_Plot kann seriell empfangene Daten auf dem Bildschirm in Form von Kurven (Linien) darstellen (plotten). Dabei ist es egal, über welchen Port die Daten eintreffen. RS232, USB, Bluetooth usw. funktionieren. Hauptsache, es ist ein "Com"-Port, der dann auch im Geräte Manager von Windows entsprechend unter "Anschlüsse (Com&LPT)" zu sehen und aktiv sein sollte.
Mein BMS z.B. spuckt alle 2 Sekunden 20 Zellspannungen in der Form 3232,3245,3235,3236,.... usw. aus. Der Ausgang liegt an einem Optokoppler; immer wenn etwas gesendet wird, schließt dieser also seine Kollektor-Emitter-Strecke kurz. Um daraus einen digital mit dem Computer lesbaren Pegel zu machen, braucht man eine Spannungsversorgung und einen Pullup-Widerstand. Netterweise stellen die günstig bei Ebay erhältlichen USB-seriell-Wandler, wie zB:
http://www.ebay.de/itm/USB-nach-TTL-seriell-Kabel-Adapter-PC-PL2303HX-Chipsatz-USB-Kabel-Computer-Kabel-/262559615331?hash=item3d21c5c963:g:gCoAAOSwtnpXoJgZ gleich eine 5V Spannung zur Verfügung. Man muß dann nur noch von +5V (hier rot) zu Dateneingang RX (hier weiß) einen Widerstand schalten, bei mir sind es 5,6kOhm. Der schwarze Leiter ist das Bezugspotential des Rechner und kommt an den Emitter des Optokopplers, weiß auf den Kollektor. Der grüne kann Daten senden, das brauchen wir nicht und lassen ihn hängen.
Vorsicht bei den Prolific-Chips, die in den Adaptern sind: die Typen PL-2303H, HX Rev. A, X und XA sind nicht mit den aktuellen Treibern für Win 8 und Win 10 kompatibel. HX Rev. D, HXD, TA, TB, EA, RA und SA dagegen schon. Sollte man nun einen solchen älteren Chip abbekommen haben, so geht es aber mit einem Treiber für Win 7 trotzdem. Man suche nach Version 3.3 von um 2005-2009 herum oder direkt nach PL2303_Prolific_DriverInstaller_v1210.exe (Quelle zB siehe mein Beitrag vom 31. Mai in diesem thread!) und wähle bei der Installation manuell den entsprechend älteren Treiber aus.
In dem Moment, wo der USB Stecker gesteckt wird, sollte man mit dem Oszi, so zur Hand, eine 5V Ruhespannung, gefolgt von mehr oder weniger vielen L-Impulsen, also Abfällen nach Minus, sehen. Wenn das Null-Potential dabei "nur zur Hälfte" erreicht wird, ist entweder der 5,6k Pullup-Widerstand zu klein (dann zB 8,2k oder 10k wählen) oder der Ansteuerstrom des Optokopplers oder Transistors ist zu gering (Vorwiderstand verringern).
Bevor man nun die S_Plot.exe startet (siehe auch meine vorherigen Beiträge im Fred; "Kompatibilität" ist selbst unter Win10 nicht mehr erforderlich!), sollte man die zugeörige s_plot.ini bearbeiten oder zumindest prüfen, sie beinhaltet die für die Funktion wesentlichen veränderbaren Parameter (vor Änderungen immer eine Kopie "s_plot_vorher.ini" anlegen!):
- mit "Seperator" wird der Datenseparator, also das Trennzeichen zwischen zwei aufeinanderfolgenden Zellspannungen eingestellt, in meinem Fall ein Komma ",", bei Bernd und Michael wohl ein Semikolon ";". Man muß wissen, was sein eigenes Gerät an der Stelle sendet, das bekommt man zB mit den gängigen Terminalprogrammen "Hyperterminal" oder "HTerm" heraus.
- "Bautrate" kennzeichnet die Geschwindigkeit, mit der die Hardware die seriellen Daten sendet. 9600 Baud ist eine sehr verbreitete Baudrate, weitere sind zB 57600 oder (ziemlich hoch) 115200 Baud. Da ich es nicht eilig habe und es mit dem 5,6kOhm Pullup-Widerstand gerade noch geht, bleibe ich bei 9600 Baud. Wenn man es nicht weiß, kann man das auch bei Hyperterminal ausprobieren. Wenn die Baudrate falsch eingestellt ist, kommt entweder gar nichts oder Hieroglyphen an.
- "serial_timeout" ist die Zeitspanne, die das Programm S_plot auf den nächsten Dateneingang wartet, bevor es die Lust verliert und eine Fehlermeldung herausgibt. Sollte etwas länger als die typische Pausenzeit zwischen zwei Datenstrings eingestellt sein. Bei mir mit "3" perfekt.
- "framed_Checked" gibt an, ob das Programm die Unversehrtheit der eingehenden Daten prüfen soll oder nicht. Wenn "1" werden nach Programmstart zunächst ca. 20 Datenstrings auf ihre Länge hin analysiert. Das dauert bei mir recht lange. Es hat aber den Vorteil, daß wenn einer der nächsten Strings dann nicht diese Länge aufweist, das Programm sofort weiß: hier stimmt etwas nicht, diese Daten sind zu verwerfen. Wenn die Daten dagegen stets mühe- und fehlerlos eintreffen, kann man hier auch ruhig eine "Null" eintragen und das Programm zeichnet vom Start weg schon Linien.
- [SKALE] steht für die Skalierung der Werteachse bei Programmstart, vielen auch als Y-Achse bekannt. Bei Lifepo4 trägt man hier typischerweise max 3600 und min z.B. 3100 ein. "3000" deshalb nicht, weil Michael die Achse in 10 Hilfslinien unterteilt und sich 500mV nunmal "augengefälliger" durch 10 teilen lassen als z.B. 600mV. Ansonsten kann da natürlich jeder das eintragen, was er für angebracht hält. Wenn die Zellspannungen nicht als "3250" sondern als "325" ankommen, so muß man das hier natürlich entsprechend eintragen.
- alle unter [Knopf] eingetragenen Werte verändern die Werteachse, wenn die Schaltflächen unter "set values" gedrückt werden. Michael hatte hier Schaltflächen für Lipo, NiC usw. vorgesehen. Ich denke aber, daß der typische Anwender sich meist EINE Chemie anzeigen läßt und die Schaltfläche daher lieber als "Bildschirmlupe", d.h. zum "hineinzoomen" benutzt. Ich habe die obere Schaltfläche daher mit "3560-3610"mV vorbelegt, dem Spannungsbereich, den man beim Balancieren beobachtet. Die mittlere Schaltfläche hat den Bereich "3000-3200"mV, also einen Spannungsbereich, den man während der Fahrt bzw. Last sehen möchte. Da man zZt noch nicht ohne Programmneustart zu den unter "SKALE" eingestellten werten zurückkommt, habe ich der untersten Schaltfläche einen relativ großen Wertebereich von "3100-4100" mV verpaßt, sozusagen zum Herauszoomen. Hier könnte man sinnentsprechend natürlich auch den unter [SKALE] genutzten Bereich eintragen. Die Schaltfläche "Auto" liefert mir einen unnötig großen Bereich von irgendwo knapp über Null bis ca. 4000, was ich nicht haben will. Ich nutze sie deshalb nicht, genauso wenig die Schieberegler. Michael hat hier aber schon Abhilfe angekündigt und mir zwei Fenster versprochen, in die man "online" die jeweils nächstgewünschten min und max werte eintragen kann. So, Michael, jetzt kommst Du aus der Nummer nicht mehr raus ;-)
- "close" schließt das "values" Fenster und zum Glück nicht das Programm
- "Pause" setzt den Empfang und die Aufzeichnung von Daten aus
- "clear" löscht den Bildschirm, wohl aber nicht die stets parallel laufende Aufzeichnung.
- mit "zapp" kann man ein Bildschirmfoto des gerade aktuellen Bildausschnitts machen und als Bilddatei abspeichern.
- Apropos Aufzeichnung: die läuft ab erstem empfangenen Datenstring stets im Hintergrund mit. Sie kann bis zu 5000 Zeilen (also Datentelegramme bzw. -strings) aufzeichnen. Bei erreichen dieser Grenze oder bei jedem Ausschalten des Programms wird eine Datei mit dem Namen "[DatumUhrzeitAufzeichnungsende].txt" im Verzeichnis von s_plot.exe angelegt. Diese Datei ist ganz einfach zB mit Excel einlesbar und man kann sich dann alle Kurven noch einmal anschauen und aufs Netteste analysieren, interpretieren, wundern usw. Wenn die 5000 Zeilen rum sind, wird zwangsabgespeichert und eine neue Datei angefangen. 5000 Zeilen sind aber schon ganz gut, bei meiner Sendefrquenz alle 2s sind das immerhin 2 3/4 Stunden!
- zurück zur .ini:
- "Kanalauswahl" kann man per Häkchen im Programm vornehmen oder eben auch schon hier. Alle gewünschten Kanäle, auf die das Programm warten und die angezeigt werden sollen, erhalten hier eine "1". Bei meinen 20 Werten stehen dort also 20 Einsen, gefolgt von 9 Nullen. Das Programm kann bis zu 29 Werte empfangen und als Linie plotten.
- unter "Knopf_X" kann man eintragen, wie die Beschriftung des Knopf ungter "set values" aussehen soll. Bei mir Klartext oder besser: Klarzahlen.
- Chapter [PAL] beherbergt die Farben im RGB System. 255 ist jeweils Maximum und meint: "davon satt". Alles auf 255 ist daher weiß (bei mir Nr. 0, die Gitterlinien), alles auf 0 ist schwarz (bei mir Nr.31, der Hintergrund). Wenn man Farbverläufe von "leuchtend" bis "weißeingetönt" haben möchte, läßt man einfach die charakteristische Farbe auf "255" und ändert die andere
in konstanten Schrittweiten wie zB 100, 150 und 200. Auch Magenta (255,0,255) und Cyan (0,255,255) lassen sich noch gut verstehen, nur bei orange (zB 255,192,0) hatte ich meine Probleme. Hier habe ich einfach die Funktion der Hintergrundfarbe "Zelle ausmalen" von Excel genutzt: die Farbe wird dargestellt und der Wert kann unter "weitere Farben -> benutzeredefiniert" eingestellt oder abgelesen werden.
- ich persönlich bevorzuge "4er Zellkontingente" bei der Aufteilung meiner Batterien. D.h. immer 4 Zellen sind für mich eine gedachte Einheit. Geht, glaube ich, vielen von uns so, vielleicht weil das dann dem "guten alten 12V-Akku" entspricht. Wie auch immer, ich möchte kein Wirrwar von Farben auf dem Bildschirm, sondern ich möchte diese 4er Gruppen auch in den Linien wiedersehen. Jeder neue 4er Block beinnt bei mir also mit einer "knalligen" Farbe, gefolgt von bei gleichem Grundfarbton immer heller werdenden 3 weiteren Zellen. Aber auch das kann jeder für sich selbst ändern. Das geht so bis PAL_RGB29. RGB30 ist die Farbe, in der die Zeitachse (x-Achse) beschriftet ist, Diese habe ich blau gelassen. Nach einiger Zeit springt sie im Programm aber auf rot um. Warum, weiß ich nicht, störe mich aber nicht daran.
- Man kann jeden Graphen (Linie) zur besseren Darstellbarkeit mit einer individuellen Offsetspannung belegen, um so zB ein paar bestimmte Zelle aus dem Pulk herauszulösen und besser betrachten zu können. Auch dieses feature habe ich noch nicht verwendet.
Ich werde das Programm zum "Mitschneiden" beim Fahren nehmen (zB mit altem WinXP Laptop) und vor allem auch beim Laden bzw. Zyklisieren von Akkus aller Art. Als ich neulich einen 12s Fahrradakku Zyklentests unterzog, hätte ich mich darüber sehr gefreut. Was solls, freue ich mich eben jetzt auf künftige Anwendungen.
Mehr fällt mir gerade nicht ein. Mit Michaels Zustimmung rechnend, stelle ich seine letzte an mich übersandte Programmversion (Ver.0.03q) und die von mir wie hier beschrieben bearbeitete s_plot.ini nebst einer Excel Datei mit den verwendeten Farbverläufen hier
https://www.dropbox.com/sh/iinhgefkiatk9n8/AAA0apDV2oX2fcRT419GRJs1a?dl=0
Dropbox ein.
Rückmeldungen, Vorschläge usw. sind Michael und mir immer willkommen!
Viele Grüße, Lars