Skip to main content
jBEAM Logo

jBEAM Architektur

jBEAM basiert auf einer klaren Komponentenstruktur und kann in unterschiedlichen Umgebungen genutzt werden.

jBEAM-Architektur Betriebssystemunabhaengigkeit


Als Java-Programm ist jBEAM betriebssystemunabhängig.

Die Software jBEAM ist objektorientiert konzipiert und besteht aus einer Produzenten-Konsumenten Struktur. Die Nutzerinformation wird in einem Datenobjekt gespeichert. Events informieren Konsumenten bezüglich Stativeränderungen.

Sie haben eine Datei mit Messdaten. In diesem Beispiel eine Messdatei im Diadem Format. In jBEAM kreieren Sie eine neue Instanz der Klasse Diadem Import. Diese Klasse beinhaltet alle Informationen, wie eine Diadem Datei zu lesen ist, zusätzlich alle Informationen, wie in jBEAM Datenobjekte zu erzeugen sind. Der Diadem-Importer erzeugt in diesem Beispiel 2 Datenobjekte vom Typ Double-Channel, also Kanäle im Gleitkommaformat. Der Importer ist somit ein Produzent, der Datenobjekte „produziert“. 

Als Beispiel für einen Daten-Konsumenten wird ein Graphikobjekt vom Typ Universal-2D-Graph erzeugt. In dem Graph wird ein Diagramm vom Typ „XY-Kurve“ definiert, dessen Input nun das Datenobjekt 1 wird. Die Mess­wer­te wer­den au­to­ma­tisch aus der Dia­dem-­Da­tei als Kur­ve ge­zeich­net. Das zwei­te Daten­ob­jekt kann in einem zwei­ten Dia­gramm vom Typ „XY-­Kurve“ in der­sel­ben Gra­phik dar­gestellt werden bzw. ein zwei­ter Graph wird de­fi­niert, in wel­chem die Mess­werte als Dia­gramm vom Typ XY-­Kurve dar­gestellt werden.

jBEAM-Architektur Datei-Import
Beispiel: Datei-Import

Automatische Aktualisierung

Wird nun die bestehende Instanz des Diadem Importers modifiziert, öffnet sich ein Dialog mit Parametern für den Import. Ein Parameter ist die Datei selber. Wählt man nun eine andere Diadem Datei aus und bestätigt dies, so läuft folgender Prozess ab:

  1. Der Inhalt der neuen Datei wird geladen und in Daten-Objekten gespeichert. Wenn Kanalname bzw. –typ passen, werden die bereits bestehenden mit neuen Daten gefüllt.
  2. Die Datenobjekte informieren per Event alle ihre Konsumenten (hier die Graphikobjekte) darüber, dass sich die Inhalte geändert haben.
  3. Es ist nun Sache der Konsumenten, auf diese Information zu reagieren. In unserem Fall lösen die Graphiken ein Neuzeichnen aus.

Der Anwender kann also immer sicher sein, dass der aktuell sichtbare Zustand in jBEAM korrekt ist, ohne irgendeine Autosequenz aufrufen zu müssen.

Verzweigungen und Berechnungen

jBEAM Architektur Datei-Import mit Berechnung
Datei-Import mit Berechnung

Soll nun der eingelesene Messkanal mit einer Formel umgerechnet oder eine FFT-Analyse gemacht werden, so wird eine Instanz der Klasse „Formula Editor“definiert. Die Formel selbst ist einer der Parameter der Instanz und kann im Editor eingegeben werden.

Diese Berechnung ist nun sowohl Konsument wie auch Produzent. Sie konsumiert das „Datenobjekt 1“ und produziert das „Datenobjekt 3“. Auch in diesem Fall funktioniert die automatische Aktualisierung, wenn die Messwertedatei getauscht wird: Der Inhalt der neuen Datei wird geladen und in Daten-Objekten 1 und 2 gespeichert. Wenn Kanalname bzw. –typ passen, so werden die bereits bestehenden mit neuen Daten gefüllt.

  1. Der Inhalt der neuen Datei wird geladen und in Daten-Objekten 1 und 2 gespeichert. Wenn Kanalname bzw. –typ passen, so werden die bereits bestehenden mit neuen Daten gefüllt.
  2. Die Datenobjekte informieren per Event alle ihre Konsumenten (sowohl die Berechnung wie auch die Graphikobjekte) darüber, dass sich die Inhalte geändert haben.
  3. Die Berechnung weiß nun, dass sich die Eingangsdaten geändert haben und führt die Berechnung mit den neuen Daten aus. Das Datenobjekt 3 informiert nun seine Komponenten, in diesem Fall XY-Graph 1.
  4. Es ist nun Sache der Konsumenten, auf diese Information zu reagieren. In diesem Fall lösen die Graphiken ein Neuzeichnen aus.

Externe CEA-Komponenten

jBEAM ist ein ASAM-CEA kompatibles Rahmenwerk, welches mit externen PlugIn-Komponenten entsprechend des ASAM-CEA Standards erweitert werden kann.

Diese externen ASAM-CEA-Komponenten arbeiten in jBEAM, als ob sie interne jBEAM Komponenten wären. Da sie kompiliert sind, ist die Ver­arbei­tungs­ge­schwin­digkeit maximal.

jBEAM Architektur Externe ASAM-CEA-Komponente in jBEAM
Externe ASAM-CEA-Komponente in jBEAM

Objekt – Architektur: Klassen - Instanzen

Die Objektorientiertheit der Software jBEAM ermöglicht ein intuitives Bedienen. Trotzdem gibt es einen Fallstrick, in den immer wieder Benutzer hineingeraten, die den Zusammenhang zwischen Klassen und Instanzen nicht kennen.

Jeder Importer, jede Berechnung, jeder Graph entspricht IT-technisch einer Klasse. Diese Klasse enthält alle Logiken, die für diese Komponenten wichtig sind. Erzeugen Sie über das Menü z.B. eine neue Berechnung, dann wird IT-technisch eine Instanz dieser Klasse gebildet. Diese Instanz beinhaltet nun Parameter, die in jeder Instanz unterschiedlich sein können. Zum Beispiel können 5 Formel-Editoren angelegt werden. Dies sind 5 unterschiedliche Instanzen derselben Klasse. Jede dieser 5 Formel-Editoren können unterschiedliche Formeln oder auch unterschiedliche Eingangskanäle haben, welches in den unterschiedlichen Instanzen gespeichert wird.

Wenn nun der Benutzer im Menü auf Formel-Editor geht, wird eine neue Instanz angelegt. Im sich automatisch öffnenden Dialog kann diese parametriert werden. Will der Benutzer nun diesen schon definierten Formel-Editor nochmals modifizieren, so muss er unter „Modifizieren“ die Liste der schon bestehenden Instanzen aufrufen. Wenn er wieder auf den Menüpunkt „Formel-Editor“ geht, so wird wieder ein neuer Formel-Editor (neue Instanz) erzeugt, und der Benutzer wundert sich, dass sich der Parametrierdialog in der Initialeinstellung befindet, und seine ganzen Eingaben weg sind.

Soll also eine bestehende Komponente verändert werden, muss immer in die Liste der bestehenden Instanzen unter „Modifizieren“ gegangen werden.