Wie ginge es besser?
Zatocil: Unser Ziel war es, eine Messgeräteautomatisierung zu implementieren, welche die schnelle und robuste Umsetzung neuer Messaufgaben ermöglicht. Die passende Lösung hierfür stellte letztlich eine zentrale Bibliothek, welche die Grundfunktionen der Laborgeräte abbildet – getrennt in Kommunikations- und Geräteklassen.
Bei der Umsetzung des eigenen Automatisierungsskriptes wird einfach auf die Bibliotheksfunktionen des jeweiligen Geräteobjekts zurückgegriffen und eben jene Bedienschritte ausgeführt, die am Gerät selbst erfolgen würden. Wir haben also großen Wert auf eine intuitive Schnittstelle gelegt.
Ein wesentlicher Vorteil dieses Ansatzes ist, dass viele Standardfeatures bereits in den Bibliotheksfunktionen implementiert sind. Der Anwender braucht sich damit gar nicht mehr herumplagen, sondern kann die Funktion direkt einsetzen. Zudem ist es völlig unerheblich, ob über RS232 oder Ethernet mit dem Gerät kommuniziert wird. Das ist alles in einer Kommunikationsklasse abstrahiert und spielt beim Bedienen des Geräts keine Rolle. Die Schnittstelle zwischen Kommunikationsklasse und Geräteklasse ist fest definiert und unabhängig von der verwendeten Kommunikationshardware.
Wenn Sie im Labor Ihr Gerät bedienen, ist es Ihnen ja auch einerlei, ob es einen seriellen oder einen Netzwerkanschluss hat – Sie wollen Ihre Messaufgabe lösen. Das haben wir auch mit unserem Ansatz versucht abzubilden.
Wie kann man sich nun so ein Automatisierungsskript vorstellen?
Zatocil: Wenn ein Entwickler seinen Aufbau automatisieren will, muss er zunächst für jedes Gerät ein Kommunikations- und ein Geräteobjekt instanziieren. Das Kommunikationsobjekt muss dabei natürlich der Schnittstelle des jeweiligen Geräts entsprechen, also z.B. TCP/IP. Dem Geräteobjekt wird bei der Instanziierung das Kommunikationsobjekt übergeben – fertig. Nun kann über die standardisierte Schnittstelle mit dem Gerät kommuniziert werden.
Wer darauf aufbauend ein einzelnes Gerät in seinem Aufbau austauscht, z.B. ein Oszilloskop, muss in meinem Automatisierungsskript lediglich das passende Geräte- und Kommunikationsobjekt instanziieren. An dem restlichen Skript ändert sich nichts, da ja die Geräteschnittstellen standardisiert sind.
Potenziell wird über den gewählten Ansatz auch reaktiv getestet. Der Testaufbau kann also auf gewisse Ereignisse reagieren und beispielsweise die Ausgangspannung aufgrund von Temperaturschwankungen vollautomatisch anpassen – das ist ziemlich einfach möglich.