Makro-Programmierung für Shimadzu UV-Vis und FTIR

Makro-Programmierung_01
Makro-Programmierung_02

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?

ToolEasy MacroVB Macro
InstrumentIRSpirit, IRAffinity-1s, IRTracer-100IRSpirit, IRAffinity-1s, IRTracer-100
EntwicklerKunde oder ShimadzuShimadzu
AnwendungEinfache Automatisierung, starten von VB MacrosKomplexe Automatisierung, IRPilot, Validierung
BeschreibungDrag & Drop von vorgefertigten Code-BlöckenVisual Basic Quellcode in LabSolutions IR
VorteileEinfach zu verstehen, Verhindert Syntaxfehler, Kann komplexere Makros nachladenVolle Integration in LabSolutions IR, Enthält VB Klassen (z.B. Formular), Ermöglicht komplexe Programmierung
NachteileNur Spektrum und Postrun automatisierbarEndkunde 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.

Makro-Programmierung_03
Makro-Programmierung_04

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.

Makro-Programmierung_05
Makro-Programmierung_06

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.

ToolLabSolutions UV-Vis Automatic ControlString KommandosUV-OCX
InstrumentUV i-Selection (UV-1900i, UV-2600i, UV-2700i, UV-3600i plus, SolidSpec-3700i)UV-1280, UV-1900iUV-1280, UV-1900i, UV-2600i, UV-2700i
EntwicklerKunde oder ShimadzuKunde oder ShimadzuShimadzu
AnwendungEinfache Automatisierung, Autosampler, LIMS-AnbindungPC-Kontrolle von UV-1280, Excel Makros, Drittanbieter-SoftwareMaßgeschneiderte Software mit voller Gerätekontrolle
BeschreibungKontrolle von LabSolutions UV-Vis über einfache TextdateienASCII-Kommandos für einfache GerätekontrolleIndirekte Gerätekontrolle über Active X Steuerlement
VorteileKommandos unabhängig vom Gerät, Einfach zu implementieren, LabSolutions DB/CS Nutzerrechte nicht verletzbarKommandos offen zugänglich, Kurzer effizienter Quellcode, Freie Wahl der ProgrammierumgebungNahezu vollständige Kontrolle über Gerätefunktionen, Kommunikationsfehler werden verhindert, Hilfe für Entwickler durch Microsoft IntelliSense
NachteileNur bestimmte Funktionen von LabSolutions UV-Vis nutzbarGute Programmierkenntnisse notwendigKeine 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.

 

Makro-Programmierung_07
Makro-Programmierung_08

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.

Makro-Programmierung_09
Makro-Programmierung_10

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.

Gerne helfen unsere Kollegen Ihnen bei offenen Fragen weiter

Schreiben Sie uns