|
Locations können wie Modellvariablen über Komponentengrenzen hinweg verknüpft werden. In Anlehnung an Sensorvariablen können zu diesem Zweck SENSOR LOCATIONS eingesetzt werden.
Beispiel:
SENSOR LOCATION InLane (Bus)
BusLane^: SEND Bus[1] TO InLane;
BASIC COMPONENT Road
DECLARATION OF ELEMENTS
CONSTANT Ttravel (REAL) := 1.2
RANDOM VARIABLE TDelay (REAL):
EXPO(Mean := 0.2)
LOCATION Lane (Bus): 0 Bus
SENSOR LOCATION InLane(Bus)
DYNAMIC BEHAVIOUR
WHENEVER
NUMBER(InLane) > 0 AND
T >= InLane:Bus[1].TArrival
DO
Lane^: FROM InLane GET Bus[1];
CHANGING
TArrival^ :=
T + TTravel + TDelay;
END
END
END OF Road
|
|
Ein Bus wird auf die Location Lane in die Komponente Road geholt, sobald die Ankunftszeit erreicht ist. Gleichzeitig wird die Ankunftszeit gesetzt, zu der der Bus das Ende der Straße erreicht. Die nächste, angrenzende Komponente kann von dort den Bus abholen.
LOCATIONS und SENSOR LOCATIONS können über COMPONENT CONNECTIONS wie Modellvariablen verbunden werden.
Beispiel:
HIGH LEVEL COMPONENT BusLine
SUBCOMPONENTS
BusStop1 OF CLASS BusStop,
BusStop2 OF CLASS BusStop,
Road12 OF CLASS Road
COMPONENT CONNECTIONS
BusStop1.BusLane -->
Road12.InLane;
Road.BusLane -->
BusStop2.Inlane;
END OF BusLine
Die BusLane des BusStop1 ist mit der Sensorlocation InLane der Komponente Road12 verbunden. Damit kann auf die Location BusLane in der Komponente Road12 so zugegriffen werden, als wäre sie eine eigene Modellgröße.
|