
This System Configuration implements the layered Model+View testing architecture for the pallet handling example. The screenshot above shows the result of performing the following actions:
- Launching the configuration.
- Clicking the RESET button to initialize the system.
- Clicking the LOAD button to load a pallet onto the FEED conveyor.
- Clicking the RUN button to feed the pallet up to the closed gate.
- Clicking the IN button to start the lifter's internal conveyor running in the infeed direction.
- Clicking the OPEN GATE button to enable the pallet to be conveyed into the lifter.



The HMI
device encapsulates the functionality of the HMI
layer of the architecture - specifically the HMI elements needed to
read sensor values and write actuator values - while the MODEL
device encapsulates both the Model and the View
layers.
As in the VIEW
device of the LIFTER_VIEWL
configuration, the MODEL
device contains an instance of
the specialized VIEW_PANEL
resource type to provide the necessary layout of View
elements for the pallet handling example. In addition, an instance
of the PANEL_RESOURCE
type contains the User Interface (UI) elements necessary for
operation of the model, specifically:
- Two pushbuttons to LOAD a pallet onto the feed conveyor and UNLOAD it from the takeoff conveyor, respectively.
- A FAULT output to indicate the existence of a fatal condition (which stops the simulation clock), and a RESET button to recover from the fault condition.
The MODEL
device also
contains five instances of the EMB_RES
type, which in turn contain the Model elements for the
corresponding Views, as well as logic to simulate the physics
of the interactions among Model elements including their
sensors and actuators; transfer of workpieces; and simulation of
fatal and non-fatal fault conditions:
-
The
CLOCK
resource contains the simulation clock, whose events are distributed using the local multicast pattern. -
The
FEED_MDL
resource contains an instance of theCNVG_MDLL
type, corresponding to the feed conveyor in theVIEW
panel, along with local multicast elements, logic and instances of theLOADLE
type to handle pallet transfer to the lifter element as well as display of fault conditions. -
The
LIFTER_MDL
resource contains an instance of theXBAR_MDLL
type, corresponding to the lifter element in theVIEW
panel, as well as elements to handle pallet transfer and display of fault conditions in a manner similar to theFEED_MDL
resource. -
The
TAKEOFF_MDL
resource contains an instance of theCNV_MDLL
type, corresponding to the takeoff conveyor in theVIEW
panel, as well as elements to handle pallet transfer and display of fault conditions in a manner similar to theFEED_MDL
andTAKEOFF_MDL
resources. -
The
XFER_MDL
resource contains an instance of theLIFTER_XFER
type to model the normal loading and unloading of pallets from the lifter as well as fatal and non-fatal fault conditions.
As shown in the table below, inter- and intra-layer communication is
implemented with the local multicast pattern, in particular for the
distribution of the simulation clock and the simulation of workpiece
transfer with instances of the LOADLE
type. The Tagged Data
design pattern to ensure consistency of the communicated events and
data.
Tag Name | Type(s) | Description |
---|---|---|
FAULT
|
BOOL,BOOL,BOOL
|
CRUSHED, DROPPED, FALLEN
|
FEED_ACT
|
BOOL,BOOL
|
FEED_MOTOR, GATE_DOWN
|
FEED_SENSE
|
BOOL,BOOL,BOOL
|
PALLET_AT_GATE, GATE_OPEN, GATE_CLOSED
|
FEED_UI
|
BOOL
|
User input FAULT Condition from MODEL.VIEW.FEED
|
FEED_UNLD
|
|
Unload Pallet from FEED conveyor
|
LIFTER_ACT
|
BOOL,BOOL
|
RAISE, LOWER
|
LIFTER_SENSE
|
BOOL,BOOL,BOOL
|
BOTTOM, TOP, PALLET_IN_LIFT
|
LIFTER_UI
|
BOOL
|
User input FAULT Condition from MODEL.VIEW.LIFTER
|
LIFT_CONVEYOR
|
BOOL,BOOL
|
IN, OUT
|
MOTORS
|
BOOL
|
FEED + TAKEOFF MOTORS
|
RESET
|
|
RESET Command from MODEL.UI
|
SIM_CLK
|
|
Simulation Clock
|
TAKEOFF_LOAD
|
UINT,VSTYLE,COLOR
|
LPOS, STYLE, WKPC from MODEL.XFER_MDL
|
TAKEOFF_UI
|
BOOL
|
User input FAULT Condition from MODEL.VIEW.TAKEOFF
|
UNLD
|
|
UNLOAD Command from MODEL.UI
|
WARN
|
BOOL,BOOL,BOOL
|
JAM, HALF_IN, HALF_OUT
|












