Arbeiten mit Storage und Release-Gate
    
      - Modellierung einer Fabrik:
        
          - vereinfacht nach Argesim-Benchmark C14
            
              - Fabrik produziert rund um die Uhr
 
              - drei feste Produkttypen 1/2/3
 
              - Produktionszeit exponentiell mit tMean
 
              - Fabrik beliefert zwei Distributoren
 
              - am Eingang kommen Bestellungen mit Attributen für
                Produkt und Distributor 
 
              - keine Prüfung auf Bestand
 
            
           
          - Gesamtmodell factory
            
              
 
              - Order Generator erzeugt Bestellungen mit
                Attributen Product und Distributor
 
            
           
          - Ergebnis
            
          
 
          - kleiner Trick
            
              - Server zwischen Produkttyp- und
                Distributor-Anzeige
 
              - → im Osci übersichtlich nebeneinander dargestellt
 
              - vgl. Anzeige Bestelleingang
 
            
           
        
       
      - Implementierung der Komponente FactoryA:
        
          - Aufbau
            
          
 
          - Produktion füllt Lager auf
 
          - Bestellungen werden einmal kopiert
 
          - ein Exemplar geht zur Lagerhaltung
            
              - entsprechendes Produkt kommt aus dem Lager
 
            
           
          - zweites Exemplar geht zur Auslieferung
            
              - schickt Produkt vom Lager an Distributor gemäß
                Bestellung
 
            
           
          - Ausgang des Lagerbestands als Vektor
            
              - für Darstellungs- und Testzwecke
 
              - für Erweiterung um eine Bestandsprüfung
 
            
           
        
       
      - Implementierung der Komponente Auslieferung:
        
          - Aufbau
            
          
 
          - aus order wird Distributor abgelesen (in Server)
            
              - als Message an Output Switch geschickt
 
              - steuert Ausgangs-Port der Factory
 
            
           
          - Vorsicht Nullserver (Server mit tS = 0)
            
              - wird hier eingesetzt wegen Entry Action
 
              - können problematisch sein (vgl. [9])
 
              - speichern bei blockiertem Ausgang eine bzw.
                mehrere Entities
 
              - hier unkritisch, da Ausgang nie blockiert ist
 
            
           
        
       
      - Implementierung der Komponente Lagerhaltung:
        
          - Aufbau
            
          
 
          - Produkte, nach Typ sortiert, in Speicherbausteinen (Entity Store) gesammelt
            
              - Entities im Store ohne Reihenfolge
 
              - alle Entities können auf einmal den Store
                verlassen
 
              - Queue statt Store wäre hier genauso gut
 
              - Store nützlich bei Erweiterung (alle Typen in
                einem Store)
 
            
           
          - Release Gate lässt bei Eintreffen einer Message genau
            eine Entity durch
 
          - order wird durch Output Switch auf entsprechenden
            Produkttyp geroutet
 
          - Problem
            
              - Release Gate verlangt Message (Anonymous Entity)
 
              - order ist structured (hat Attribute)
 
            
           
          - Lösung mit "Converter" Untyped
            
              - ist ein Generator mit Generation method =
                Event-based
 
              - erzeugt Entity mit Type anonymous
 
            
           
        
       
      - Ergänzungen:
        
          - Store und Selection Gate (A19, testFactory5)
 
          - Arbeiten mit Timern (A17, sendmessage3A)
            
              - Simulink Function getTime() liefert t
 
              - Attribute speichern z.B. Ein- und Austrittszeiten
 
              - Auswerteblock berechnet Statistik
 
            
           
          - Probleme in SimEvents
            
              - Fehler bei komplexen gleichzeitigen Events (testDistributor1A/B)
 
              - stoppt bei zu vielen gleichzeitigen Events pro
                Block (supplychain1)