Arbeiten mit Attributen
- Beispiel reworking:
- Idee
- Anteil p von Werkstücken im Server defekt
- müssen zurückgeführt werden
- implementiert durch Entity-Attribut isOk (1 = ok,
2 = defekt)
- Modell reworkingA
- Ergebnis
- Attribute definieren:
- immer im Generator
- in Entity Type: Structured Entity
- Attribute id und isOk definieren
- Entity hat einen Datentyp (hier einfach Entity)
- verschiedene Attribute → verschiedene
Datentypen → verschiedene Namen
- Attributewerte ändern:
- in Event actions
- hier im Server bei Service complete
- pd = 0.3; probability of
defect
if rand() < pD
entity.isOk = 2; % defect
else
entity.isOk = 1; % ok
end
- Attributwerte als Parameter verwenden:
- häufig direkt über Block-Parameter
- etwa bei Output Switch
- Switching criterion: From attribute
- Switch attribute name: isOk
- muss Werte 1, 2 haben (oder mehr bei mehr Ausgängen)
- Attributwerte als Wert verwenden:
- Grundprinzip
- Action ruft Simulink Funtion auf mit
Attribut-Wert als Parameter
- Simulink Funtion gibt Wert an Ausgang
- Block Simulink Function
- normales Atomic Subsystem mit In-/Out-Ports
- zusätzlich interne "Anschlüsse" ArgIn/ArgOut
- definieren Funktions-Parameter und -ergebnis
- kann von verschiedenen Blöcken aufgerufen werden,
u.a. von Actions
- Simulink Function im Beispiel
- Deklaration: showValue(u) (kein
Rückgabewert!)

- vom Aufrufer übergebener Wert u wird am Port y
ausgegeben
- Exit action des Servers
- Attributwerte als Message verwenden:
- Message = Zahl als einfache Entity
- verwendet für Kontrolleingänge
- Zahl nach Message mit Message
Send
- Message nach Zahl mit Message
Receive
- verwendet in reworkingB für
bessere Ausgabe

- mit Ausgabe

- Simulink Function im Beispiel
- Deklaration: createMessage(u) (kein
Rückgabewert!)

- vom Aufrufer übergebener Wert u wird am Port y
als Message ausgegeben
- Exit action des Servers
- createMessage(entity.isOk);
- Message kann Kontroll-Eingänge steuern (etwa Gate
oder Switch)
- DisplayMessage:
- Aufgabe
- gibt bei einlaufender Message am Ausgang kurzen
Impuls zur Anzeige im Osci
- mein Ersatz für Attribute Scope aus SimEvents 4
- Implementierung

- einlaufende (Message-)Entities durchlaufen
Puffer-Queue
- Server hat sehr kurze Servicezeit (w = 0.001)
- gibt Belegung n (1 oder 0) über Statistikausgang
aus
- gibt Attribut isOk über Entry-Funktion showValue(entity);
und Simulink Function aus
- Ausgang enthält kurze Peaks der Höhe isOk