INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Zeitsprünge bei der Laufzeiterfassung eines Prüfstandes



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.02.2010, 21:36
Beitrag #13

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Zeitsprünge bei der Laufzeiterfassung eines Prüfstandes
Ich hab mir mal das MusterVI angekuckt und bin zu folgendem Ergebnis gekommen: Einen Zustand gemäß dem von mir oben beschriebenen Effekt kann ich hier nicht feststellen. Aber einen ablaufspezifischen:

Erstens:
Vor (nicht nach) einem "Dateneingabe" (siehe Statemachine) muss unbedingt ein "Neue Messung starten" gemacht werden. Würde ein "Neue Messung starten" vor einem "Dateneingabe" nicht gemacht werden, würde im Cluster nicht die aktuelle Laufzeit stehen. Damit würde in einem folgenden "Dateneingabe" ein alter Laufzeitstand (oberes DBL-Schieberegister) für neu genommen werden.

Beispiel für fehlerhaften Ablauf: "Dateneingabe", "Neue Messung starten", sonstiger Case (irgendwelche müssen gemacht werden, sonst könnte man sie ja auch weg lassen), sonstiger Case (irgendwie muss die Zeit ja vergehen), sonstige Cases, "Dateneingabe": Jetzt wird ein alter Laufzeitstand übernommen. Auf jeden Fall weniger. Es muss also geprüft werden, dass die Reihenfolge der Cases immer konsistent ist.

Das Problem hierbei kommt von folgendem:
Das VI "Verstrichene Zeit" liefert ja dem Namen nach die Dauer der letzten Messung (sag ich jetzt mal so). Eigentlich solle genau zu dem Zeitpunkt, zu dem diese Dauer ermittelt wird (nämlich mit dem VI), diese Dauer auch zum aktuellen Wert der Laufzeit addiert werden (also innerhalb des Clusters). Die Dauer wird aber in einem Schieberegister zwischengespeichert - zusammen mit der bisherigen Laufzeit. Jetzt gibt es aber zwei Speicherbereiche (Schieberegister und Cluster) mit der selben Eigenschaft: nämlich Laufzeit. Zwei Speicherbereiche für eine Eigenschaft zu haben ist aber redundant - und damit überflüssig und fehleranfällig.
Hinweis: Die Funktionalität "Anhalten" kann man auch anders, und auch sehr einfach, realisieren als hier dargestellt.


Zweitens:
Das mit dem VI "Verstriche Zeit" gefällt mir nicht. Problem: Dieses VI muss zum Startzeitpunkt und zum Endzeitpunkt der zu messenden "verstrichenen Zeit" aufgerufen werden. Das geht aber nur, wenn der selbe Case zweimal aufgerufen wird: Einmal am Anfang der Messung und dann am Ende der Messung. Den selben Case zweimal aufrufen zu müssen, kann aber Probleme beim Ablauf (Statemachine) aufwerfen. Was passiert zwischen Ende und Anfang? Es würde mir besser gefallen, wenn das VI "verstrichene Zeit" in einen SubVI wäre und wenn dann dieses SubVI im Case "MyStartOfMeasure" und im Case "MyEndOfMeasure" aufgerufen werden würde.


Fazit:
Ich tippe auf einen Ablauffehler innerhalb der Schrittkette. Die Fehlerbeschreibung "plötzlich zu geringe Laufzeit" spricht dafür, dass einmal die Summe aus aktueller Laufzeit und verstrichene Zeit nicht richtig abgespeichert wurde, bevor diese Zeit wieder geladen wird.

Diese meine Überlegungen können natürlich ganz einfach widerlegt werden, indem man die Richtigkeit der Ablaufsteuerung nachvollziehbar und vollständig nachweist.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Zeitsprünge bei der Laufzeiterfassung eines Prüfstandes - IchSelbst - 19.02.2010 21:36

Gehe zu: