Machine
Piper Object
Inputs
Commands
- Reset - Commands unit/machine to RESETTING state. Valid in STOPPED state.
- Start - Commands unit/machine to STARTING state. Valid in IDLE state.
- Stop - Commands unit/machine to STOPPING state. Valid in all states but ABORTING, ABORTED, CLEARING, STOPPING, and STOPPED.
- Hold - Commands unit/machine to HOLDING state. Valid in EXECUTE state.
- Unhold - Commands unit/machine to UNHOLDING state. Valid in HELD state.
- Suspend - Commands unit/machine to SUSPENDING state. Valid in EXECUTE state.
- Unsuspend - Commands unit/machine to UNSUSPENDING state. Valid in SUSPENDED state.
- Abort - Commands unit/machine to ABORTING state. Valid in all states but ABORTING, and ABORTED.
- Clear - Commands unit/machine to CLEARING state. Valid in ABORTED state.
- BypassAll - Bypass all Modules while byte is true.
- AcknowledgeError - Acknowledge error on Piper object.
Configuration
- LoggerName - Name of AR logger where events will be logged. Defaults to ‘App’.
- BootCycles - Number of cycles Machine will remain in state BOOTING and substate 0. Defaults to 50. This may need to be increased if Moudles are not registed before leaving BOOTING.
Outputs
- Error - Error has been received on a Module. TODO
- ErrorString - Description of current Piper error.
- State - Current Piper state.
- SubState - Current Piper substate.
- BusyModule - Pointer to first module reporting busy. Type: Module_Interface_typ*.
- ErrorModule - Pointer to first module reporting an error. Type: Module_Interface_typ*.
- SubStateRequestModule - Pointer to first module requesting a substate. Type: Module_Interface_typ*.
Types of States
- Acting State: A state which represents some processing activity, for example ramping up speed. It implies the single or repeated execution of processing steps in a logical order, for a finite time or until a specific condition has been reached, for example within the Starting state the quality and validity of the received data is checked, before ramping up speed for execution.
- Wait State: A stable state used to identify that a unit/machine has achieved a defined set of conditions. In such a state the unit/machine is holding or maintaining a status until a command causes a transition to an Acting state. The unit/machine is powered and stationary.
- NONE: These are not official states and are mostly used for communication between the unit/machine and its modules.
States
States will always flow according to PackML
State | Type | Description |
---|---|---|
MACH_ST_NOT_READY | NONE | Pre-booting. In this state Piper has not yet run. |
MACH_ST_BOOTING | Acting | In this state the unit/machine is performing one time actions required before operation can take place. |
MACH_ST_BOOTED | Wait | In this state the unit/machine has finished performing booting operations and will continue to STOPPED once all modules are DONE. This state can be interupted with an ABORT command. |
MACH_ST_ERROR | NONE | This is used for communication and between a module and unit/machine. This is not a machine state. |
MACH_ST_CLEARING | Acting | Within the CLEARING state the operator clears the safety system and moves the unit/machine into the STOPPED state. The unit/machine clears faults that may have occurred when ABORTING and are presented in the ABORTED state before proceeding to a STOPPED state. |
MACH_ST_STOPPED | Wait | The unit/machine is stationary and may be powered after completing the STOPPING state. The unit/machine is ready to be reset. Normal Starting of the unit/machine cannot be initiated unless Resetting had taken place. |
MACH_ST_STARTING | Acting | This state provides the steps needed to start the unit/machine and is a result of a Start command. |
MACH_ST_IDLE | Wait | This is a state which indicates that Resetting is complete. The unit/machine is ready for production. |
MACH_ST_SUSPENDED | Wait | In this state the unit/machine is not producing any products. It will either stop running or continue to cycle without producing until external process conditions return to normal, at which time the SUSPENDED state will transition to the UNSUSPENDING state, typically without any operator intervention. |
MACH_ST_EXECUTE | Acting | Machine is in stable acting state |
MACH_ST_STOPPING | Acting | This state executes control logic which brings the unit/machine to a controlled stop as reflected by the STOPPED state. |
MACH_ST_ABORTING | Acting | The ABORTING state can be entered at any time as a response to an Abort command. The aborting logic will bring the unit/machine to a rapid safe stop. The Aborting logic will provide the necessary actions to move the unit/machine into the ABORTED State. |
MACH_ST_ABORTED | Wait | The unit/machine can only exit the ABORTED state after an explicit Clear command. |
MACH_ST_HOLDING | Acting | Transition state from EXECUTING to HELD |
MACH_ST_HELD | Wait | In this state the unit/machine is not producing, until the operator made a transition to the EXECUTING state. |
MACH_ST_SUSPENDING | Acting | Transition state from EXECUTING to SUSPENDED. |
MACH_ST_UNSUSPENDING | Acting | Transition state from SUSPENDED to EXECUTING |
MACH_ST_RESETTING | Acting | The RESETTING state will start the resetting process, which typically cause the unit/machine to clear data and to place the unit/machine in an IDLE state, where the unit/machine components are energized waiting for a Start command. |
MACH_ST_COMPLETING | Acting | This state provides the steps needed to complete the job, such as the result of a product counter value has been reached in the unit. |
MACH_ST_COMPLETE | Wait | The unit/machine has finished the COMPLETING state and is now waiting for a RESET command before transitioning to the RESETTING state. The unit/machine is powered and all data is still represented within the unit. The unit/machine is ready to be reset. |
MACH_ST_BYPASSED | NONE | Module is bypassed. This state is only reported to modules with bypassed set and is not a machine state. |