Batchbetrieb
Der Batchbetrieb kann verwendet werden, um Scripte vollständig automatisch auszuführen. Im Batchbetrieb startet FVA-Workbench ohne grafische Oberfläche, führt definierte Scripte hintereinander aus, legt die Berechnungsergebnisse ab und beendet sich.
Verzeichnisstruktur
Batchdatei (.cmd) Definition von Startparametern für die FVA-Workbench.
Jobdefinition (.wbj) Definition der Pfade für die Ein- und Ausgabedateien.
Berechnungsscript (.wbjs) Scriptdatei mit den Berechnungsanweisungen.
Getriebemodell (.wbpz) FVA-Workbench Projektdatei, die das zu berechnende Getriebemodell enthält.
Protokolldatei (.txt) Wird während der Batchausführung erstellt und enthält Meldungen zur Fehlerbehebung.
Jobdatei (.wbj)
In dieser Datei werden die Pfade für die Ein- und Ausgabedateien definiert. Zudem können eigene Variablen definiert werden. Diese können später im Skript angesprochen werden. Hierdurch können Variablen zentral geändert werden, ohne das Skript verändern zu müssen.
Hinweis
Pfade können absolut oder relativ zum Verzeichnis in dem die .wbj oder .cmd Datei liegt angegeben werden.
[Control] 1InputDirectory = "input\" 2InputModel = transmission.wbpz 3InputScript1 = calculation_script.wbjs 4ErrorReport = "output\log.txt" 5[VariablesToInject] 6resultDirectory = "output\result_report.html" 7reportTemplate = "input\template.wbrep" 8InputTorque_to_inject = "500"
Verzeichnis für Eingabedateien | |
Name der FVA-Workbench Projektdatei | |
Name des ersten Scripts das ausgeführt wird | |
Verzeichnis und Name der Protokoll Datei | |
Alle folgenden Variablen sind optional. Sie können im Berechnungsscript (.wbjs) verwendet werden. | |
Injizierte Pfadvariable für den Ergebnisreport (Kann in der Scriptdatei .wbjs verwendet werden) | |
Injizierte Pfadvariable für eine Reportvorlage | |
Weiteres Beispiel für eine injizierte Variable (Drehmoment) |
Jobliste (.wbjlist)
In einer .wbjlist-Datei (Job-Liste) können mehrere .wbj-Dateien referenziert werden. Diese werden beim Ausführen der .wbjlist automatisch hintereinander ausgeführt. Die FVA-Workbench wird dabei nur einmal gestartet. Auch hier können optional Variablen "injiziert" werden, die dann von jedem Script verwendet werden können.
[Control] job1=pathTo/jobFile.wbj job2=pathToAnother/jobFile.wbj [VariablesToInject] InputTorque="500"
Der Aufruf einer .wbjlist in der .cmd Datei sieht dann folgendermaßen aus: \FVA-Workbench.exe -WBJobList="WB-Job.wbjlist"
Scriptdatei (.wbjs)
Die Scriptdatei enthält alle Anweisungen, mit denen das Getriebemodell manipuliert wird. Es empfiehlt sich, das Script vor der Ausführung im Batchbetrieb im Scripting Editor der FVA-Workbench zu testen. Nur wenn eine manuell gestartete Berechnung innerhalb der FVA-Workbench korrekte Ergebnisse erzeugt, wird auch die Berechnung mittels Batchbetrieb erfolgreich sein.
Beispiel - Script, in dem injizierten Variablen (siehe .wbj-Datei) verwendet werden
gearUnitID = 1; forceID = 10; let torque = torque_to_inject; let reportTemplatePath = reportTemplate; let reportPath = resultDirectory; setAttr("scaled torque", forceID, torque, EDAT); runCalcMethod("001_SYSTEM_CALCULATION", gearUnitID); generateReport(reportTemplatePath, reportPath);
Im Script wird das Drehmoment einer Belastungskomponente auf den Wert einer injizierten Variable gesetzt und im Anschluss eine Gesamtsystemberechnung gestartet. Anschließend wird ein HTML-Ergebnisreport unter Zuhilfenahme der injizierten Pfadvariablen erzeugt.
Getriebemodell (.wbpz/.wbpx)
Die Grundlage für den Batchbetrieb bildet ein FVA-Workbench Modell (.wbpz / .wbpx Datei). Es muss ausreichend bedatet sein, um die gewünschten Berechnungen ausführen zu können. Nur wenn eine manuell gestartete Berechnung innerhalb der Workbench korrekte Ergebnisse erzeugt, wird auch die Berechnung mittels Batchbetrieb erfolgreich sein.
Über die Funktion loadModel() können im Batchbetrieb zur Laufzeit andere Getriebemodelle geladen, manipuliert und berechnet werden.
Batchdatei (.cmd)
Mit der optionalen Batchdatei können mehrere Parameter für den Start der FVA-Workbench angebeben werden. Grundsätzlich genügt es eine Textdatei zu erstellen, die den Pfad zur FVA-Workbench.exe und einen Pfad zur Jobdefinition (.wbj) enthält.
C:\FVA\FVA-Workbench-6.0\FVA-Workbench.exe -WBJob="C:\WB_job\WB-Job.wbj"
Headless Modus (keinen Startbildschirm anzeigen)
C:\FVA\FVA-Workbench.exe -WBJob="C:\WB_job\WB-Job.wbj" -nosplash
Lizenz als Parameter angegeben
Parameter für Client-Lizenz
C:\FVA\FVA-Workbench.exe -WBJob="C:\WB_job\WB-Job.wbj" -Lic="CLic;C:\Lizenzen\Lic12345.lic"
Parameter für Server-Lizenz
C:\FVA\FVA-Workbench.exe -WBJob="C:\WB_job\WB-Job-Demo.wbj" -Lic="SLic;license.fva-service.de:5006;Li13270;username;password"
Hinweis
Ist die über den Parameter angegebene Lizenz ungültig, wird versucht die Lizenz zu laden, die in den FVA-Workbench Einstellungen angegeben ist.
Protokolldatei (.txt)
In der Jobdatei (.wbj) wird in der Variable ErrorReport definiert, wo die Protokolldatei abgelegt werden soll. Für eine leichtere Fehlerbehebung werden hier alle Hinweise, Warnungen und Fehler die bei der Ausführung aufgetreten sind gespeichert.
Beispiel für eine .log Protokolldatei
08.09.2020 10:57:32, start processing new job wb_job_demo.wbj input directory: input input model (file in input directory): transmission.wbpz count of scripts: 1 input script 1 (file in input directory): CalculationScript.wbjs variables to inject into the script context: ResultFilePath=output\result.txt TempDirectory=temp\ InputTorque_to_inject=500 OutputDirectory=output\ HTML_TemplatePath=input\report_template.wbrep HTML_ResultFilePath=output\result.html loading the model returns status: 0 ()
Beispiel
Im Installationsverzeichnis der FVA-Workbench unter: FVA-Workbench\plugins\de.fva.workbench.ui.intro_6.0.0\doc\batch_example
ist ein vollständiger Batch-Job hinterlegt. Die Datei start _job.cmd startet die Batch-Ausführung.
Folgende Aktionen werden in diesem Batch-Job durchgeführt:
Berechnungsschalter für die Gesamtsystemberechnung werden gesetzt.
Drehmoment der ersten Belastung wird per (injizierter Variable "InputTorque_to_inject") auf 500 Nm gesetzt.
Gesamtsystemberechnung wird ausgeführt.
Ergebnisattribute (RDAT) auf der Komponente "cylindrical_mesh" (für alle Stufen im Getriebe) lesen.
Ergebnisattribute werden in eine ASCII-Textdatei geschrieben.
Ergebnisattribute (RDAT) auf der Komponente "notch" (für alle Kerbstellen im Getriebe) lesen.
Ergebnisattribute werden in die ASCII-Textdatei geschrieben.
HTML Report wird generiert.