-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Absturz in der Startphase #5
Comments
Hallo Reinhard, danke fürs Lob. Freut mich das du mein Projekt nutzen willst.
Nachher:
Wenn das nicht hilft, könntest du vielleicht ein paar zusätzliche Ausgaben einbringen um besser zu sehen wo es abstürzt oder kurze Pausen um den Punkt besser anhalten und erkennen zu können. Beispiel für Ausgabe (ab Zeile 124):
Das sich Modbus geändert hat war mir noch gar nicht aufgefallen denn ich habe einige Zeit an dem Projekt nichts erweitert, werde es aber testen und ggf. ins nächste Update bringen. Vielleicht kannst du den Fehler näher eingrenzen und wir kommen wenn du dich wieder meldest dem Problem auf die Schliche... Viel Erfolg! |
Hallo Reinhard, freut mich das du es eingrenzen konntest. Ja stimmt die "Hello World" Methode ist nicht schön, aber effektiv, nur leider recht zeitinzentiv weil die uploads zum teil doch einige Zeit dauern. Aber beim Programmieren lebt man halt oft vom "try and error". Da in der Funkton "checkMB" in der "modbus.h" nicht so viel passiert, hätte ich eine Idee oder Vermutung. Es wird am Ende falls mehrere Fehler aufgetreten sind ein reboot eingeleitet. Meine Idee, viellicht hast du in der parameter.h den Wert für den Modbus-Reboot versehentlich auf 0 gesetzt. Die Probleme mit den unrealistischen Werten, kenne ich von meinem Display auch. Es wird wohl genau wie du vermutest hast, mit doppelten Registern zusammenhängen. Ich denke immer dann wenn es einen Wechsel der Werte von positiv nach negativ innerhalb der Registerabfragen kommt, erscheinen die hohen Werte. Da kommt mir die Idee, das ich bei mir mal beobachten muss ob die hohen Werte auch kommen wenn längere Zeit eine Überschuss oder Bezug ansteht. Bei dem Wetter heute, wird es aber wohl Bezug sein (und Sonne ist jetzt ehe weg). Denn dann gibt es keinen Wechsel im Vorzeichen. Aber aktuell regelt die Batterie immer bei +/- 0 rum. Ich habe nicht noch eine Idee für eine Anpassung im Bereich der modbus.h die den Fehler ausblenden würde.
Ich melde mich wieder wenn ich es bei mir wieder am laufen habe und noch was gefunden habe. Viele Grüße Nico PS: wenn mein aktueller Fehler weg ist sind die Warnungen bestimmt auch alle behoben, denn die spuckt er mir auch auch aber läuft dann nicht weiter. |
Hallo Nico, Ich habe mal testweise das Auslesen des "gridPower"-Wertes zusammengelegt. Die Probleme sind nun weg.
In der Anwendung sieht das dann so aus:
Damit das ganze dann in Ordnung kommt, müsste das Konzept von modbus.h wohl dahingehend nochmal überarbeitet werden. Viele Grüße |
Hallo Reinhard, wie schön das Projekte hier im Github auch immer wieder von Ideen anderer leben. Dein Ansatz ist sehr gut und mit Sicherheit der Grund für das Problem. Ich habe es gleich getestet und auch ohne meine Anpassung von gestern ist jetzt kein falscher Wert mehr gekommen. Somit baue ich dein Vorschlag natürlich sofort, in die Software ein und werde eine neue Version hochladen. Ich mache mich mal an die Arbeit und baue deine Idee ein... |
- Issue #5 Doppelregister werden jetzt ohne delay abgefragt - Kleine Anpassungen um Warnungen beim kompilieren zu vermeiden Fehlerbehebung in der Darstellung im Homescreen nach dem Screensaver
…266" anders benannt - Issue #5 "MODBUSIP_PORT" geändert in "MODBUSTCP_PORT"
Hallo,
Dieses Problem konnte ich erst nicht nachstellen. Ich hatte nicht sofort gemerkt dass nach dem Update nicht sofort die richtige Bibliothek verwendet wurde.
So musste ich die Version V1.03 noch nachschieben. Zudem habe ich noch ein paar Anpassungen, bezüglich Fehler die mir jetzt mit neuer Version der ArduinoIDE aufgefallen sind, eingebaut. Viele Grüße Nico |
Hallo Nico, Übers Wochenende komme ich nicht dazu, das mal näher zu untersuchen. Ich habe erstmal die vorherige Version wieder eingespielt. Viele Grüße |
Hey Reinhard, ich hab es am Wochenende auch nicht geschafft. Das Problem hatte ich bei mir nicht sofort, aber zwischendurch kam der Fehler auch. Somit konnte ich es schon eingrenzen. Etwa so habe ich es gemacht:
Ich finde die Lösung nur noch nicht so schön, ich muss mal prüfen ob ich es irgendwie in eine Funktion baue, damit es nicht so oft drin ist. Viele Grüße Nico |
- Issue #5 Doppelregister nochmal umgebaut - Softwareversion umgezogen von parameter.h (parameter.temp.h) nach EMD_1.ino - Fehler für Warnung in der update.h behoben
Hey, habe jetzt einiges in V1.04 und der modbus.h umgebaut. Ich habe dein Prinzip mit "DoppelRegister" genutzt für alle Variablen die doppelt gebraucht werden. Jetzt fülle ich die Register direkt und nicht erst "registerBuffer.sr[0]" und so muss ich den nicht vorab leeren. Trotzdem hatte ich vorher schon ein leeren der Variablen in der Funktion "mbCalcInt32()" die ich jetzt auch auf die neuen "DoppelVariablen" umgebaut habe. Wenn du trotzdem eine Idee hast wie es schöner oder besser geht, bin ich für alles offen und lerne gerne dazu. 😉 Viele Grüße |
Hi Nico, Ich habe deine Änderungen heruntergeladen und getestet. Alles läuft bei mir so weit so gut. Einen Vorschlag hätte ich noch:
Die DoubleRegister Struktur enthält bereits eine typgerechte Speicherüberlagerung. Ich habe das hier mal wieder für den Wert von gridPower beispielhaft eingetragen. gridPower = gridPowerReg.dr kann direkt zugewiesen werden und der Funktionsaufruf von mbCalcInt32 wird damit unnötig. Auf meinem ESP32 funktioniert das. Eine anschließende 0-Zuweisung auf die Registervariable war bei mir nicht erforderlich. Viele Grüße |
- Issue #5 Vorschlag für die Nutzung der DoubleRegister übernommen - Anpassung im ModbusTimeout, dieser hat zu lange gedauert
Hallo Reinhard! Cool, so einfach kann Programmierung sein 😉! Zuvor hatte ich das Prinzip mit der Struktur von "DoubleRegister" noch nicht ganz verstanden. Aber ich glaube jetzt kann ich folgen. Danke für deine Guten Tipps und deine Mithilfe! Viele Grüße Nico |
Hi Nico,
Viele Grüße |
- Issue #5 Nachtrag für die Initialisierung der DoubleRegister übernommen
Hey, stimmt es macht Spaß, wenn die Zusammenarbeit klappt. Ich freu mich immer wenn ich dazu lernen kann 😉. Dieses mal hat es nur ein wenig gedauert, mein Mac hat von Mi auf Do ein Update gemacht und danach wollte die ArduinoIDE nicht mehr, es kam immer die Fehlermeldung Dein Problem konnte ich noch nicht beobachten, wenn aber dein Nachtrag die Abhilfe ist sieht man es ja auch nur wenn der ESP startet. Da es kein Nachteil sein kann habe ich es übernommen. Danke noch mal und schöne Ostertage (wenn nicht an Ostern noch neue Ideen komme 😊). |
Schöne Ostertage für dich und deine Familie. |
Hallo Nico,
zunächst mal meine Anerkennung für die aufwändige Arbeit.
Ich habe versucht, das Projekt bei mir zum Laufen zu bringen und scheitere aktuell mit einem Absturz in der Boot-Phase des Systems (siehe Screenshot unten).
Nach deiner Anleitung habe ich alle erforderlichen Bibliotheken installiert und das Projekt übersetzt. Dabei ist aufgefallen, dass das Precompiler-Symbol MODBUSIP_PORT nicht mehr existiert, sondern jetzt MODBUSTCP_PORT zu verwenden ist. Weitere "breaking changes" habe ich bis zur Compilierfähigkeit nicht gefunden. Lediglich ein paar Compilerwarnungen mit "ISO C++ forbids converting a string constant to 'char*'" erscheinen. Installierte Hardware ist lediglich das 2,8" Display-Board und der ESP32 von AZ-Delivery. Eine Verbindung zum Wetter habe ich aktuell nicht eingetragen.
Das Programm startet durch bis zum Aufbau des grafischen Displays. Wifi-Connect ist OK, Connect zum E3DC ist OK und liefert korrekte Daten, das leere Bild mit der E3DC-ähnlichen Abbildung erscheint, dann kommt der Absturz mit dem Reboot. Hast du eine Idee?
Beste Grüße
Reinhard
The text was updated successfully, but these errors were encountered: