20. April 2026

Direkte Parameterisierung von Rezept Operationen

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):

  1. Set OrderOperations
  2. Set Recipe Operations from Table
  3. 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.

 

Downloads

 

More Questions?

Want to know more about this topic or have another question? Please contact us!

Array ( [posts_per_page] => 3 [post_type] => [category__in] => Array ( [0] => 36 ) [orderby] => rand [order] => ASC )

More Tips & Tricks

Mathe in INOSIM neu gedacht Zur Auswertung der Simulationsergebnisse benötigen Sie einige statistische Kennzahlen? Der Mittelwert eines Datensatzes ist schnell berechnet, aber wie war das…

Wussten Sie, dass INOSIM mit jedem Programm ferngesteuert werden kann, das Signale über die COM-Schnittstelle senden kann? Hier erfahren Sie, wie dieses Feature verwendet werden…

In INOSIM Simulationen können benutzerdefinierte, stochastische Teilanlagen-Störungen genutzt werden, um die Realität in einer Anlage möglichst präzise abzubilden. Mit dem Add-On Statistische Analyse kann dann…

mehr

INOSIM Kontakt

Zu den lokalen Geschäftszeiten

Deutschland +49 231 97 00 250