Elbfisch stellt eine Laufzeitumgebung und einen Kanon von Grundfunktionen zur Verfügung, mit denen unter Nutzung weit verbreiteter OpenSource-Produkte, wie die integrierten Entwicklungsumgebungen "Netbeans" und "Eclipse", Linux als Betriebssystem, "git" als verteiltes Versionmanagementsystem die teambasierte Entwicklung objektorientierter Automatisierungapplikationen ermöglicht wird. Die Programmierung erfolgt in Java.
Die Konzeption von Elbfisch basiert auf dem Grundgedanken, dass eine Automatisierungsapplikation ein Abbild des Prozesses darstellen muss, den sie steuert. Ein Prozess (eine Anlage) besteht aus Aggregaten die untereinander in Wechselwirkung stehen und wiederum selbst aus untergeordneten Aggregaten bestehen können. Eine solche hierarchische Anordnung von Aggregaten kann mit Hilfe von Elbfisch-Modulen abgebildet werden. Module können unabhängig voneinander implementiert werden, besitzen definierte, seiteneffektfreie Schnittstellen und sind, soweit allgemeingültig implementiert, in beliebigen Implementierungen wiederverwendbar.
Sowie Aggregate in einer zu automatisierenden Anlage untereinander in Wechselwirkung treten, so müssen auch die diese repräsentierenden Elbfisch-Module untereinander Informationen austauschen. Elbfisch stellt hierzu des Konzept der Signale zur Verfügung. Ein Modul nimmt Informationen von anderen Modulen über Signale entgegen und stellt anderen Modulen selbst Informationen über Signale zur Verfügung.
Ein wesentliches Feature von Elbfisch besteht in der Möglichkeit für Module, auf Prozessereignisse zu reagieren und diese zu verarbeiten. Die Vielfalt möglicher Prozessereignisse ist unbegrenzt. Diese können z.B. sein: Ablauf einer Zeit, Eintreten eines Signalwechsel auf einer Eingangsklemme, Überschreitung eines analogen Wertes, kombinatorische Ereignisse, Nichteintreten eines Ereignisses innerhalb einer Zeit, Notaus-Situationen, Abschaltung einer Anlage etc.. Module können explizit auf das Eintreten von Ereignissen warten und werden dann von Elbfisch aktiviert.
Elbfisch steuert die Module einer Applikation, auftretende Ereignisse und den Austausch von Signalen über ein Zeitscheibenverfahren (Zyklus). Z.B. werden Änderungen eines Signals durch ein Modul erst im nächsten Zyklus an alle verbrauchenden Module weitergeleitet. Auf diese Weise bleiben alle Eingangssignale für alle Module innerhalb eines Zyklus unveränderlich und damit konsistent. Damit ist die Wechselwirkungsfreiheit des Ablaufs der Module sichergestellt. Die Module können innerhalb eines Zyklus in beliebiger Reihenfolge ablaufen, ja sich sogar gegenseitig unterbrechen. Die auszutauschenden Signale bleiben in jedem Fall konsistent.
Die zunehmende Etablierung von Embedded-PC-Systemen im Bereich der Automatisierungstechnik begünstigt den lange überfälligen Schritt, auch im industriellen Umfeld objektorientierte Softwareentwicklungsverfahren einzusetzen.
Elbfisch bietet hierfür eine Laufzeitumgebung und einen Kanon von Grundfunktionen an, die die Implementierung von komplexen Automatisierungsaufgaben auf preiswerten Hardware-Plattformen in Java ermöglichen.
Wir geben dieses Projekt nun an die OpenSource Community ab. Wir tun dies mit Dank an die vielen Leute und Unternehmen, die bereits seit Jahren ihr Wissen und ihre Produkte mit Anderen teilen. Wir selbst nutzen OpenSource-Produkte seit vielen Jahren. Jetzt ist der Zeitpunkt gekommen, unsererseits ein gutes Stück unseres Wissens der Community zur Verfügung zu stellen. Möge diese Arbeit für viele von Nutzen sein - und möge sie zum Frieden auf der Welt beitragen. Letzteres weniger durch ihren Inhalt als vielmehr durch die Art und Weise, wie Menschen in diesem Projekt zusammenarbeiten – in gegenseitiger Achtung, mit dem nötigen Respekt für die Sichtweisen Anderer und in Anerkennung des Wunsches eines jeden, mit seiner Arbeit einen Beitrag für eine bessere Welt zu leisten – unabhängig von seiner Herkunft und Religion, jeder nach seinen Möglichkeiten, jeder mit dem Einsatz den er bereit ist, in die Sache zu investieren. Elbfisch ist im Rahmen verschiedener Projekte unserer professionellen Arbeit entstanden und umfasst eine Reihe von Funktionen, die uns innerhalb unseres Horizontes nützlich erscheinen. Möge Elbfisch über diesen Horizont hinauswachsen, bereichert um die Sichtweisen anderer, ergänzt um Funktionen, die sein Anwendungsspektrum erweitern.
Bernd Schuster
MSK Gesellschaft für Automatisierung mbH