Equipment Objects

Sepasoft MES Module Suite

Equipment Objects

There are two main types of equipment used by the MES modules:
  • Fixed: defined as part of the Production Equipment Model and created in the Equipment Manager
  • Supplemental. created through scripting or through the MES Object Editor.
For both types of equipment, a specific object type is created that is derived from the Abstract MES Object.

Inherits properties, events, and functions from AbstractMESObject.

In this section:


Object Creation

These objects, except supplemental equipment and equipment class, are automatically created when production items are created in the Equipment Hierarchy.

The following scripting function returns these type of objects.
Note
Historical Data Note:
MESEquipment and MESEquipmentClass objects have a corresponding Response object which is an internal versioning schema created to maintain historical production data. Every time an equipment object is modified (i.e. adding custom properties, changing a setting etc.) the version number of that object is updated. When an operation is executed, it looks for the Response Object version and creates a new response object if one does not exist. This versioning is not part of ISA-95 , however, without it, analysis of historical data would lose the original configuration of equipment, personnel and materials.

The following table summarizes the objects that inherit from the MESEquipmentObject.

Object

Type Name

Description

Auto

Created

Can Run

Op

Can Perform

Analysis

Storage

Capable

MESEquipment Equipment Supplemental equipment (i.e mobile storage such as bins, pallets or die sets).This equipment does not reside in the production model and operations cannot be performed on them.



   X           

      X          

MESEnterprise Enterprise Enterprise level object configured in the equipment hierarchy.

X




MESSite Site Site-level object configured in the equipment hierarchy.

X


      X        


MESArea Area Area-level object configured in the equipment hierarchy.



     X           


MESProcessCell ProcessCell Process-Cell level object configured in the equipment hierarchy.



     X       


MESUnit Unit Unit-level object configured in the equipment hierarchy.



       X         


MESLine Line Line level object configured in the equipment hierarchy.

X

       X         

        X        

X
MESLineCellGroup LineCellGroup LineCellGroup level object configured in the equipment hierarchy.

X


       X           

   X   

MESLineCell LineCell LineCell level object configured in the equipment hierarchy.

X

     X         

    X          

   X   

MESStorageZone StorageZone StorageZone level object configured in the equipment hierarchy.

X


    X       


MESStorageUnit StorageUnit StorageUnit level object configured in the equipment hierarchy.

X

           X        


   X   

MESLocation Location Location objects can collect SPC data and are configured in the equipment hierarchy.

X


X



Object Properties

Inherits properties from AbstractMESObject.

This object provides the following properties:

Name
Scripting
Description
Equipment Path EquipmentPath
Equipment path is the location path for the specified equipment.

The equipment path is based on the hierarchy of the item in the production model. Referring to the image below, the equipment path for Cell 1A, is:

My Company Name\My Site\My Area\Line 1\Cell 1A

Equipment paths are used by some of the MES components and script functions to easily identify equipment items.


Equipment Force Single Lot EquipmentForceSingleLot Force storage of a single lot. There should be at least one lot.
Equipment Ignition Schedule 

EquipmentIgnitionSchedule

Scheduling the equipment in Ignition.
Equipment Lot Handling Mode EquipmentLotHandlingMode

This would handle the equipment lots. The different types of mode available are single lot, random lot, FIFO, LIFO, same lot, blend lot and unknown.

Equipment Zero Lot Threshold

EquipmentZeroLotThreshold


If the lot threshold is less than 0, it returns Invalid lot.
Equipment Cell Order EquipmentCellOrder Integer value that determines the cell order of the equipment within the line or cell group. This is utilized in the OEE Downtime module. This value is set to  null  for the line. The cell order is set to 0 for the key cell or first cell (if key reason downtime detection is not used) within each cell group. Please note that this is a local order, not a global order. This value resets to zero under every line and cell group.
Equipment State Class UUID EquipmentStateClassUUID

UUID for the Equipment State Class currently assigned to the Line or Cell.


Python
eq_path = '[global]\Enterprise\Site\Area\Line 2\Filler'
eq_obj = system.mes.loadMESObjectByEquipmentPath(eq_path)
 
old_state_class_uuid = eq_obj.getPropertyValue('EquipmentStateClassUUID')
print old_state_class_uuid
 
new_state_class_obj = system.mes.loadMESObject('Default (1)', 'EquipmentStateClass')
new_state_class_uuid = new_state_class_obj.getUUID()
print new_state_class_uuid
 
eq_obj.setPropertyValue('EquipmentStateClassUUID', new_state_class_uuid)
system.mes.saveMESObject(eq_obj)
 
eq_obj = system.mes.loadMESObjectByEquipmentPath(eq_path)
final_state_class_uuid = eq_obj.getPropertyValue('EquipmentStateClassUUID')
print final_state_class_uuid


Active Active

A Boolean flag indicating if the equipment should be engaged within the model. 

Tag collectors and Live Analysis look at this property for execution. 

For initial set-up, before tags are populated, this flag is defaulted to False (active = False) so that failed tag collection attempts are not initiated. 

This is not a property that is intended for frequent "turning on" and "turning off".  Equipment Mode in an OEE context provides that type of functionality.  This property is intended for license level changes and initial set-up.

Python
eq_path = '[global]\Enterprise\Site\Area\Line 2\Filler'
eq_obj = system.mes.loadMESObjectByEquipmentPath(eq_path)
eq_obj.setActive(True)
system.mes.saveMESObject(eq_obj)

 Object Functions

Warning The following object functions are not applicable for supplemental equipment.

Object Functions - Equipment, Schedule, Lot


 

getEquipmentPath()

Description

Gets the path associated with this equipment object.

Syntax

getEquipmentPath()

  • Parameters

None

  • Returns

 String EquipmentPath - The path associated with this equipment.

  • Scope

All

Get the Equipment Path
Python
##Get the equipment item.  In this example, we're using a line.
obj = system.mes.loadMESObject('Line 1', 'Line')
  
##Get and print the Equipment Path
print obj.getEquipmentPath()

 

getEquipmentModeClassUUID()

Description

Gets UUID of the equipment mode class. Can be used to retrieve the Equipment Mode Class and determine, edit, and modify the relevant modes for the equipment. Used with OEE Downtime.

Syntax

getEquipmentModeClassUUID()

  • Parameters

None

  • Returns

 String uuid - The uuid that represents the equipment mode class.

  • Scope

All

Get the Equipment Mode Class UUID
Python
##Get the equipment item.  In this example, we're using a line.
obj = system.mes.loadMESObject('Line 1', 'Line')
  
##Get and print the Equipment Mode Class UUID
print obj.getEquipmentModeClassUUID()

 

getEquipmentStateClassUUID()

Description

Gets uuid of the equipment state class. Can be used to retrieve the Equipment State Class and determine, edit, and modify the relevant states for the equipment. Used with OEE Downtime.

Syntax

getEquipmentStateClassUUID()

  • Parameters

None

  • Returns

 String uuid - The uuid that represents the equipment state class.

  • Scope

All

Get the Equipment State Class UUID
Python
##Get the equipment item.  In this example, we're using a line.
obj = system.mes.loadMESObject('Line 1', 'Line')
  
##Get and print the Equipment State Class UUID
print obj.getEquipmentStateClassUUID()

 

getIgnitionSchedule()

Description

Gets the Ignition Schedule associated with this equipment object.

Syntax

getIgnitionSchedule()

  • Parameters

None

  • Returns

 String schedule - The ignition schedule associated with this equipment.

  • Scope

All

Get the Ignition Schedule
Python
##Get the equipment item.  In this example, we're using a line.
obj = system.mes.loadMESObject('Line 1', 'Line')
  
##Get and print the Ignition Schedule
print obj.getIgnitionSchedule()

 

getLotHandlingMode()

Description

Gets the lot handling mode set to this equipment object.

Syntax

getLotHandlingMode()

  • Parameters

None

  • Returns

 String mode - The lot handling mode associated with this equipment.

  • Scope

All

Get the Lot Handling Mode
Python
##Get the equipment item.  In this example, we're using Supplemental Equipment.
obj = system.mes.loadMESObject('Bin 001', 'Equipment')
  
##Get and print the lot handling mode
lotHandlingMode = obj.getLotHandlingMode()
print lotHandlingMode

 

setLotHandlingMode(modeType)

Description

Sets the lot handling mode for this equipment object.

Syntax

setLotHandlingMode(modeType)

  • Parameters

LotHandlingModeType  modeType - The lot handling mode to set for. Options are Single Lot, Random Lot, FIFO, LIFO, Same Lot and Blend Lot.

  • Returns

Nothing

  • Scope

All

Setting Lot Handling Mode Programmatically
Python
##NOTE: setLotHandlingMode(modeType) method MAY NOT be utilized since a Mode Type object may not be retrieved/created.  Therefore, utilize the method shown below.
##Get the equipment item.  In this example, we're using Supplemental Equipment.
obj = system.mes.loadMESObject('Bin 001', 'Equipment')
  
##Set the lot handling mode to "Single Lot"
prop = 'Single Lot'
obj.setPropertyValue('EquipmentLotHandlingMode', prop)
  
##Save the new object to manifest the changes.
system.mes.saveMESObject(obj)

getDowntimeDetectionMode()

 
Description

Gets the current Downtime Detection Mode for this equipment.

Syntax

getDowntimeDetectionMode()

  • Parameters

None

  • Returns

String equipmentDowntimeDetectionMode - The current Downtime Detection Mode for this equipment.

  • Scope

All

Set and get Downtime Detection Modes
Python
##Set a Downtime Detection Mode for Line 1 and then read it back.
line = system.mes.loadMESObjectByEquipmentPath('New Enterprise\Site 1\Area 1\Line 1')
line.setDowntimeDetectionMode("Key Reason (Neighbor Priority)")
DTDMode = line.getDowntimeDetectionMode()
print DTDMode
print DTDMode.getName()

Results
KEY_REASON_NEIGHBOR_PRIORITY


Key Reason (Neighbor Priority)
 

getDowntimeDetectionModeNames()

Description

Gets a list of all equipment Downtime Detection Mode type names for this equipment.

Syntax

getDowntimeDetectionModeNames()

  • Parameters

None

  • Returns

List equipmentDowntimeDetectionModeNames - A list of all Downtime Detection Mode type names for this equipment.

  • Scope

All

Set and get Downtime Detection Modes
Python
##Create several Downtime Detection Modes
options = [
"Equipment State",
"Key Reason (Cell Priority)",
"Key Reason (Neighbor Priority)",
"Initial Cell",
"Parallel Cells",
]
line = system.mes.loadMESObjectByEquipmentPath('New Enterprise\Site 1\Area 1\Line 1')
 
##Read back all Downtime Detection Modes as a list
DTDModeNames = line.getDowntimeDetectionModeNames()
print DTDModeNames
print '--------------------'
 
##Set and then read back each Downtime Detection Mode one by one
for option in options:
    line.setDowntimeDetectionMode(option)
    DTDMode = line.getDowntimeDetectionMode()
    print DTDMode
    print DTDMode.getName()
    print '----'

Results
Python
[ "Equipment State", "Key Reason (Cell Priority)", "Key Reason (Neighbor Priority)", "Initial Cell", "Parallel Cells", ]


--------------------


EQUIPMENT_STATE


Equipment State


----


KEY_REASON_CELL_PRIORITY


Key Reason (Cell Priority)


----


KEY_REASON_NEIGHBOR_PRIORITY


Key Reason (Neighbor Priority)


----


INITIAL_REASON


Initial Cell


----


PARALLEL_CELLS


Parallel Cells


----

      

 setDowntimeDetectionMode(downtimeDetectionMode)

Description

Sets the equipment's Downtime Detection Mode. An exception will be thrown if the string provided does not match an available mode (case insensitive).

Syntax

setDowntimeDetectionMode(downtimeDetectionMode)

  • Parameters

String downtimeDetectionMode - The Downtime Detection Mode to set for this equipment. An exception will be thrown if the string provided does not match an available mode (case insensitive).

  • Returns

 Nothing

  • Scope

All

Set and get Downtime Detection Modes
Python
##Set Downtime Detection Mode for Line 1
line = system.mes.loadMESObjectByEquipmentPath('New Enterprise\Site 1\Area 1\Line 1')
line.setDowntimeDetectionMode("Key Reason (Neighbor Priority)")


Object Functions - Equipment Complex Properties

Sepasoft MES Module Suite