Seize

The Seize object allocates one or more units of a specified set of Resources on receiving an incoming entity.

If any of the Resources have insufficient units available, the received entity is directed to a Queue object identified by the WaitQueue keyword.  All entities received by the Seize object first pass through this Queue object, even if sufficient units of the Resources are available.

Entities can be sent directly to the Queue specified by the WaitQueue keyword.  Whenever an entity is added to the Queue, all the Seize objects that specified this Queue as their WaitQueue will be notified.  The first Seize block that has sufficient resource units available will then remove the entity for processing.

Entities waiting for the same Resources at more than one Seize object are processed in order of the priority assigned to them by the input to their Queue’s Priority keyword.  If the entities in two or more Queues have the same priority value, then the one that has waited the longest is chosen.

All of the specified Resources for the selected entity must be available before any are seized.  Once all of them are available, they are seized simultaneously.

The operation of a Seize object can be stopped by threshold closures as controlled by the inputs to its OperatingThreshold keyword.

Normally, a Seize object picks the first object from its queue for processing.  However, it is possible to select any of the other objects in the queue using the Match, SelectionCondition, and NextEntity keywords.  These inputs can be used separately or together to specify the objects that are eligible to be selected.

Seize Inputs

Keyword

Description

Key Inputs

 

Description

A free-form string describing the object.

NextComponent

The next object to which the processed entity is passed.

WaitQueue

Queue from which the next entity for processing will be selected.

If an expression is entered that can return various Queues, it is necessary for each Queue to be included in the entry to the WatchList keyword.  If a Queue is not included, then the arrival of an entity to that

Queue will not wake up this processor.

Match

An expression returning a string value that determines which of the queued entities are eligible to be selected.  If used, the only entities eligible for selection are the ones whose inputs for the Queue's Match keyword are equal to value returned by the expression entered for this Match keyword.

Expressions that return a dimensionless integer or an object are also valid.  The returned number or object is converted to a string automatically.  A floating point number is truncated to an integer.

Note that a change in the Match value does not trigger the processor automatically to re-check the Queue.  The processor can be triggered by adding one or more objects to the WatchList input.

SelectionCondition

An optional expression that tests whether an entity in the queue is eligible to be processed.  The expression should return 1 (true) if the entity is eligible.  The entity chosen for processing is the first one in the queue that satisfies both the SelectionCondition expression and the Match value (if specified).

Unlike the Match value, which must be specified when an entity first enters the queue, the SelectionCondition is evaluated when an entity is to be removed from the queue.  Consequently, a SelectionCondition is more flexible than a Match value, but is significantly less efficient.

NextEntity

An optional expression that returns the next entity to be removed from the queue.  No entity is removed if the expression returns null or the entity is not present in the queue.  To be removed, the entity must also satisfy the Match and SelectionCondition inputs if these are entered.

ResourceList

The Resources from which units are to be seized.  All the resource units must be available to be seized before any one unit is seized.

When more than one object attempts to seize the same resource, the resource is assigned based on the priorities and arrival times of entities waiting in the objects' Queues.  An entity's priority is determined by the Priority input for its Queue, and is assigned to the entity when it first arrives to the Queue.  This priority determines both the position of the entity in the queue and its priority for seizing a resource.

If several entities have the same priority, the resource is assigned to entity that arrived first to its Queue.

NumberOfUnits

The number of units to seize from the Resources specified by the ResourceList keyword.  The last value in the list is used if the number of resources is greater than the number of values.  Only an integer number of resource units can be seized.  A decimal value will be truncated to an integer.

Options

 

AttributeDefinitionList, CustomOutputList

See Section 6.2.

StateAssignment

The state to be assigned to each entity on arrival at this object.  No state is assigned if the entry is blank.

Thresholds

 

OperatingThresholdList

See Section 10.1.

Format

 

StateGraphics

A list of state/DisplayEntity pairs.  For each state, the graphics will be changed to those for the corresponding DisplayEntity, e.g.

{ Idle DisplayEntity1 } { Working DisplayEntity2 }

Graphics

 

Position, Alignment, Size, Orientation, Region, RelativeEntity, DisplayModel, Show, Movable, VisibleViews, DrawRange

See Section 11.1.

Seize Outputs

Output Name

Description

Entity and DisplayEntity

 

Name, ObjectType, SimTime, Parent, Position, Size, Orientation, Alignment, GraphicalLength, ObserverList, NextList, PreviousList, EntityReferenceList

See Section 11.1.

StateEntity

 

State, WorkingState, WorkingTime, StateTimes, TotalTime

See Section 10.3.

StateUserEntity

 

Idle, Working, Setup, Maintenance, Breakdown, Stopped, Utilisation, Commitment, Availability, Reliability, Open, NextMaintenanceTime, NextBreakdownTime

See Section 10.2.

LinkedDevice

 

obj, NumberAdded, NumberProcessed, NumberInProgress, ProcessingRate, ReleaseTime

See Section 16.

LinkedService

 

MatchValue

The present value to be matched to an entity in the queue.

Seize

 

SeizedUnits

The number of resource units seized by the last entity.

User-defined attributes and custom outputs

As defined by the AttributeDefinitionList and CustomOutputList inputs.