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.