02/22/2022
Hi
Currently I’m struggling with creating a mapping to enable customers to calculate KPIs with different companion specifications (because they have different machines form different vendors at the shop floor)…
- Is it possible to mapp PackML-States to MachineryItemStates or should this solved with a combination of MachineryItemStates & MachineryOperationMode?
- MachineryOperationMode mode is extremley wide and unclear (should this be the intention of a standard?) – possible interpretatons are
- production mode like automatic / manual (e.g. single step) / maintenance (e.g. limitted speed, re-calibrate axis positions…)
- defined from a operation mode switch with impact to safety (e.g. SLS)
My fist idea was something like this
- PackML-Wait-States
(MachineryItemState = OutOfService) & (MachineryOperationMode = None) -> ABORTED
(MachineryItemState = OutOfService) & (MachineryOperationMode = Maintenance) -> HELD
(MachineryItemState = NotExecuting) & (MachineryOperationMode = None) -> STOPPED, IDLE, COMPLETE
(MachineryItemState = NotExecuting) & (MachineryOperationMode = Processing) -> SUSPENDED - PackML-Acting-States
(MachineryItemState = Executing) & (MachineryOperationMode = Setup) -> RESETING, STARTING, COMPLETING, UNSUSPENDING, UNHOLDING, CLEARING, STOPPING
(MachineryItemState = Executing) & (MachineryOperationMode = None) -> ABORTING
(MachineryItemState = Executing) & (MachineryOperationMode = Processing) -> EXECUTE, HOLDING, SUSPENDING
But the guidline for OEE with PackML defines something like this:
Time machine is producing product (EXECUTE + HOLDING + SUSPENDING)
HOLDING and SUPENDING because bringing the machine to a controlled stop with not creating scrap (so there could be partial produced goods inside the machine).
Time machine is in faliure (HELD + STOPPED + ABORDET)
This is strange:
- STOPPED isn’t defined as error-state
- HOLDING and ABORTING are acting states from a Hold or Abort command – in general there will be an Error to trigger this transition. so why are they not used for “time machine is in failure”? (this would have an impact to my mapping).
this would change the mapping to something like this
(MachineryItemState = Executing) & (MachineryOperationMode = Maintenance) -> HOLDING
(MachineryItemState = Executing) & (MachineryOperationMode = Processing) -> EXECUTE, SUSPENDING
what do you think? what would be the more appropriate interpretation? or am I completely wrong?
Best regards
Patrick
08/15/2019
Hi,
in general these state machines express different things. The State Machines in OPC UA for Machinery Part 1 express the state and operation modes of the machine (or component). These state machines are kept very generic, so that every domain can use them. It is up to the domains to use it like this or to add deeper information in Substate Machines. Examples for that can be found in OPC 40084-1 Chapter 7.4.1 or in OPC 40501 Chapter 8.3.10.
The State Machine in PackML rather expresses state of the production. Therefore it does not make sense from my point of view to map this with OPC UA for Machinery Part 1 without taking other information into account.
But furthermore there is the State Machine for the Job State in OPC 10031-4 OPC UA for ISA 95 Job Control (see figure 5). This state machine can be used alone or combined with OPC UA for Machinery. With the consideration of both you can combine the Machine Status and the status of the current job, which leads to a similar expression of the production as is done in Pack ML.
I hope this is helpful.
Best wishes
Heiko
1 Guest(s)