semi合集-English.pdf - 第2407页
SEMI E86-0200 © SEMI 1999 , 2000 7 Property toShift; // “ToShift”, new shift } PersonShiftChangedFilters; typedef struct PersonShiftChangedEvent_Structure { string eventSubject; TimeStamp eventTimeStamp; PersonShiftChang…

SEMI E86-0200 © SEMI 1999, 2000 6
/* Person lifecycle event definition. */
const string PersonLifecycleSubject =
"/PersonManagement/PersonManager/PersonLifecycle" ;
typedef struct PersonLifecycleFilters_Structure {
Property name; // “Name”, aPerson’s name
Property lifecycleEvent; // “LifecycleEvent”, LifecycleState
} PersonLifecycleFilters;
typedef struct PersonLifecycleEvent_Structure {
string eventSubject;
TimeStamp eventTimeStamp;
PersonLifecycleFilters eventFilterData;
Properties eventNews;
Person aPerson;
// Except when “Delete” where value will be nil
} PersonLifecycleEvent;
/* Person capacity changed event definition. */
const string PersonCapacityChangedSubject =
"/PersonManagement/Person/CapabilityChanged" ;
typedef struct PersonCapacityChangedFilters_Structure {
Property name; // “Name”, aPerson’s name
} PersonCapacityChangedFilters;
typedef struct PersonCapacityChangedEvent_Structure {
string eventSubject;
TimeStamp eventTimeStamp;
PersonCapacityChangedFilters eventFilterData;
Properties eventNews;
Person aPerson;
} PersonCapacityChangedEvent;
/* Person state changed event definition. */
const string PersonStateChangedSubject = "/PersonManagement/Person/StateChanged";
enum PersonState {PersonDefined, PersonOffShift, PersonOnShift,
PersonAvailableForWork, PersonNotAvailableForWork, PersonUnassignedToMachines,
PersonAssignedToJobs, PersonAssignedToMachines, PersonAvailableForMoreAssignments,
PersonAssignmentAtCapacityExceeded, PersonIdleWithJob, PersonBusyWithJob };
typedef struct PersonStateChangedFilters_Structure {
Property name; // “Name”, aPerson’s name
Property formerState; // “FormerState”, PersonState
Property newState; // “NewState”, PersonState
} PersonStateChangedFilters;
typedef struct PersonStateChangedEvent_Structure {
string eventSubject;
TimeStamp eventTimeStamp;
PersonStateChangedFilters eventFilterData;
Properties eventNews;
Person aPerson;
} PersonStateChangedEvent;
/* Person shift worked changed event definition. */
const string PersonShiftChangedSubject = "/PersonManagement/Person/ShiftChanged";
typedef struct PersonShiftChangedFilters_Structure {
Property name; // “Name”, aPerson’s name
Property fromShift; // “FromShift”, former shift

SEMI E86-0200 © SEMI 1999, 20007
Property toShift; // “ToShift”, new shift
} PersonShiftChangedFilters;
typedef struct PersonShiftChangedEvent_Structure {
string eventSubject;
TimeStamp eventTimeStamp;
PersonShiftChangedFilters eventFilterData;
Properties eventNews;
Person aPerson;
} PersonShiftChangedEvent;
6.3 Person Management Component
6.3.1 This component defines factory personnel (Person interface) to a CIM system. Persons are viewed as resour-
ces in the manufacturing environment, are assigned to a factory area, and own a detailed training and medical exam-
ination history (which qualifies them to perform a skill or set of skills). For example, there may be a requirement
that an operator periodically completes specific training or medical testing. Qualifications would include verifi-
cation that required training had occurred within the specified time limit. The associated skill would identify the
process capability enabled for this person through that qualification. At any given time, a Person may be assigned to
one or more factory jobs associated with other factory resources or operations.
6.3.2 The Component Information Model for Person Management is shown in Figure 2.
NamedEntity
(from Resource AIG)
TimeStamp
(from Global Type Defs)
Resource
(from Resource AIG)
Shift
(from Global Type Defs)
ResponsibilitySequence
(from Typedefs of sequences of Interfaces)
SkillSequence
(from Typedefs of sequences of Interfaces)
QualificationDataSequence
(from Typedefs of sequences of Interfaces)
ProcessCapabilitySequence
(from Typedefs of sequences of Interfaces)
ComponentManager
(from Resource AIG)
PersonSequence
(from Typedefs of sequences of Interfaces)
JobSequence
(from Typedefs of sequences of Interfaces)
MachineSequence
(from Typedefs of sequences of Interfaces)
MESFactory
(from Factory Comp)
SkillRequirement
History
Job
(from Job Supervision AIG)
Machine
(from Machine Group)
Area
(from Factory Comp)
PersonManager
0..*
11
has a
QualificationData
0..*
0..*
0..*
0..*
records
0..*
1
0..*
1
recorded in
SupportResource
(from Machine Group)
0..*
Skill
(from Skill Mgt Comp)
1..*
1
1..*
1
is defined by
Person
0..*
0..*
0..*
0..*
assigned to
0..*
0..*
0..*
0..*
assigned to
0..*
0..*
0..*
0..*
groups
0..*
1
0..*
1
creates and manages
0..*
1
0..*
1
qualifications
recorded in
0..*
0..*
0..*
0..*
assigned to
0..*
0..*
has
0..*
0..*
Figure 2
Person Management Component Information Model

SEMI E86-0200 © SEMI 1999, 2000 8
6.3.3 PersonManager Interface
Interface: PersonManager
Inherited Interface: ComponentManager
Description: This is the interface between the Person Management Component and the rest of the CIM
environment. The PersonManager creates instances of Persons within the factory and
manages those Persons (shift, job assignment and status information). There are no
limitations to the number of PersonManagers within a factory.
Exceptions:
/* This signal is raised with attempted creation of Person through the use of a Person identifier that already exists. */
exception PersonDuplicateSignal {string identificationNumber;};
/* This signal is raised when a retrieval operation fails because the Person specified by the argument could not be
located. */
exception PersonNotFoundSignal {string identificationNumber;};
/* This signal is raised when a removal operation fails because the Person specified by the argument is not assigned
to the PersonManager. */
exception PersonNotAssigned { Person unknownPerson;};
exception PersonRemovalFailedSignal { };
Published Events:
PersonLifecycleEvent
Provided Services:
/* Create an instance of Person with a unique identifier and add to the list managed by PersonManager. */
Person createPersonWithIdentifier (in string identificationNumber)
raises (FrameworkErrorSignal, PersonDuplicateSignal);
/* Delete the Person identified by the argument from the list managed by PersonManager. */
void removePerson (in Person aPerson)
raises (FrameworkErrorSignal, PersonRemovalFailedSignal,
PersonNotAssignedSignal);
/* Return a set of Persons managed by the PersonManager. */
PersonSequence allPersons ( ) raises (FrameworkErrorSignal);
/* Search for an instance of Person using its unique identifier. Raises an exception if the Person is not found. */
Person findByIdentifier (in string identificationNumber)
raises (FrameworkErrorSignal, PersonNotFoundSignal);
/* Return a set of all Persons logged on to the specified shift. */
PersonSequence allOnShiftPersons (in shift aShift) raises (FrameworkErrorSignal);
/* Return a set of all Persons available for work. */
PersonSequence allAvailableForWorkPersons ( ) raises (FrameworkErrorSignal);
/* Return a set of all Persons not available for work. */
PersonSequence allNotAvailableForWorkPersons ( ) raises (FrameworkErrorSignal);
/***** Manage Person / Machine relationship. *****/