Page 1 of 1

Optimierungsvorschläge zur Messwertspeicherung

Posted: 04 Dec 2018, 19:38
by krambambuli
Hallo zusammen,

ich nutze aktuell den RevPi3 mit 3 DIO und 5 AIO Modulen. Die DIO Module sind links vom Core3 und die AIO Module rechts angeordnet.
Aktuell nehme ich damit Messwerte für Kraft (AIO Module 4-20mA) und Weg (DIO Module mit je Encodern, ca. 900 Impulse / Sekunde pro Encoder) auf. Insgesamt 20 Kraftwerte und 10 Wegwerte pro Abfrage. Ich frage die Werte zyklisch mit meinem Python Programm mittels RevPiModIo2 ab (alle 200ms).

Ich hatte die Messungen zuvor in einem einfachen Aufbau getestet und es kamen super Werte raus (ein RevPi Core3 + 1DIO + 1AIO).
Bei dem "großen" Aufbau kommt es nun zu Verzögerungen bei der Messwertaufnahme (siehe Bild im Anhang). Änderungen der Kraft und des Weges werden teilweise falsch bzw. verzögert dargestellt. Meine Vermutung ist, dass es an der erhöhten Zykluszeit vom Prozessor und piBridge liegt:
- piBrige: zuvor = 6ms, aktuell = 27ms
- Prozessor: zuvor = 50ms, aktuell kommen Fehlermeldungen daher habe ich sie zum Testen auf 60ms erhöht

Hat vielleicht jemand eine Idee wie ich die Werte wieder flüssiger protokollieren kann? Die Diagramme sollten linear sein (Kraft-Weg-Diagramm im elastischen Bereich).

Viele Grüße!
Kristian

Re: Optimierungsvorschläge zur Messwertspeicherung

Posted: 05 Dec 2018, 16:17
by RevPiModIO
Hmmmmm :?:

Da würde mich mal interessieren, ob du einen eigenen Loop zum protokollieren hast oder den .cycleloop aus RevPiModIO verwendest... Mit "Zykluszeit vom Prozessor" meinst du die .cycletime vom RevPiModIO?

Gruß, Sven

Re: Optimierungsvorschläge zur Messwertspeicherung

Posted: 05 Dec 2018, 16:25
by krambambuli
Das Programm läuft mittels kivy GUI, also dauerhaft. Ich nutze RevPiModIO2 und ja ich meine die .cycletime mit Prozessorzeit ;) Autorefresh = True wurde beim Starten der App initialisiert und Abgefragt werden die Werte dann immer einfach wenn ich sie brauche. Das heißt, wenn eine Messaufgabe gestartet wird, startet ein neuer Thread mit Timer der alle 200ms die Daten an z.B. rpi.io.I_1, I_2, ... abfragt.

Beste Grüße!

Re: Optimierungsvorschläge zur Messwertspeicherung

Posted: 06 Dec 2018, 08:55
by krambambuli
Ich denke ich habe eine erste Verbesserung gefunden. Die Threads zum Auslesen der Daten haben in while Schleifen die Werte abgefragt. Damit diese Schleifen nun nicht dauerhaft laufen werden sie jetzt nach jedem Durchlauf für 100ms angehalten. Jetzt läuft die Messwertaufnahme schon deutlich besser und die Warnung zur überschreiten der Zykluszeit kommt nur noch sporadisch :) Diagramme sehen nun annähernd linear aus.