3.2. Automatisierter Betrieb mit einer Excelanwendung¶
Bemerkung
Plattform-Kompatibilität: Der in diesem Abschnitt beschriebene Excel-Batch-Modus ist nur unter Windows verfügbar. Er erfordert Microsoft Excel (32- oder 64-Bit) und nutzt Windows-spezifische VBA-APIs. LibreOffice Calc und andere Tabellenkalkulations-Anwendungen werden nicht unterstützt. Die Excel-Datei wird als Beispiel bereitgestellt, um die Möglichkeit der Batch-Verarbeitung zu demonstrieren, nicht als erforderliche Komponente für die Nutzung von UncertRadio.
3.2.1. Overview¶
Die automatisierte Nutzung von UncertRadio ist dann von praktischem Wert, wenn die UR-Aufrufe in ein anderes Programm eingebettet sind, das auch die Steuerung der Aufrufsequenz von UR mit unterschiedlichen Projektdateien übernimmt.
Beispiel-Anwendungsfall: Ein benutzergeschriebenes Programm zur Verarbeitung der Datenauswertung für ein bestimmtes Messverfahren, bei dem eine Master-Projektdatei zur Auswertung unterschiedlicher Batch-Proben verwendet wird. In diesem Szenario variiert nur ein Teil der Eingangsgrößen-Werte von Messung zu Messung.
Wichtig
Sie müssen einen Programmteil bereitstellen, der die „variablen” Eingangsgrößen-Werte in einer Kopie der Master-Projektdatei auf Basis des input format of a TXP project file ändert.
3.2.2. Excel Application Setup¶
Basierend auf dem neuen CSV-Format eines UR-Projekts wurde mit VB für Excel ein einfacherer Vorschlag realisiert, der den automatisierten Betrieb von UncertRadio demonstriert. Die dafür erstellte Datei heißt:
File: UR2_SingleAutoRun.xlsm (located in /share/UncertRadio)
3.2.2.1. Spreadsheet Tables¶
In dieser Exceldatei werden vier Tabellen für UR reserviert, voreingestellt sind darin Table4, Table5, Table6 und Table7:
Table4: Destination for import of an UR project as CSV file
Table5: Destination of result records obtained from executing UR
Table6: List of UR project filenames for batch-like processing by UR
Table7: Contains buttons for executing different VBA macros
3.2.2.2. Module Configuration¶
Das Modul Modul_Auto_Single_UR beinhaltet mehrere Routinen (Makros), deren Funktion kurz erläutert wird.
Autorun_UncertRadio
Ein einfaches Makro, das eine batch-artige Verarbeitung von UR-Projekten durchführt, nachdem diese in Table6 ausgewählt wurden. Dieses Makro wird über einen Button in Table7 aufgerufen.
Funktion: Iteriert über eine Liste von Projekt-Dateinamen und führt UR für jeden davon sequenziell aus, was eine automatisierte Batch-Verarbeitung ermöglicht.
Import_UR_CSV_file
Dieses Makro ermöglicht den Import einer externen UR-Projektdatei im CSV-Format in Table4 der Excel-Datei. Es wird über einen Button in Table7 aufgerufen.
Neue Funktion (Version 2.4.03+): Enthält eine if-then-Konstruktion, mit der ein Arbeitsblatt-Name über die Variable Run_SheetName ausgewählt werden kann.
SingleRun_UR
Nach der Bearbeitung eines bereits in Table4 vorhandenen Projekts führt dieses Makro die folgenden Schritte aus:
Exports the project to a CSV file
Executes UR with this input file
Imports the corresponding result records into
Table5
This macro is invoked by a button in Table7.
Unterprogramme: - Init_pathnames: Setzt die Pfadnamen von UR und der Excel-Datei. - DoTheExport: Exportiert die bearbeitete Table4 nach CSV - DoSingleRun_UncertRadio: Führt UR mit der externen CSV-Datei aus - doFileQuery: Importiert Ergebnisse in Table5
Run_UR_AUTOSEP
Dieses Makro ruft SingleRun_UR mit einer neuen öffentlichen Variable UR_AUTOSEP=True auf. Es verwendet zwei separate Tabellen (Blätter): UR2_data und UR2_results statt Table4 und Table5.
Key differences from SingleRun_UR:
UR speichert in diesem Modus keine Daten in
Auto_Report-DateienTwo CSV files are created with extensions
*_xls.csvand*_xls_res.csvThese temporary files are deleted at the end of execution
3.2.3. Workflow¶
Der typische Ablauf zwischen dem Aufruf der beiden Makros Import_UR_CSV_file und SingleRun_UR ist wie folgt:
Import a UR project from a CSV file using
Import_UR_CSV_fileBearbeiten Sie die Daten in
Table4nach Bedarf (z. B. neue Eingangsdaten für die nächste Messung eingeben)Führen Sie
SingleRun_URaus, um Ergebnisse zu exportieren, zu verarbeiten und inTable5zu importierenUse the results in
Table5for further processing in Excel
Nach dem Run der beiden Hauptmakros können die Ergebnisse (Table5) vom Anwender weiter verwertet werden, d.h. z.B. in weitere Excel-Dateien transferiert werden.
3.2.4. Command Line Execution¶
Der Kommando-String zum Starten der UR-Auswertung eines externen Projekts ist in der Variablen UR_string gespeichert. Dieser hat sich über die Versionen hinweg gewandelt:
3.2.4.1. Version 2.1.1¶
UR_string = Trim(UR_path) & "UncertRadio.exe AUTO " & Chr(34) & _
Trim(UR_path) & "pros\\" & Trim(fname) & Chr(34) & " " & Trim(sid)
Example:
D:\UR2\UncertRadio.exe AUTO "D:\GF_Pros\UR2\pros\zzURpr.csv" 556
3.2.4.2. Version 2.2.4¶
Following statement added to include language code:
UR_string = Trim(UR_string) & " LC=" & Trim(Win_langg) & _
Trim(sDecimalPoint) & Trim(sListSeparator)
Example:
D:\UR2\UncertRadio.exe AUTO "D:\GF_Pros\UR2\zzURpr.csv" 556 LC=,;
3.2.4.3. Version 2.4.03¶
The UR2_start_xls.bat file was introduced (now deprecated):
UR_string = Trim(UR_path) & "UR2_start_xls.bat AUTO " & Chr(34) & _
Trim(fname) & Chr(34) & " " & Trim(sid)
UR_string = Trim(UR_string) & " " & Chr(34) & "LC=" & Trim(Win_langg) & _
Trim(sDecimalPoint) & Trim(sListSeparator) & Chr(34)
Example:
d:\UR2\UR2_start_xls.bat AUTO "d:\UR2\zzURpr.csv" 556 "LC=DE,;"
3.2.4.4. Version 2.4.22 and Later¶
Der Ansatz mit Batch-Dateien wurde wegen Konflikten mit Antivirus-Software aufgegeben. UncertRadio wird nun direkt von Excel aufgerufen, nachdem die Windows-Path-Variable geändert wurde:
UR_string = Trim(UR_path) & "uncertradio.exe AUTO " & Chr(34) & _
Trim(UR_path) & Trim(fname) & Chr(34) & " " & Trim(sid)
UR_string = Trim(UR_string) & " " & Chr(34) & "LC=" & Trim(Win_langg) & _
Trim(sDecimalPoint) & Trim(sListSeparator) & Chr(34)
Example:
d:\UR2\uncertradio.exe AUTO "d:\UR2\zzURpr.csv" 556 "LC=DE,;"
3.2.4.5. Version 2.4.26 and Later¶
The environment variable PATH is now set directly:
pathX = EnvironGetItem("path", "User")
Call SetEnvironmentVariableA("path", UR_path & ";" & URGTK_path & ";" & pathX)
3.2.4.6. Benutzung von Kommandozeilen-Argumenten¶
Die vier Kommandozeilen-Argumente, die an UncertRadio übergeben werden, sind:
%1 -
AUTO: Specifies batch mode operation%2 -
fname: UR project filename%3 -
sid: Sample ID string%4 -
LC=...: Language and locale settings
3.2.4.7. Variables¶
The variables used in the command strings are:
fname: UR project filenamesid: Sample ID stringUR_path: Installation path of UncertRadio
Must be set by the user at the beginning of the Autorun_UncertRadio routine.
3.2.5. CSV Project File Handling¶
Im VBA-Code von SingleRun_UR wird das zu exportierende CSV-Projekt in den Pfad geschrieben, der in der Variablen Excel_Path hinterlegt ist:
3.2.5.1. Version 2.1.1¶
file_csv = Trim(UR_path_unix) & "pros\\" & "zzURpr.csv"
3.2.5.2. Version 2.2.4 and Later¶
file_csv = Trim(UR_path) & "zzURpr.csv"
Call DoTheExport(file_csv, ifehl)
If (ifehl = 1) Then Exit Sub
' Execute UR with this input file
Call DoSingleRun_UncertRadio(file_csv, ifehl)
If (ifehl = 1) Then Exit Sub
3.2.5.3. Processing Flow¶
Mit einer Funktion bShellAndWait wird in Autorun_UncertRadio mit dem übergebenen UR_string das UncertRadio mit der in der in dem String enthaltenen UR-Projektdatei gestartet. Diese Funktion veranlasst Excel nach Absetzen des Start-Befehls so lange zu warten, bis UR die Berechnungen der aktuellen Projektdatei ausgeführt und sich selbst beendet hat. Danach wird die nächste Auswertung aufgerufen.
3.2.5.4. Output File Changes¶
Seit Version 2.4.04 hat sich der String mit dem Dateinamen der CSV-Projekt-Ausgabedatei geändert (an zwei Stellen):
Bisheriges Verhalten:
file_csv = Trim(UR_path) & "zzURpr.csv"
file_csv = Trim(UR_path) & filename_org
Aktuelles Verhalten (ab v2.4.04):
file_csv = Trim(UR_AUTO_output_path) & "zzURpr.csv"
file_csv = Trim(UR_AUTO_output_path) & filename_org
3.2.6. Ausgabedateien¶
Die von UncertRadio für eine Projektdatei ermittelten Auswertungsergebnisse werden gespeichert in:
CSV file:
AutoReport-Result.csv(in the results directory, e.g.~/.local/share/UncertRadio/results/on Unix)
Eigenschaften:
Data is appended to existing files (cumulative form)
Zahlen werden mit dem in Windows definierten Dezimalpunktzeichen geschrieben
Diese Dateien können gelöscht werden, wenn sie zu groß werden; UR erzeugt neue
3.2.6.1. Output File Columns¶
Die Bedeutung der Spalten in den UR-Ausgabedateien ist im Folgenden dargestellt. Die Spalten sind mit deutschen (Bedeutung) und englischen (Meaning) Beschreibungen aufgelistet:
Column |
Description (DE) |
Description (EN) |
|---|---|---|
# |
Nummer der Ergebnisgröße |
Nummer der Ergebnisgröße |
File |
UR-Projekt-Dateiname |
UR-Projekt-Dateiname |
Sample_id |
Probe/Analyse-Identifikation |
Probe/Analyse-Identifikation |
Date |
Datum + Uhrzeit |
Datum + Uhrzeit |
quantity |
Symbolname der Ergebnisgröße |
Symbolname der Ergebnisgröße |
PE |
Wert der Ergebnisgröße |
der Wert der Ergebnisgröße (die aktuell gewählte Ergebnisgröße, falls mehrere vorliegen) |
uPE |
Erweiterte Unsicherheit (mit Faktor k) |
Wert der erweiterten Unsicherheit (unter Verwendung des Erweiterungsfaktors k) |
BE |
Bester Schätzwert |
Bester Schätzwert |
uBE |
Unsicherheit des besten Schätzwerts |
Dem besten Schätzwert beigeordnete Unsicherheit |
LQ |
Untere Grenze des Vertrauensbereichs |
Untere Grenze des Vertrauensbereichs |
UQ |
Obere Grenze des Vertrauensbereichs |
Obere Grenze des Vertrauensbereichs |
sLQ |
Untere Grenze des kürzesten Vertrauensbereichs |
Untere Grenze des kürzesten Vertrauensbereichs |
sUQ |
Obere Grenze des kürzesten Vertrauensbereichs |
Obere Grenze des kürzesten Vertrauensbereichs |
DT* |
Erkennungsgrenze |
Erkennungsgrenze |
DL# |
Nachweisgrenze |
Nachweisgrenze |
NT |
Nachweisgrenzentyp (sollte nur noch 1 sein, d.h. ISO 11929) |
Typ der Nachweisgrenzenberechnung (kann nur 1 sein, gemäß ISO 11929) |
k |
Erweiterungsfaktor für die Unsicherheit |
Erweiterungsfaktor für die Unsicherheit |
kalpha |
Wert von k₁₋α |
Wert von k₁₋α |
kbeta |
Wert von k₁₋β |
Wert von k₁₋β |
1-gamma |
Wahrscheinlichkeit 1-γ für das Vertrauensintervall |
Wahrscheinlichkeit 1-γ für das Vertrauensintervall |
Chisqr |
Reduziertes Chi-Quadrat (im Falle linearer Entfaltung) |
Reduzierter Chi-Quadrat-Wert (im Falle linearer Entfaltung) |