MERLIC State Machine
When using MERLIC in process integration mode MERLIC can be used in machine vision systems that are integrated in a manufacturing machine. The machine controller, e.g., a programmable logic controller (PLC), must be able to control an integrated vision system, to monitor the execution, and to query the results. Therefore, MERLIC provides a process integration mode to enable the communication with a machine controller. The process integration mode can be started with the application "MERLIC RTE" that is provided with the MERLIC installation., MERLIC runs through different types of internal states. During the execution, you can query the current state of MERLIC, for example, to check if MERLIC is ready to receive commands.
The basic framework of the internal MERLIC states is based on the vision state machine that is specified in the "OPC UA Companion Specification Vision - Part 1". The states and transitions that are provided in MERLIC are adopted from the OPC UA standard. However, not all states and transitions are identical copies in MERLIC.
The graphic below shows an overview of all internal states of MERLIC and its transitions when using MERLIC process integration.
Transitions that are triggered by commands are labeled with the respective name of the command, for example, the transition from the state "Ready" to "SingleExecution" via the command "StartSingleJob". Transitions that are triggered automatically by MERLIC due to internal conditions are displayed in orange without any label, for example, the transition from the state "SingleExecution" to "Ready" is performed automatically after a single execution. The states "Halted" and "Preoperational" even allow self-transitions. These are also depicted in the graphic.
Depending on the type of device that is used for the process integration, the set of available MERLIC states and commands may differ as well as the procedure how the MERLIC states are queried. In case of a Hilscher card, each of the MERLIC states can be visualized in your system. In case of devices with digital inputs and outputs, only the internal state for "Ready" and "Error" can be transmitted.
The following states are supported:
|
CurrentState |
Description |
|---|---|
|
Error |
This state indicates that an error occurred. An error occurs in the following cases:
|
|
Halted |
This state indicates that MERLIC stopped all operations and all resources are in a state that allows a safe power-down, for example, the resources are released. |
|
Initialized |
This state indicates that MERLIC is initialized but no recipe has been loaded yet. |
|
OperationalFrontendAccessMode |
This state indicates that MERLIC is currently controlled only via the Frontend. A Frontend user who acquired control is able to make changes at the MVApp and start the execution. In this state, the communication device or the connected industrial control system is not allowed to trigger any commands. |
|
OperationalAutomaticMode |
This state indicates that MERLIC is in the operational mode that comprises the states "Initialized", "Ready", "SingleExecution", and "ContinuousExecution". |
|
Preoperational |
This is the state of MERLIC directly after the start up. This state is not visible to the device that is used for the process integration if the communication to the respective device has not been established yet, but it will be taken into account after MERLIC was in the "Halted" state. |
|
Ready |
This state indicates that a recipe has been loaded and MERLIC is ready for the execution. In case of Hilscher PCI cards and digital I/O devices, it is also possible to change the recipe if MERLIC is in this state. |
|
SingleExecution |
This state indicates that MERLIC is currently running a single execution. |
|
ContinuousExecution |
This state indicates that MERLIC is currently running continuously. Continuous executions consist of a series of single executions without entering the "Ready" state between executions. |
Further Information
If you are using an I/O plug-in, you can find more information on the available states and how to check them in the following pages:
- Checking the MERLIC State (Hilscher)
- Checking the MERLIC State (Digital I/O)
- Checking the MERLIC State (I/O Camera)
If you are using a communication plug-in, you can find more information on how to check the current state in the respective plug-in documentation: Communication Plug-ins.