The ProductionJobType provides aggregated production data for running a sequence to produce several parts after one preparation mounting.
Examples for such a mounting are putting four raw parts on a pallet for a machining centre, setting up the fitting diameter bars in a turning centre bar feeder or loading a metal sheet from which hundreds of parts can be cut or punched. This sequence shall represent several parts which will usually (but not always) be several identical products. A job may be executed several times.
The ProductionJobType is formally defined in Table 28.
Table 28 – ProductionJobType Definition
|Subtype of the BaseObjectType defined in OPC 10000-5 i.e. inheriting the InstanceDeclarations of that Node|
|Applied from 0:IOrderedObjectType|
The components of the ProductionJobType have additional references which are defined in Table 29.
Table 29 – ProductionJobType Additional Subcomponents
The Identifier is the identifier of the job. This Identifier is used to reference the job in other places of the AddressSpace, e.g. in the ProductionPartTransitionEventType. For this reason, the Identifier shall be unique.
The CustomerOrderIdentifier is used to reference the customer order this job belongs to. This information often originates from an external system handling production organisation (e.g. MES).
The OrderIdentifier is used to reference a company internal order the job belongs to. This information often originates from an external system handling production organisation (e.g. MES).
PartSets contains a list of ProductionPartSetType nodes related to the job. It is a list of the part sets, which contain the parts produced in the current run of the job. For the DisplayName of the <PartSet>, it is recommended to use the value of the Name Property of the respective ProductionPartSetType instance.
ProductionPrograms contains a list of ProductionProgramType nodes representing the programs used in the job. This list is made out of at least one instance of ProductionProgramType. The ordering of the programs is displayed using the HasOrderedComponent Reference and the NumberInList component of the ProductionProgramType instance applied from the IOrderedObjectType. The underlying ordering is the call sequence of the programs. The program called first shall have the number 0 and appear first along the OrderedComponents. For the DisplayName of the <OrderedObject>, it is recommended to use the value of the Name Property of the respective ProductionProgramType instance.
The ProductionPrograms may include one single ProductionProgramType instance. If it contains more than one ProductionProgramType instance, the call hierarchy of the programs is not shown in this list. Neither is the relation of programs and channels modelled in the ProductionProgramType. Which programs to include in the list can be chosen by the integrator of the information model (e.g. main program only, subprograms included, …). The list shall include programs relevant to the job and manufacturing of the job, macros and cycles for general purpose tasks are usually not included.
RunsCompleted is a counter that increases after each completed run of the job. This means, the run was not aborted and finished regularly. This counter does not give any indication about the part quality.
RunsPlanned indicates how many times a job should be executed. RunsPlanned has a Property called IsValid, which indicates if the planned number of job runs is known to the machine tool (True) or not (False). The number of planned job runs not being known occurs in continuous production, that is if the machine tool is started with the respective job and job runs are repeated endlessly. The production process only ends when the machine tool is stopped by an external measure (operator or system).
State is an instance representation of the ProductionJobStateMachineType. It indicates the current state the job is in and the transition used to get into this state.
NumberInList is used to enumerate ProductionJobType instances used as list elements. This index shall be 0 for the first list element and increase by one for each subsequent list element. If nodes are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following nodes in the list, such that the NumberInList elements always form a sequential series of numbers.