Makro-Programmierung für Shimadzu UV-Vis und FTIR
Abbildung 1 (links): Beispiel für ein EasyMacro zur Messung einer Probe mit vordefinierten Messparametern
Abbildung 2 (rechts): Kontrollfenster von EasyMacro. Das LabSolutions-IR-Programm läuft im Hintergrund ab. Die Ausführung des Makros kann in jedem Schritt unterbrochen werden
Die Datenausgabe von Spektrophotometern hat seit der Zeit der mechanischen Schreiber eine lange Entwicklung hinter sich. Heute steht den Nutzern ein umfangreiches Software-Paket zur Verfügung, das verschiedenste Methoden zur Messung und Auswertung der Daten bereitstellt. Während sich die Spezifikationen – wie Messgeschwindigkeit, Signal-Rausch-Verhältnis oder Auflösung – mit jeder Gerätegeneration graduell verbessern, ist die enthaltene Software ebenfalls zu einem wichtigen Verkaufsargument geworden.
Obwohl die LabSolutions Software-Pakete bereits eine breite Auswahl an Werkzeugen anbieten, gibt es nach wie vor Bedarf nach maßgeschneiderten Lösungen zu spezifischen Fragestellungen. So suchen manche Kunden eine einfache Bedienoberfläche und automatisierte Analysen, um das Laborpersonal bei Routineaufgaben zu unterstützen. Andere Anwender benötigen spezielle Methoden der Datenauswertung, die nicht in LabSolutions integriert sind. Beide Anforderungen werden durch maßgeschneiderte Software oder Makros erfüllt. Shimadzu bietet dafür verschiedene Werkzeuge an, je nach Komplexität der Aufgabe. Welche Möglichkeiten gibt es, Shimadzu FTIR und UV-Vis Spektrophotometer durch maßgeschneiderte Software anzusteuern?
Tool | Easy Macro | VB Macro |
---|---|---|
Instrument | IRSpirit, IRAffinity-1s, IRTracer-100 | IRSpirit, IRAffinity-1s, IRTracer-100 |
Entwickler | Kunde oder Shimadzu | Shimadzu |
Anwendung | Einfache Automatisierung, starten von VB Macros | Komplexe Automatisierung, IRPilot, Validierung |
Beschreibung | Drag & Drop von vorgefertigten Code-Blöcken | Visual Basic Quellcode in LabSolutions IR |
Vorteile | Einfach zu verstehen, Verhindert Syntaxfehler, Kann komplexere Makros nachladen | Volle Integration in LabSolutions IR, Enthält VB Klassen (z.B. Formular), Ermöglicht komplexe Programmierung |
Nachteile | Nur Spektrum und Postrun automatisierbar | Endkunde hat keinen Zugriff auf den Editor |
Tabelle 1: Vergleich der Makro-Werkzeuge für Shimadzu FTIR
FTIR – EasyMacro
Der Ausgangspunkt für die meisten FTIR-Makros ist das Werkzeug EasyMacro, enthalten im Lieferumfang von LabSolutions IR. Es erlaubt den Anwendern, typische Arbeitsabläufe durch Zusammenfügen vorgefertigter Code-Blöcke zu automatisieren, wie „Probenmessung“, „Glättung“ oder „Spektrensuche“. Zwischen diesen Blöcken können Hinweisfenster mit frei definierbarem Text eingefügt werden, um beispielsweise in Landessprache aufzufordern, die Probe einzusetzen oder das ATR-Zubehör zu reinigen. Ein Beispiel ist in Abbildung 1 gezeigt.
In diesem Beispiel wird die Spektrum-Software benutzt. Schritt 1 ist der Start der Software, das voreingestellte Gerät wird in Schritt 2 initialisiert, und in Schritt 3 werden schließlich die Messparameter gesetzt. Während das Makro abläuft, wird die Mess-Software im Hintergrund gestartet. Ohne den Befehl „Scan Parameters“ würden die zuletzt eingestellten Parameter verwendet. In Schritt 4 und 5 werden zuerst der Hintergrund und anschließend die Probe gemessen. Proben- und Dateiname können im Makro fest vorgegeben werden, aber in diesem Beispiel wird vor der Messung ein Dialogfenster geöffnet, um diese Informationen einzugeben. Jedes EasyMacro beginnt mit „Program Start“ und endet mit „Program End“, um die Software nach dem Ablauf korrekt zu schließen.
EasyMacro hat den großen Vorteil, dass keine Programmierkenntnisse erforderlich sind, um ein solches Makro zu entwickeln. Die vorgefertigten Blöcke verhindern Syntaxfehler oder einen schädlichen Code. Für Anwender ist im Kontrollfenster sichtbar, ob beim Ablauf des Makros ein externer Code aufgerufen wird, und der Programmablauf kann in jedem Schritt unterbrochen werden.
Die meisten Anwender begegnen EasyMacro durch die Validierungsfunktionen der Shimadzu FTIR-Spektrophotometer, die durch solche Makros aufgerufen werden. Jeder Block von EasyMacro erzeugt einen Visual Basic Code, der von LabSolutions IR interpretiert wird.
Abbildung 3 (links): Bedienoberfläche des IRPilot
Abbildung 4 (rechts): Der »Initialize« Block aus EasyMacro konvertiert in Visual Basic Quellcode
FTIR – Visual Basic (VB) Macro
Der Visual Basic Code hinter einem EasyMacro kann extrahiert und als Basis für komplexere LabSolutions VB Makros genutzt werden. Ein sehr komplexes Beispiel ist der IRPilot aus dem Lieferumfang des Shimadzu IRSpirit, gezeigt in Abbildung 3.
Der Visual Basic Makro Editor in LabSolutions IR stellt für trainierte Spezialisten eine komplette Entwicklungsumgebung bereit. Fertig entwickelte Makros können beim Nutzer zur Werkzeugleiste von LabSolutions IR Spectrum oder Postrun hinzugefügt oder über den „Load Basic File“-Block aus EasyMacro heraus gestartet werden. Abbildung 4 zeigt einen Screenshot vom LabSolutions IR VB Makro Editor mit dem automatisch generierten Code des „Initialize“-Blocks aus EasyMacro.
Abbildung 5: Schematische Darstellung der Kommunikation zwischen LabSolutions UV-Vis und einem Host-System per Automatic-Control-Option
Abbildung 6: Autosampler-Ansteuerung als Beispiel einer LabSolutions UV-Vis Automatic-Control-Anwendung
UV – Automatic Control
In der Welt von LabSolutions UV-Vis gibt es kein zu EasyMacro vergleichbares Werkzeug, da LabSolutions UV-Vis bereits an vielen Stellen automatisierbar ist, beispielsweise durch den automatischen Export in Textdateien, vordefinierte Postrun-Berechnungen oder die Evaluierungs-Funktionen. Eine weitergehende Automatisierung von LabSolutions UV-Vis und sogar die externe Ansteuerung über kundenspezifische Programme bietet die Automatic-Control-Option. Eine typische Anwendung ist die Kommunikation zwischen LabSolutions UV-Vis und der Steuer-Software eines Autosamplers.
Die verfügbaren Befehle ähneln den Blöcken aus LabSolutions IR EasyMacro. Textdateien mit diesen Befehlen werden in einem speziellen Ordner abgelegt, den die LabSolutions UV-Vis kontinuierlich durchsucht. Wird eine „Command“ Textdatei gefunden, führt die Software die enthaltenen Befehle aus und schreibt die Resultate in die „Response“ Textdatei im gleichen Ordner.
Die Syntax dieser Kommandos ist leicht zu verstehen, und die einzige Anforderung an die Entwicklungsumgebung ist, dass Textdateien geschrieben und gelesen werden können. Da sich Nutzerrechte und Protokollierung in LabSolutions DB oder CS nicht durch diese Befehle umgehen lassen, ist der Einsatz einer solchen Software-Lösung auch in validierter Umgebung möglich. Eine bidirektionale Kommunikation zwischen LabSolutions und einem kundenspezifischen LIMS-System wird ermöglicht, indem letzteres „Command Files“ erzeugt und anschließend die von LabSolutions automatisch generierten Text- oder pdf-Dateien importiert.
Tool | LabSolutions UV-Vis Automatic Control | String Kommandos | UV-OCX |
---|---|---|---|
Instrument | UV i-Selection (UV-1900i, UV-2600i, UV-2700i, UV-3600i plus, SolidSpec-3700i) | UV-1280, UV-1900i | UV-1280, UV-1900i, UV-2600i, UV-2700i |
Entwickler | Kunde oder Shimadzu | Kunde oder Shimadzu | Shimadzu |
Anwendung | Einfache Automatisierung, Autosampler, LIMS-Anbindung | PC-Kontrolle von UV-1280, Excel Makros, Drittanbieter-Software | Maßgeschneiderte Software mit voller Gerätekontrolle |
Beschreibung | Kontrolle von LabSolutions UV-Vis über einfache Textdateien | ASCII-Kommandos für einfache Gerätekontrolle | Indirekte Gerätekontrolle über Active X Steuerlement |
Vorteile | Kommandos unabhängig vom Gerät, Einfach zu implementieren, LabSolutions DB/CS Nutzerrechte nicht verletzbar | Kommandos offen zugänglich, Kurzer effizienter Quellcode, Freie Wahl der Programmierumgebung | Nahezu vollständige Kontrolle über Gerätefunktionen, Kommunikationsfehler werden verhindert, Hilfe für Entwickler durch Microsoft IntelliSense |
Nachteile | Nur bestimmte Funktionen von LabSolutions UV-Vis nutzbar | Gute Programmierkenntnisse notwendig | Keine LabSolutions Integration möglich |
Tabelle 2: Vergleich der Makro-Werkzeuge für Shimadzu UV-Vis
UV – String-Kommandos
Der schnellste Zugang zur Gerätekontrolle durch maßgeschneiderte Software besteht in den externen Befehlen, die im Handbuch des UV-1280 und UV-1900i dokumentiert sind. Sie sind auch als String-Kommandos bekannt, da die Kommunikation durch ASCII-Zeichenfolgen (englisch „ASCII string“) erfolgt, die über eine virtuelle COM-Schnittstelle übertragen werden.
Diese Befehle werden typischerweise genutzt, um maßgeschneiderte Excel-Makros mit Gerätekontrolle auszustatten oder Treiber für Software zu schreiben, die Spektrophotometer verschiedener Hersteller einbindet. Beispiel-Quellcode für die Implementierung dieser Befehle in Microsoft Visual Basic 2015 und die notwendigen Einstellungen sind im Gerätehandbuch dokumentiert. Zur Umsetzung ist ein tieferes Verständnis der Schnittstellen-Programmierung erforderlich als bei LabSolutions UV-Vis Automatic Control.
Abbildung 7 (links): Excel-Makro für Bilirubin in Rückenmarkflüssigkeit als typische kundenspezifische Anwendung der externen Befehle
Abbildung 8 (rechts): Einfaches Gerätekontroll-Fenster in einem VBA-Formular mittels UV-OCX
UV – OCX-Kommandos
Eine weitere Möglichkeit zur direkten Gerätekontrolle bietet die Option UV-OCX. Hier wird ein Active X Steuerelement genutzt, um zwischen dem Quellcode aus VBA oder Microsoft.net Framework und dem Maschinencode des Spektrophotometers zu übersetzen. Mit dieser Option können UV-1280, UV-1900i, UV-2600i und UV-2700i angesteuert werden.
Verglichen mit den String-Kommandos erfordern diese OCX-Kommandos weniger Kenntnisse über Schnittstellen, da die Kommunikation mit dem Gerät vom OCX-Steuerelement übernommen wird. So werden auch Fehler verhindert, wie zum Beispiel das Setzen nicht zulässiger Wellenlängen-Werte. UV-OCX wird als Klasse mit vordefinierten Methoden und Eigenschaften implementiert. Dadurch entfällt die Notwendigkeit, die Übersetzung zwischen Quellcode und ASCIIZeichenfolge selber zu entwickeln.
In einer Programmierumgebung, wie Microsoft Visual Studio oder dem Microsoft Excel VBA Editor, stellt UV-OCX auch hilfreiche Funktionen bereit, wie die intelligente Code-Vervollständigung, um Syntaxfehler zu verringern.
Abbildung 9 (links): UV-OCX Steuerelement, direkt in eine Excel-Tabelle eingebettet
Abbildung 10 (rechts): Die optionale VisEase Software, die mit UV-OCX entwickelt wurde
Fazit
Makro-Programmierung ist ein leistungsfähiges Werkzeug zur Unterstützung der Kunden. Einige Makros ermöglichen Anwendungen, die nicht von der Standard-Software abgedeckt werden, während andere Makros dem Zweck dienen, zeitraubende Arbeitsschritte zu automatisieren und Anwenderfehlern vorzubeugen. Die beste Herangehensweise hängt dabei nicht nur von der Komplexität der Aufgabe ab, sondern auch von der Erfahrung des Entwicklers. Tabelle 1 vergleicht die verschiedenen Werkzeuge zur Programmierung von Shimadzu FTIR-Instrumenten, und Tabelle 2 zeigt die entsprechenden Werkzeuge für Shimadzu UV-Vis Geräte.