Viele User ziehen es vor, Parameter wie Menge und Dauer in der integrierten (oder einer externen) Excel-Arbeitsmappe zu speichern, anstatt das Rezept über die Dialogfelder zu parametrisieren. Die Operationen werden dann während der Simulation über eine Steuerung für das Parameter-Ereignis parametrisiert. In vielen Simulationsmodellen wird ein Rezept mehrfach mit exakt denselben Parametern ausgeführt. Anstatt die Dauer einer Operation für jeden Batch und jeden Auftrag neu festzulegen, ist es seit INOSIM Version 2025 möglich, die Rezeptoperationen während der Simulation Init Prozedur zu parametrisieren.
Was ist der Unterschied zwischen Rezeptoperationen und Steueroperationen?
In INOSIM besteht ein Grundrezept aus einer (oder mehreren) Teilgrundrezepten (Recipe Procedures), die wiederum aus einer (oder mehreren) Sequenzen von Grundoperationen (Recipe Operations) bestehen. Wenn ein Auftrag eingeplant wird und startbereit ist, erstellt INOSIM aus den Teilgrundrezepten Prozedurinstanzen (Procedure Instances). Sobald eine Prozedurinstanz einer Teilanlage (Unit) zugewiesen wurde, wird ein Teilsteuerrezept (Order Procedure) erstellt, das aus Steueroperationen (Order Operations) besteht. Diese Steueroperationen sind Kopien der ursprünglichen Grundoperationen und werden auf der zugewiesenen Teilanlage ausgeführt. Mithilfe einer Parameterereignis-Steuerung können die Parameter von Steueroperationen geändert werden (cop-Variable), während die Parameter der Grundoperation nicht geändert werden können (mop-Variable).
Ein Grundrezept mit seinen Teilgrundrezepten und Grundoperationen wird in der Industrie als Master-Batch-Record (MBR) bezeichnet, enthält alle relevanten Produktionsanweisungen und bildet die Grundlage für das Chargenprotokoll (Batch Record). Der Auftrag mit seinen Teilsteuerrezepten und Steueroperationen ist das Chargenprotokoll, das genau dokumentiert, wie eine Charge hergestellt wurde
Rezeptoperationen parametrisieren
Mit INOSIM Version 2025 wurde es möglich, Rezeptoperationen während der Initialisierung der Simulation zu parametrisieren. Anstatt dieselben Eigenschaften 1000de Male (für jedes Teilsteuerrezept) festzulegen, lässt sich dies einfach einmalig zu Beginn der Simulation erledigen. Selbstverständlich können die Parameter von Steueroperationen im Parameter-Ereignis weiterhin überschrieben werden, z. B. um zu modellieren, dass ein bestimmter Vorgang an einem Montagmorgen länger dauert.
Der folgende Code ist ein Beispiel dafür, wie Sie Eigenschaften von Rezeptoperationen in der Simulation Init festlegen können. Sie können ihn gerne für weitere Operationstypen und andere Eigenschaften erweitern.
Sub Set_RecipeOperation_Parameters(rec As Recipe)
'called from Simulation_Init
Dim row_index As String
Dim rp As RecipeProcedure, ro As RecipeOperation
Dim res As RecipeResource
For Each rp In rec.RecipeProcedures
For Each ro In rp.RecipeOperations
row_index = rp.Name & "_" & ro.Name
Select Case ro.Type
Case OperationType.opEnd, OperationType.opStart
Continue For
Case OperationType.opSimpleInflux
ro.Amount = t_parameters(row_index, "Amount [kg]")
ro.SourceSinkUnits = Units("Source")
Case OperationType.opSimpleOutflux
ro.Amount = t_parameters(row_index, "Amount [kg]")
ro.SourceSinkUnits = Units("Sink")
Case OperationType.opStartTransfer
ro.Duration = t_parameters(row_index, "Duration [h]") * 3600
Case OperationType.opSimpleTransfer
ro.Amount = t_parameters(row_index, "Amount [kg]")
ro.Duration = t_parameters(row_index, "Duration [h]") * 3600
If ro.Amount > 0 Then
ro.SourceSinkUnits = Units("Source")
ElseIf ro.Amount < 0 Then
ro.SourceSinkUnits = Units("Sink")
Else
ro.AmountType = AmountType.amNull
End If
Case OperationType.opProcess, OperationType.opClean, OperationType.opAnalyze, OperationType.opSetup
ro.Duration = t_parameters(row_index, "Duration [h]") * 3600
End Select
If Not t_parameters(row_index, "Res1") Is Nothing Then
res = New RecipeResource
res.Resources = Resources(t_parameters(row_index, "Res1"))
res.Amount = t_parameters(row_index, "Res1 Amount")
res.Allocation = t_parameters(row_index, "Res1 Allocation")
ro.RecipeResources.Add res
End If
Next
Next
End Sub
Der Vorteil
Die Idee ist, dass durch eine geringere Zahl an Aufrufen von Parameter-Steuerungen die Laufzeit des Simulationsmodells sinkt. Der Einfluss auf einen einzelnen Simulationslauf ist eher gering, und natürlich abhängig vom eingesetzten Computer und Modell. Da der geschwindigkeitsbestimmende Schritt auf modernen System weniger die Rechenleistung als die Schreibgeschwindigkeit in die Datenbank ist, sind Geschwindkeitsvorteile von nur wenigen Prozentpunkte zu erwarten. In Nutzungsszenarien, in denen auf ein Schreiben in die Datenbank verzichtet wird (Statistische Analyse, Optimierung), ist der Vorteil jedoch signifikant. In einem kurzen internen Test wurde das nachfolgend beschriebene Demo-Modell für eine Statistische Analyse mit 40 Läufen genutzt. Dort verringert die direkte Parameterisierung der Rezeptoperationen die Gesamtlaufzeit von knapp 3 min auf 45 s.
Das Demo-Model
Mit dem im Download-Bereich verfügbaren Demomodell können Sie drei Optionen vergleichen (durch Auswahl des Experiments):
- Set OrderOperations
- Set Recipe Operations from Table
- Set Recipe Operations from Workbook
Alle Experimente simulieren einen Auftrag mit 1000 Chargen eines bestimmten Rezepts.
Die Optionen 1 und 2 verwenden ein Tabellenobjekt für die Rezeptparameter, Option 3 liest die Daten direkt aus der Parameter-Arbeitsmappe mit der neuen WorkbookXML-Funktion in INOSIM 2026. Um dies zu testen, aktivieren Sie bitte die Einstellung in den Projekteigenschaften und entfernen Sie die Auskommentierung des kommentierten Codes in der Prozedur Set_RecipeOperation_Parameters_WorkbookXML.
More Questions?
Want to know more about this topic or have another question? Please contact us!
More Tips & Tricks
Animierte Grafikobjekte in INOSIM
Mit Hilfsfunktionen, die Sie als Basic-Macro in INOSIM importieren können, hauchen Sie Ihrem Anlagenlayout Leben ein: Durch Animationen stellen Sie Veränderungen von Füllständen, Transportbewegungen von Objekten oder…
Transferanalyse mit Power BI
In diesem Tipp und Trick wird das Transfer-Analyse-Dashboard vorgestellt. Es handelt sich um eine Erweiterung des Power BI-Standard-Dashboards, mit dem Sie den Netto-Massenfluss einer Teilanlage…
Arbeiten mit externen Excel-Arbeitsmappen
Arbeiten mit externen Excel-Arbeitsmappen Neben dem Zugriff auf die in INOSIM eingebaute Excel-Arbeitsmappe (siehe Tipp Nutzen Sie Ihr Excel-VBA-Wissen bei der Arbeit mit INOSIM), kann mit Hilfe…

