DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Paketverarbeitung: Bedingung soll Mittelwertberechnung über Abschnitt auslösen

Solved!
Go to solution

Hallo,

 

ich habe eine Aufgabe die ich nicht gelöst bekomme, evt. kann mir hier ja jemand weiterhelfen?!

 

Ich habe eine Messaufgabe in der Einzelwerte verarbeitet werden. Wenn dort eine bestimmte Bedingung erfüllt ist, soll über die Paketverarbeitung in einem definierten Abschnitt ein Mittelwert berechnet und angezeigt werden. Ist die Bedingung nicht mehr erfüllt, soll der letzte Wert trotzdem weiter angezeigt werden, bis zum nächsten Ereignis.

 

Um die Aufgabe besser zu verstehen, hier ein dac-Plan wie ich mir das vorstelle.....aber wie so oft, so funktioniert das nicht.Warum?

 

0 Kudos
Message 1 of 6
(4,674 Views)

Hallo,

 

so ganz verstehe ich nicht, was genau die Aufgabe ist. Ich habe aber versucht mal drei schnelle Beispiele zu bauen, die in etwa das machen, was ich denke.

 

 In Beispiel B1 habe ich statt dem Bedingungsknopf einen Button genommen, der gleich Daten liefert. Das ist einfacher, weil die Bedingungsumwandlung entfällt und die Steuereingänge in den Paketblöcken als Steuersignal Werte von 0 oder 5 erwarten (wie bei TTL-Pegeln). Es geht aber auch mit einer Bedingung, was ich in Beispiel B2 gemacht habe. Zum Testen ist es oft ganz praktisch, wenn man die Steuersignale mit anzeigt. 

 

Wichtig ist bei der Paketverarbeitung, dass alle Daten möglichst gleichmäßig und synchronisiert ankommen. Die Schalter sind deshalb über den Eingangstakt gesteuert. In aller Regel gibt es Probleme wenn man mit dem selben Takt Werte in die Paketverarbeitung steckt und wieder herausnimmt. Das sollte möglichst getrennt bleiben, weil dazwischen ja eine Zeitverzögerung stattfindet.

 

Beispiel B1 arbeitet jetzt mit einem Schalter, der die Weiterleitung der Mittelwerte freigibt, bis er wieder abgestellt wird. Ab da wird dann der letzte gültige Werte vereinzelt, bis man den Schalter wieder aktiviert.

 

Beispiel B2 leitet als Taster einen kurzen Steuerpuls weiter und liefert bei jedem Druck genau einen neuen Mittelwert, der dann solange mit dem Vereinzelungstakterzeugt wird, bis man erneut den Taster drückt.

 

Unklar ist mir noch warum mit 100 Hz vereinzelt wird, obwohl die Mittelung nur einen neuen Wert pro Sekunde liefert.

 

Unklar ist mir auch noch warum der Abschnittsblock genutzt wurde. Speziell in der Einstellung "Abschneiden bei High am Controleingang" hat dieser Block eine spezielle Funktion. Er sammelt alle ankommenden Daten und packt sie solange zu einem neuen paket, bis ein High-Puls am Controleingang ankommt. Dann leitet er ein Paket mit der entsprechenden Größe weiter und beginnt sofort wieder mit dem Sammeln für das nächste Paket. Dabei werden alle Daten, wenn auch eventuell verspätet, weitergeleitet. Diese Funktion könnte man nutzen um z.B. einen sich wiederholenden Vorgang zu verfolgt, der unregelmäßig lange dauert und der anschließend zu einem Paket zusammengepakt werden soll, dass man dann darstellen oder z.B. statistisch auswerten will. Ein typisches Beispiel sind alle Daten einer Umdrehung, egal wie lange sie dauert.

 

Wenn es ihre Aufgabe ist alle Messdaten zusammenzufassen um beim Drücken des Tasters einen Mittelwert zu berechnen, der dann gilt, bis wieder ein Taster gedrückt wird, wäre der Block dafür geeignet. Er müsste aber vor der Statistik eingesetzt werden. Das habe ich in Beispiel B3 nachgebaut.

 

 Ich hoffe, das hilft schon mal weiter. Ansonsten müsste Sie etwas genauer beschreiben, was gemacht werden soll.

 

Gruß

Ulrich Bierwisch

 

Download All
0 Kudos
Message 2 of 6
(4,643 Views)

Hallo,

 

erstmal vielen Dank für die umfangreiche Antwort! Ich habe leider vergessen zu schreiben, dass ich mit DIAdem 10.2 arbeite. Ihre Bsp. kann ich leider nicht öffnen (Fehlermeldung: inkompatible Version).

 

Um die Unklarheiten zu beseitigen und um meinen Gedankengang verständlich zu machen, warum ich den Abschnittsblock verwendet habe, habe ich mal eine Bsp.Kurve als Bild angehängt. Das ganze läuft so ab....über die Einzelwertverarbeitung läuft eine Messaufgabe. Wird jetzt ein Wert überschritten(grüne Kurve) soll die Paketverarbeitung die Messwerte der grünen Kurve sammeln und nach unterschreiten eines bestimmten Wertes der grünen Kurve die gesammelten Werte als Paket an des Statistikblock weitergeben. Hier soll ein Mittelwert errechnet werden. Die Dauer zwischen Start und Stop der Abschnittsbildung ist nicht definiert. Das Ereignis der Abschnittsbildung kann sich innerhalb eines Ablaufes auch wiederholen.

 

 

Das mit den 100Hz zum entpacken verstehe ich selber nicht 😉

 

Gruß, T.Malec

 

 

0 Kudos
Message 3 of 6
(4,620 Views)
Solution
Accepted by topic author Saibot

Hallo,

 

So ist es klar, was passieren soll.

 

In diesem Fall muss der Abschnitt-Block vor der Statistik stehen und mit der Einstellung "Weiterleiten bei High am Controleingang" verwendet werden. Man benötigt nun den oder die Datenkanäle und einen Steuerkanal. Der Steuerkanal muss mit der gleichen Abtastrate wie die Daten erzeugt werden und zwischen 0 und 5 wechseln. Bei 0 werden alle Daten verworfen. Immer wenn der Wert auf 5 springt sammelt der Abschnitt dann die Daten und wenn der Steuerkanal wieder auf 0 wechselt wird ein Paket mit allen Daten aus dem Abschnitt weitergeleitet. Im Abschnitt kann muss man noch die maximale Paketgröße festlegen, die in diesem Fall einfach so groß sein sollte, dass es in jedem Fall reicht.Mit der minimalen Paketgröße kann man winzige Pakete bei kurzen Spitzen im Signal verhindern. Das macht man aber besser auf der Einzelwertseite.

 

Ich habe noch mal ein Beispiel gebaut und versucht kompatibel abzuspeichern. Man muss dazu in den DAC-Einstellungen der Version 11 auf ANSI statt Unicode Speicherung stellen. Wenn das auch nicht klappt, könnte ich auch schauen, ob ich eine 10.2 installiere, aber so müsste es funktionieren.

 

 

 

 

 

Message 4 of 6
(4,610 Views)

Hallo,

 

super, das funkioniert! Ich kann die DAC-Datei auch öffnen.

 

Ich hatte die Einstellung "Weiterleiten bei High am Controleingang" falsch verstanden. Nachdem ich Ihre Erklärung durchgelesen habe, verstehe ich auch was mir die Hilfe dort sagen wollte.

 

Eine Frage hätte ich da aber noch: Sie verwenden dort einen Verteilen-Block....hat das einen besonderen Grund? Das spart mir doch lediglich einen zweiten packen-Block oder?

 

T.Malec

0 Kudos
Message 5 of 6
(4,604 Views)

Hallo,

 

Man könnte auch mehrere Packen-Blöcke nehmen. In diesem Fall gibt es damit vermutlich auch keine Probleme. In etwas komplexeren Fällen ist es aber immer besser, den Übergang zwischen den Systemen möglichst einfach und klar zu definieren.

 

Gruß

Ulrich Bierwisch

 

 

 

 

0 Kudos
Message 6 of 6
(4,599 Views)