Control systems engineering processes using the IEC 61499-based MVCD framework can take maximum advantage of its highly visual nature. The operation of the controlled machine or process, and the associated control algorithms, should be visualized (preferably in an animated representation) as early as possible as in the systems engineering activity. This visual orientation should be maintained throughout the systems engineering process. The process illustrated above has been found effective in achieving these goals. See the Examples for step-by-step illustrations of the process.
- Start with a sketch of the machine or process to be controlled, along with a verbal description of the desired behavior. This may be included in a hypertext document with links to existing process specifications and CAD drawings, but should abstract such detailed information into a high-level view of the desired functionality.
-
From the sketch, develop and test a number of Views which are
capable of presenting visually the essential information about the
states of the controlled devices, e.g., the location of workpieces,
the position of tools, the state of spindle motors, the temperature
or level of liquids in a tank, etc. A suitable layered architecture
for performing this task is illustrated in the figure below.
- The Local Multicast design pattern can be used for inter-layer communication.
- The Tagged Data design pattern can be used to simplify and avoid errors in this step.
- Using the architecture shown above, integrate the views into a static animation of the system to be controlled, and utilize the animation to develop descriptions of the desired operational sequences of the system under both normal and abnormal conditions.
-
For each view, develop and test one or more Models capable of
simulating the dynamic behavior of the associated machine or process
equipment in response to external stimuli and commanding the
associated view to display the corresponding equipment states.
Models should typically execute in their own threads of execution,
e.g., in conjunction with external or internal timers or
integrators. The layered architecture shown below can be used to
test Models in conjunction with their Views and HMI elements.
- The Local Multicast design pattern can be used for inter-layer communication.
- The Tagged Data design pattern can be used to simplify and avoid errors in this step.
- In some cases, Models and their associated Views may be represented by IEC 61499 service interfaces to external simulation or animation applications.
-
Encapsulate control logic in Controller blocks as necessary
to achieve additional required functions, e.g., sequencing of the
simulated equipment, event and data interfaces for integration with
other controller blocks. The layered architecture shown below can be
used to test Controller elements in conjunction with their
associated Model elements.
- The Local Multicast design pattern can be used for inter-layer communication.
- The Tagged Data design pattern can be used to simplify and avoid errors in this step.
-
Add diagnostic and fault recovery logic and test together
with the previously developed Models, Views and Controllers.
The layered architecture shown below
illustrates the testing of simple Diagnostic elements in
conjunction with their associated Controller and Model
elements. In this case, the Diagnostic elements are simply
monitoring actuator outputs and sensor inputs and reporting whether
they are occurring in the correct combinations and sequences. The
following principles will help you to maximize the benefits of
applying the IEC 61499 architecture to fault detection, diagnosis
and recovery:
-
Keep fault detection, diagnosis and recovery functions as
close as possible to the equipment being controlled. It is much
easier to detect, diagnose and recover from faulty operation of an
individual machine or control component, based on deviations from
its expected behavior, than to deduce the cause of a system crash
once the fault has occurred. This rule is illustrated by those
function block whose end with the suffixes
_DIAG
and_DIAGL
. - Avoid complexity in control functions and improve reusability of both control and fault functions by encapsulating fault detection, diagnosis and recovery functions separately from control functions.
-
Include the capability of injecting fault conditions either
manually at the View level or automatically at the Model
level. In the current examples, each of the
*_VIEW
function blocks shown in the index has aFAULT
data output, associated with anIND
event output, which can be set or reset by clicking on a "fault indicator" in the upper left-hand corner of the user interface. TheTRUE
orFALSE
state of theFAULT
output is indicated by a red or green color of the fault indicator, respectively. In the Model elements, theFAULT
condition inhibits motion to simulate failure of an actuator element. -
Establish an architecture for reporting and logging faults and
diagnostics. This may include an appropriate HMI such as an
instance of the
DIAG_LOG
type. - The Local Multicast design pattern can be used for inter-layer communication.
- The Tagged Data design pattern can be used to simplify and avoid errors in this step.
-
Keep fault detection, diagnosis and recovery functions as
close as possible to the equipment being controlled. It is much
easier to detect, diagnose and recover from faulty operation of an
individual machine or control component, based on deviations from
its expected behavior, than to deduce the cause of a system crash
once the fault has occurred. This rule is illustrated by those
function block whose end with the suffixes
-
Perform distribution design by allocating Model
elements to separate devices and converting local communication
links to distributed links as shown in the figure below.
- The Tagged Data design pattern can be used to simplify and avoid errors in this step.
- Perform physical design: Replace Model/View complexes by service interfaces to actual control system I/O as shown below.
-
Perform mechatronic design as shown below:
- Partition control and diagnostic blocks into high-level (HLC) blocks which cross device boundaries, and which cannot be accomplished by simple interconnections of existing low-level control (LLC) blocks, e.g., mode control, systemwide startup, diagnostic reporting, etc.
- Allocate function block instances to the integrated controllers of specific mechanical devices, adding communication function blocks as necessary to maintain data and event connections. This may involve the use and configuration of existing mechatronic devices where available.