The GlassMachineType provides the information of the machine and is formally defined in Table 12. A Machine or system can contain other subsystems (e.g. other machines or devices). Such a complex system can be modelled with the component structure from OPC UA Machinery (see OPC 40001-1section 11).
This GlassMachine object can be further divided into subtypes using the modular device structure from OPC UA for Machinery.
Table 12 – GlassMachineType Definition
Attribute |
Value |
||||
BrowseName |
GlassMachineType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
HasAddIn |
Object |
2:Identification |
|
GlassMachineIdentificationType |
Mandatory |
0:HasComponent |
Object |
MaintenanceManuals |
|
ManualFolderType |
Optional |
0:HasComponent |
Object |
OperationManuals |
|
ManualFolderType |
Optional |
0:HasComponent |
Object |
Production |
|
ProductionType |
Mandatory |
HasAddIn |
Object |
Components |
|
3:MachineComponentsType |
Optional |
0:HasComponent |
Object |
ConfigurationRules |
|
ConfigurationRulesType |
Mandatory |
Identification contains the information to identify the glass machine. For more information see GlassMachineIdentificationType and OPC 40001-1(MachineIdentificationType).
MaintenanceManuals contains the manuals or the references to the manuals for the maintenance process.
OperationManuals contains the manuals or the references to the manuals for the operation process.
Production contains the information and methods that relate to the production. This includes the states of the current jobs and methods for insert, remove, release, suspend a job.
Components contains components or submachines of the glass machine.
ConfigurationRules contains the properties that describe the machine configuration.
The GlassMachineIdentificationType provides the information about the identification process and is formally defined in Table 13.
Table 13 – GlassMachineIdentificationType Definition
Attribute |
Value |
||||
BrowseName |
GlassMachineIdentificationType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the 3:MachineIdentificationType defined in this OPC UA 400001-1 , i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasProperty |
Variable |
LoggedInProfiles |
UserProfileType[] |
0:PropertyType |
Optional |
LoggedInProfiles contains a List of logged (local and via OPC UA) in user profiles at the machine.
The ManualFolderType provides information about the manuals and is formally defined in Table 14.
Table 14 – ManualFolderType Definition
Attribute |
Value |
||||
BrowseName |
ManualFolderType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the FolderType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<LocalManuals> |
|
0:FileType |
OptionalPlaceholder |
0:HasProperty |
Variable |
ExternalManuals |
LimitedString64[] |
0:PropertyType |
Optional |
<LocalManuals> contains all manuals, which are stored on the machine control memory and can be accessed via OPC UA.
ExternalManuals contains URIs (by RFC 3986) of manuals, which are stored on external systems. Example: https://example.com/manual/5789; ftp://example.com/manual/234985923
The ConfigurationRulesType provides information about the configuration of the machine. This includes all nodes in the OPC UA address space that are related to the machine. It also contains the possible file format and units, which can be handeled by the server. It is formally defined inTable 14.
Table 15 – ConfigurationRulesType Definition
Attribute |
Value |
||||
BrowseName |
ConfigurationRulesType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasProperty |
Variable |
AllowedFileFormats |
FileFormatType[] |
0:PropertyType |
Optional |
0:HasProperty |
Variable |
AllowedEngineeringUnits |
0:EUInformation[] |
0:PropertyType |
Optional |
0:HasProperty |
Variable |
MachineProcessingCoordinateSystem |
CoordinateSystemEnumeration |
0:PropertyType |
Mandatory |
AllowedFileFormats contains all file formats allowed for this machine. A file format describes the syntax and semantic of a document. If there are different versions allowed all must be added.
AllowedEngineeringUnits contains an array of engineering units that can be handled by the OPC UA server for this machine. A machine that supports a method with the input argument EUInformation must also provide this array.
Note: It is recommended to use SI units or units derived from SI units The following units should be used:
- Millimeter (mm) for Length
- Kilogram (kg) for Weight
MachineProcessingCoordinateSystem specifies where the machine coordinate origin is located and in which direction the axes are pointing.
The ProductionType provides a job management structure to manage the machine capacity utilization and is formally defined in Table 16.
Table 16 – ProductionType Definition
Attribute |
Value |
||||
BrowseName |
ProductionType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Method |
ChangePositionInList |
|
|
Optional |
0:HasComponent |
Method |
DeleteJob |
|
|
Optional |
0:HasComponent |
Method |
InsertJob |
|
|
Optional |
0:HasComponent |
Object |
ProductionPlan |
|
ProductionPlanType |
Mandatory |
0:HasProperty |
Variable |
JobListIsRecommendation |
0:Boolean |
0:PropertyType |
Mandatory |
0:HasProperty |
Variable |
MaxCountOfJobs |
0:UInt32 |
0:PropertyType |
Optional |
0:HasProperty |
Variable |
CurrentCountOfJobs |
0:UInt32 |
0:PropertyType |
Optional |
0:HasProperty |
Variable |
SupportedMaterialTypes |
0:NodeId[] |
0:PropertyType |
Optional |
ProductionPlan defines a folder for the placeholders of jobs and keeps all information regarding the jobs. The job list contains all jobs that should be processed with this machine. The jobs are sorted in the ProductionPlan, but that sorting can be changed. If a job is ended, the machine decides which Job will be processed next.
JobListIsRecommendation is a flag which indicates that the sequence in the ProductionPlan is a recommendation. That means that the machine and/or the operator can modify the sequence. If the first job in the sequence is interrupted or idled/queued another job can be processed. The sequence in the JobList is fixed if the flag is false and if the first job cannot be processed, an interaction is necessary.
MaxCountOfJobs contains the maximum amount of jobs, which the server is able to handle within its memory capacity. CurrentCountOfJobs contains the current number of jobs, which are stored on the server at the moment.
SupportedMaterialTypes contains the NodeId of all MaterialTypes (subtypes of the BaseMaterialType) that can be used in this machine.
This method requests a change of the PositionInList to modify the processing order. The new position is specified by the NodeId of another job. If the flag ´before´ is true, the new position is before the given job. If the flag ´before´ is false, the new position will be after the given job. For example, the list contains 3 jobs (job_a, job_b, job_c), if the method is called for job_c with the NodeId of job_a and before is true, the new list is job_c, job_a, job_b. If the same method is called with the flag false, the new list is job_a, job_c, job_b.
The signature of this Method is specified below in Table 17 and Table 18 which specify the Arguments and AddressSpace representation, respectively.
Signature
ChangePositionInList (
[in]LimitedString64Target,
[in]LimitedString64Source,
[in]0:BooleanBefore);
Table 17 – ChangePositionInList Method Arguments
Argument |
Description |
Target |
NodeID of the target job |
Source |
NodeID of the source job |
Before |
Boolean: If it is true the actual Job is moved before the target in list, if it is false the actual Job if moved behind. |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 18 – ChangePositionInList Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
ChangePositionInList |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
0:HasProperty |
Variable |
0:InputArguments |
0:Argument[] |
0:PropertyType |
0:Mandatory |
Method to delete a specific job. The HLS sends a deletion request to the machine. As a result, the job is removed from the job list. This is only possible, if the job has been suspended before. Suspend acts as a parking place.
The signature of this Method is specified below in Table 19 and Table 20 which specify the Arguments and AddressSpace representation, respectively.
Signature
DeleteJob (
[in] LimitedString64Identifier
);
Table 19 – DeleteJob Method Arguments
Argument |
Description |
Identifier |
Unique Identifier for the job |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 20 – DeleteJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
DeleteJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
0:HasProperty |
Variable |
0:InputArguments |
0:Argument[] |
0:PropertyType |
0:Mandatory |
Method to create a new job. HLS creates and sends a job into the job list on the machine. The JobState is suspended (= default job state).
The signature of this Method is specified below in Table 21 and Table 22 which specify the Arguments and AddressSpace representation, respectively.
The AddressSpace definition can be omitted if there are no Properties other than InputArguments and OutputArguments.
Signature
InsertJob (
[in]LimitedString64Identifier,
[in]LimitedString64Name,
[in]0:NodeId[]InputMaterial,
[in]0:NodeId[]OutputMaterial
[out]0:NodeIdJobNodeId
);
Table 21 – InsertJob Method Arguments
Argument |
Description |
Identifier |
Unique ID for the job |
Name |
Human readable name of the job |
InputMaterial |
Optional: Describes the materials to be processed within the job. Can include MaterialBaseType, RawGlassType, (Surface)GlassType |
OutputMaterial |
Optional: Describes the material-result of processing from the materials side. |
JobNodeId |
Optional: NodeId of the new created Job object (subtype of ProductionJobType) |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 22 – InsertJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
InsertJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
0:HasProperty |
Variable |
0:InputArguments |
0:Argument[] |
0:PropertyType |
0:Mandatory |
0:HasProperty |
Variable |
0:OutputArguments |
0:Argument[] |
0:PropertyType |
0:Mandatory |
The ProductionPlanType provides the list of ProductionJobTypes and is formally defined in Table 23.
Table 23 – ProductionPlanType Definition
Attribute |
Value |
||||
BrowseName |
ProductionPlanType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the OrderedListType defined in OPC 10000-13, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
HasOrderedComponent |
Object |
<OrderedObject> |
|
ProductionJobType |
OptionalPlaceholder |
0:<OrderedObject> is a placeholder for any number of ProductionJobType instances. To indicate the order of jobs on the machine tool, the NumberInList parameter of the ProductionJobType is used. This index shall be 0 for the first list element and increase by one for each subsequent list element. If jobs are deleted from the list or inserted into the list, the NumberInList has to be adjusted for all following ProductionJobType instances in the list, such that the NumberInList elements always form a sequential series of numbers. For the DisplayName of the <OrderedObject>, it is recommended to use the value of the Identifier Property of the respective ProductionJobType instance.
The InstructionType provides all the information required by the glass machine to perform the job. In case of an assembly job, it contains all necessary steps for the mounting of the unit. For a glass cutting process the cutting plan is provided. The InstructionType is formally defined in Table 24.
Table 24 – InstructionType Definition
Attribute |
Value |
||||
BrowseName |
InstructionType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Plan |
|
0:FileType |
Mandatory |
0:HasProperty |
Variable |
PlanFileFormat |
FileFormatType |
0:PropertyType |
Mandatory |
Plan contains the instruction for the job. In case of a programmable machine, it contains the program code.
PlanFileFormat defines the file format of the plan. This is used to ensure compatibility between the plan and the machine.
The ProductionJobType provides all information for a single job and is formally defined in Table 25.
Table 25 – ProductionJobType Definition
Attribute |
Value |
||||
BrowseName |
ProductionJobType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
InputMaterials |
|
FolderType |
Mandatory |
0:HasComponent |
Object |
OutputMaterials |
|
FolderType |
Mandatory |
0:HasComponent |
Variable |
EndTime |
0:DateTime |
0:BaseDataVariableType |
Mandatory |
0:HasComponent |
Object |
Instruction |
|
InstructionType |
Mandatory |
0:HasProperty |
Variable |
Identifier |
LimitedString64 |
0:PropertyType |
Mandatory |
0:HasComponent |
Object |
State |
|
ProductionStateMachineType |
Mandatory |
0:HasComponent |
Object |
Lock |
|
2:LockingServicesType |
Optional |
0:HasProperty |
Variable |
Name |
LimitedString64 |
0:PropertyType |
Optional |
0:HasComponent |
Method |
ReleaseJob |
|
|
Optional |
0:HasProperty |
Variable |
JobGroup |
LimitedString64 |
0:PropertyType |
Optional |
0:HasComponent |
Variable |
StartTime |
|
0:BaseDataVariableType |
Mandatory |
0:HasComponent |
Method |
SuspendJob |
|
|
Optional |
0:HasComponent |
Method |
AbortJob |
|
|
Optional |
0:HasComponent |
Method |
QueueJob |
|
|
Optional |
0:HasInterface |
ObjectType |
0:IOrderedObjectType |
|
|
|
Applied from 0:IOrderedObjectType |
|||||
0:HasProperty |
Variable |
NumberInList |
0:UInt16 |
0:PropertyType |
Mandatory |
InputMaterials describes a folder that contains objects of subtypes of the BaseMaterialType. These represents the materials to be processed within the job. The folder contains a MandatoryPlaceholder of the BaseMaterialType.
OutputMaterial describes a folder that contains objects of subtypes of the BaseMaterialType. These represents the materials after processing from the materials side. The folder contains a MandatoryPlaceholder of the BaseMaterialType.
EndTime defines the timestamp when processing was finished and the machine switched to the ended or aborted state.
Instruction contains all the information required by the glass machine to perform the job. In case of an assembly job, it contains all necessary steps for the mounting of the unit. For a glass cutting process, the cutting plan is provided.
Identifier defines a unique identifier for the job.
State describes the current processing state in reference to the ProductionStateMachine.
Lock contains the methods and properties to get the information about the locking status of the job and to modify the lock. For more information refer to Locking Service in OPC 10000-100.
Name defines a human readable name of the job.
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.
StartTime defines the timestamp of starting processing when the machine switched from released to the running state.
JobGroup is an attribute to combine multiple jobs in a configurable order.
The components of the ProductionJobType have additional subcomponents which are defined in Table 26
Table 26 – ProductionJobType Type Additional Subcomponents
BrowsePath |
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
Others |
InputMaterials |
0:HasComponent |
Object |
<InputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
OutputMaterials |
0:HasComponent |
Object |
<OutputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
Method to abort a job. Let the job enter the state Abort from the JobStateMachine. If the job is in running the stop will be stopped. The stop behaviour depends on the machine and the current conditions of the machine.
The signature of this Method is specified below in Table 27 and Table 28 which specify the Arguments and AddressSpace representation, respectively.
Signature
AbortJob (
);
Table 27 – AbortJob Method Arguments
Argument |
Description |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 28 – AbortJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
ReleaseJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Method to release a job. Let the job enter the state released from the JobStateMachine. A released job can be processed by the machine. This Release Method can be called only if the job is locked from this client (see Lock Service). This method will unlock the job within the releasing process.
The signature of this Method is specified below in Table 29 and Table 30 which specify the Arguments and AddressSpace representation, respectively.
Signature
ReleaseJob (
);
Table 29 – ReleaseJob Method Arguments
Argument |
Description |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 30 – ReleaseJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
ReleaseJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
A method to suspend a job. Let the job enter the state suspended from the JobStateMachine. A suspended job will not be processed by the machine.
The signature of this Method is specified below in Table 31 and Table 32 which specify the Arguments and AddressSpace representation, respectively.
Signature
SuspendJob (
);
Table 31 – SuspendJob Method Arguments
Argument |
Description |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 32 – SuspendJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
SuspendJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
Method to queue a job which has been inserted via the InsertJob Method and all required data has been passed to the OPC UA server for production. Let the job enter the state Queued from the JobStateMachine. A queued job is ready to receive the final production release.
The signature of this Method is specified below in Table 31 and Table 32 which specify the Arguments and AddressSpace representation, respectively.
Signature
QueueJob(
);
Table 33 – QueueJob Method Arguments
Argument |
Description |
Method Result Codes (defined in Call Service)
Result Code |
Description |
Bad_UserAccessDenied |
See OPC 10000-4 for a general description. |
Table 34 – QueueJob Method AddressSpace definition
Attribute |
Value |
||||
BrowseName |
QueueJob |
||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
The ProductionStateMachineType describes a fundamental statemachine for processing jobs from glass machines and is formally defined in Table 38. An implementation of this statemachine is mandatory. Furthermore, it can be extended by further substatemachines (e.g. for a detailed description of the Running state). The name of each transition consists of the names of the states it connects: [FromState]To[ToState]. Their References are specified in Table 37.
On the first level, the state machine consists of the states Initialized (there is a sub-state-machine with Idle, Queued, Released), Running, Interrupted, Aborted and Ended. The state transitions can be initiated by HLS or by the machine itself. Figure 15 shows the state machine and the state transitions graphically.
Table 35 – ProductionStateMachineType Definition
Attribute |
Value |
|||||
BrowseName |
ProductionStateMachineType |
|||||
References |
NodeClass |
BrowseName |
DataType |
TypeDefinition |
ModellingRule |
|
Subtype of the FiniteStateMachineType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Object |
Aborted |
|
0:StateType |
|
|
0:HasComponent |
Object |
AbortedToInitializing |
|
0:TransitionType |
|
|
0:HasComponent |
Variable |
0:CurrentState |
0:LocalizedText |
0:FiniteStateVariableType |
0:Mandatory |
|
0:HasComponent |
Object |
Ended |
|
0:StateType |
|
|
0:HasComponent |
Object |
EndedToInitializing |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
Initializing |
|
0:InitialStateType |
|
|
0:HasComponent |
Object |
InitializingToAborted |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
InitializingToRunning |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
Interrupted |
|
0:StateType |
|
|
0:HasComponent |
Object |
InterruptedToAborted |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
InterruptedToRunning |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
Running |
|
0:StateType |
|
|
0:HasComponent |
Object |
RunningToAborted |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
RunningToEnded |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
RunningToInterrupted |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
RunningToRunning |
|
0:TransitionType |
|
|
0:HasComponent |
Object |
InitializingState |
|
InitializingSubStateMachineType |
0:Mandatory |
The states shall have the numbers indicated in Table 36; the transitions shall have the numbers indicated in Table 36.
Initializing is the state in which the element in production is being prepared. During this state, the machine and the job doesn’t have to be ready for production, although it has to be as soon as the transition InitializingToRunning is used. The production is not yet started. This state contains a sub-statemachine of the Type InitializingSubStateMachineType. Depending on the implementation, a glass machine starts to process the jobs which have been released for production either by itself or by an operator. The machine sets the status of the next released job in the queue to Running and processes it.
Running indicates that the operation of a job in production has been started or re-started and is currently running. There can be sub-statemachines in future versions of this standard or vendor-specific sub-statemachines.
Interrupted indicates that the execution of a job in production has been reversibly halted. This is usually due to an error or an intervention by the operating personnel. It is possible to restart operation of or on the element in production after it was in the interrupted state. From Interrupted you can switch back to the Running state by Continue or, if the processing is to be aborted with Abort to the State Aborted (both transitions are machine internal). Furthermore, an interrupted job can be brought back to the Queued state with the SuspendMethod called by an HLS.
The state Aborted indicates, that the operation of a job in production has been irreversibly stopped before finishing. In addition, an already scheduled job can be moved directly to the Aborted state with the Abort-Method from HLS if the job is not to be produced.
Ended is reached when the operation of a job in production has been finished. Jobs can only be removed in the states Ended and Initializing (only in sub-states Idle and Queued).
Table 36 – ProductionStateMachineType Attribute values for child Nodes
Source Path |
Value Attribute |
Description Attribute |
||
State Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
|
3 |
|
||
|
4 |
|
||
Transition Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
|
3 |
|
||
|
4 |
|
||
|
5 |
|
||
|
6 |
|
||
|
7 |
|
||
|
8 |
|
||
|
9 |
|
Fields may be empty which means this Attribute is not defined.
InitializingToRunning is triggered when the operation of a job in production starts.
RunningToEnded is triggered when the operation of a job in production finishes.
EndedToInitializing is triggered when re-initialization of the operation of a job in production starts.
RunningToRunning is triggered when another consecutive run of the operation of a job in production in direct succession starts.
RunningToInterrupted is triggered when the operation of a job in production is interrupted.
InterruptedToRunning is triggered when an interruption ends and the operation of a job in production continues running.
RunningToAborted is triggered when the operation of a job in production is aborted while in the Running state.
InterruptedToAborted is triggered when the operation of a job in production is aborted while in the Interrupted state. AbortedToInitializing is triggered if the operation of a job in production is being re-initialized after an abort.
InitializingToAborted is triggered when the operation of a job in production is aborted while in the Initializing state.
Table 37 – ProductionStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
AbortedToInitializing |
0:FromState |
True |
Aborted |
|
0:ToState |
True |
Initializing |
EndedToInitializing |
0:FromState |
True |
Ended |
|
0:ToState |
True |
Initializing |
InitializingToAborted |
0:FromState |
True |
Initializing |
|
0:ToState |
True |
Aborted |
InitializingToRunning |
0:FromState |
True |
Initializing |
|
0:ToState |
True |
Running |
InterruptedToAborted |
0:FromState |
True |
Interrupted |
|
0:ToState |
True |
Aborted |
InterruptedToRunning |
0:FromState |
True |
Interrupted |
|
0:ToState |
True |
Running |
RunningToAborted |
0:FromState |
True |
Running |
|
0:ToState |
True |
Aborted |
RunningToEnded |
0:FromState |
True |
Running |
|
0:ToState |
True |
Ended |
RunningToInterrupted |
0:FromState |
True |
Running |
|
0:ToState |
True |
Interrupted |
RunningToRunning |
0:FromState |
True |
Running |
|
0:ToState |
True |
Running |
The InitializingSubStateMachineType provides more finely subdivided states (Idle, Queued and Released) to the Initialized state. Idle, are jobs which have been created but not yet scheduled. If the job is scheduled by an HLS in the queue of the glass machine, the state changes to Queued. To reach the Released state, which symbolizes the production release, an HLS must confirm the release by calling the ReleasedMethod. This SubStateMachine is formally defined in Table 38. The name of each transition consists of the names of the states it connects: [FromState]To[ToState]. Their References are specified in Table 40.
.
Table 38 – InitializingSubStateMachineType Definition
Attribute |
Value |
||||
BrowseName |
InitializingSubStateMachineType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the FiniteStateMachineType defined in OPC UA 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Idle |
|
0:InitialStateType |
None |
0:HasComponent |
Object |
Queued |
|
0:StateType |
None |
0:HasComponent |
Object |
Released |
|
0:StateType |
None |
|
|
||||
0:HasComponent |
Object |
QueuedToReleased |
0:TransitionType |
|
|
0:HasComponent |
Object |
QueuedToIdle |
0:TransitionType |
|
|
0:HasComponent |
Object |
ReleasedToQueued |
0:TransitionType |
|
|
The states shall have the numbers indicated in Table 39; the transitions shall have the numbers indicated in Table 39.
Idle, are jobs that have been created but not yet scheduled.
If the job is scheduled by an HLS in the queue of the glass machine, the state changes to Queued. A job can only be modified in the states Idle and Queued.
To reach the ReleasedState, which symbolizes the production release, an HLS must confirm the release by calling the ReleasedMethod.
Table 39 – InitializingSubStateMachineType Attribute values for child Nodes
Source Path |
Value Attribute |
Description Attribute |
||
State Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
Transition Numbers |
||||
|
0 |
|
||
|
1 |
|
||
|
2 |
|
||
|
3 |
|
Fields may be empty which means this Attribute is not defined.
IdleToQueued is triggered when the job is successfully added to the JobList.
QueuedToReleased is triggered when the job receives the final release for production.
QueuedToIdle is triggered when the job is need to changed and go to Idle.
ReleasedToQueued is triggered when a job is lose his release.
Table 40 – InitializingSubStateMachineType Additional References
Source Path |
ReferenceType |
Is Forward |
Target Path |
0:FromState |
True |
Idle |
|
|
0:ToState |
True |
Queued |
0:FromState |
True |
Queued |
|
|
0:ToState |
True |
Released |
0:FromState |
True |
Queued |
|
|
0:ToState |
True |
Idle |
0:FromState |
True |
Released |
|
|
0:ToState |
True |
Queued |
The AssemblyJobType provides the information for an assembly job, which assembles multiple input materials to one output material and is formally defined in Table 41.
Table 41 – AssemblyJobType Definition
Attribute |
Value |
||||
BrowseName |
AssemblyJobType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProductionJobType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<InputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
0:HasComponent |
Object |
<OutputMaterial> |
|
AssemblyType |
MandatoryPlaceholder |
<InputMaterial> describes the materials to be processed within the job. Can include MaterialBaseType or GlassType.
<OutputMaterial> describes the result after assembly from the materials side.
The CuttingJobType provides the information for a cutting job, which cuts one sheet of glass into multiple smaller sheets and is formally defined in Table 42.
Table 42 – CuttingJobType Definition
Attribute |
Value |
||||
BrowseName |
CuttingJobType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProductionJobType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<InputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
0:HasComponent |
Object |
<OutputMaterial> |
|
GlassType |
MandatoryPlaceholder |
InputMaterial describes the materials to be processed within the job. Can include MaterialBaseType or GlassType.
OutputMaterial describes the result after cutting from the materials side.
The ProcessingJobType provides the information for a processing job and is formally defined in Table 43.
Table 43 – ProcessingJobType Definition
Attribute |
Value |
||||
BrowseName |
ProcessingJobType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the ProductionJobType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
<InputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
0:HasComponent |
Object |
<OutputMaterial> |
|
BaseMaterialType |
MandatoryPlaceholder |
InputMaterial describes the materials to be processed within the job. Can include MaterialBaseType or GlassType.
OutputMaterial describes the result after processing from the materials side.
The BaseMaterialType provides the basic material information and is formally defined in Table 44.
Table 44 – BaseMaterialType Definition
Attribute |
Value |
||||
BrowseName |
BaseMaterialType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseObjectType defined in OPC 10000-5, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
X |
0:Double |
0:AnalogUnitType |
Optional |
0:HasComponent |
Variable |
Y |
0:Double |
0:AnalogUnitType |
Optional |
0:HasComponent |
Variable |
Z |
0:Double |
0:AnalogUnitType |
Optional |
0:HasComponent |
Variable |
Weight |
0:Double |
0:AnalogUnitType |
Optional |
0:HasProperty |
Variable |
Description |
0:LocalizedText |
0:PropertyType |
Optional |
0:HasProperty |
Variable |
Location |
LimitedString64 |
0:PropertyType |
Mandatory |
0:HasProperty |
Variable |
MaterialIdentifier |
LimitedString64 |
0:PropertyType |
Mandatory |
0:HasProperty |
Variable |
Identifier |
LimitedString64 |
0:PropertyType |
Optional |
Description is a human-readable description of the article.
Location defines source or destination location of the material, depending if it is an input or an output material.
MaterialIdentifier defines an Identifier to identify the Type of the item (item number).
Identifier defines a unique identifier for the specific component (e.g. the Serial number, Sheet-Id).
X defines the dimension of the material along the X axis of the machine coordinate system. For special shapes the surrounding rectangle is used.
Y defines the dimension of the material along the Y axis of the machine coordinate system. For special shapes the surrounding rectangle is used.
Z defines the dimension of the material along the Z axis of the machine coordinate system. For special shapes the surrounding rectangle is used.
Note: X,Y,Z are modelled separate, because subtype may only use a subset of X;Y,Z.
Weight defines the mass of the item. If possible the engineering unit should be kilograms.
The FoilType provides the information for foils used in glass technology and is formally defined in Table 45.
Table 45 – FoilType Definition
Attribute |
Value |
||||
BrowseName |
FoilType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Z |
0:Double |
0:AnalogUnitType |
Mandatory |
Z defines the thickness of the foil.
The SpacerType provides the information for spacers used in glass technology and is formally defined in Table 46.
Table 46 – SpacerType Definition
Attribute |
Value |
||||
BrowseName |
SpacerType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
Filling |
LimitedString64 |
BaseDataVariableType |
Optional |
0:HasComponent |
Variable |
SealantDepth |
0:Double |
0:AnalogUnitType |
Optional |
0:HasProperty |
Variable |
SpacerMaterialClass |
SpacerMaterialClass |
0:PropertyType |
Mandatory |
0:HasProperty |
Variable |
SpacerMaterialSubClass |
LimitedString64 |
0:PropertyType |
Optional |
Filling provides information about the filling of the spacer.
SealantDepth is the minimum dimension from the spacer to the outer edge of the silicone secondary seal (see section 3.3.5).
SpacerMaterialClass defines with an enumeration the material type of the spacer, e.g. metal, plastic etc.
SpacerMaterialSubClass provides a vendor-specific unique identification of the spacer material.
The GasMixType provides information about the gas mix, which is used in glass technology assembly and is formally defined in Table 47.
Table 47 – GasMixType Definition
Attribute |
Value |
||||
BrowseName |
GasMixType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Gas_1 |
|
BaseMaterialType |
Optional |
0:HasComponent |
Object |
Gas_2 |
|
BaseMaterialType |
Optional |
0:HasComponent |
Variable |
GasFilling |
0:Number |
0:AnalogUnitType |
Optional |
0:HasComponent |
Variable |
MixingRatio |
0:Number |
0:AnalogUnitType |
Optional |
Gas_1 uniquely describes the first gas, which is part of the gas filling. The manufacturer and the material designation should be included.
Gas_2 uniquely describes the second gas, which is part of the gas filling. The manufacturer and the material designation should be included.
GasFilling defines the filling level of the gas in percent, for a filling of 100% the values is 100. For this variable are also values of more than 100 allowed, to represent an overpressure in the final product.
MixingRatio describes the ratio of the gas mixture. Here the value 0 means that only the first gas (Gas_1) is contained. If the parameter is 100 only second gas (Gas_2) is in the mixture. With a value of 50 both gases are contained in the ratio 1:1.
The component Variables of the GasMixType have additional Attributes defined in Table 48.
Table 48 – GasMixType Attribute values for child Nodes
BrowsePath |
Value Attribute |
Description Attribute |
||
|
NamespaceUri: http://www.opcfoundation.org/UA/units/un/cefact UnitId: 20529 DisplayName: % Description: percent |
|
||
|
NamespaceUri: http://www.opcfoundation.org/UA/units/un/cefact UnitId: 20529 DisplayName: % Description: percent |
|
The GlassType provides information about flat glass sheets and is formally defined in Table 49.
Table 49 – GlassType Definition
Attribute |
Value |
|||||
BrowseName |
GlassType |
|||||
IsAbstract |
false |
|||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
|
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
||||||
0:HasComponent |
Variable |
Absorption |
0:Number |
0:AnalogUnitType |
Optional |
|
0:HasProperty |
Variable |
CoatingClass |
CoatingClassEnumeration |
0:PropertyType |
Mandatory |
|
0:HasComponent |
Variable |
CoatingEmessivity |
0:Number |
0:AnalogUnitType |
Optional |
|
0:HasProperty |
Variable |
CoatingSubClass |
LimitedString64 |
0:PropertyType |
Optional |
|
0:HasComponent |
Variable |
ElectricalConductivity |
0:Number |
0:AnalogUnitType |
Optional |
|
0:HasProperty |
Variable |
Orientation |
0:Number |
0:PropertyType |
Mandatory |
|
0:HasComponent |
Variable |
Reflection |
0:Number |
0:AnalogUnitType |
Optional |
|
0:HasProperty |
Variable |
SignificantSide |
SignificantSideEnumeration |
0:PropertyType |
Mandatory |
|
0:HasProperty |
Variable |
StructureClass |
LimitedString64 |
0:PropertyType |
Mandatory |
|
0:HasProperty |
Variable |
StructureAlignment |
StructureAlignmentEnumeration |
0:PropertyType |
Mandatory |
|
0:HasComponent |
Variable |
Transmission |
0:Number |
0:AnalogUnitType |
Optional |
|
The following nodes are override from BaseMaterialType and the Modelling Rules change to Mandatory |
||||||
0:HasComponent |
Variable |
X |
0:Double |
0:AnalogUnitType |
Mandatory |
|
0:HasComponent |
Variable |
Y |
0:Double |
0:AnalogUnitType |
Mandatory |
Absorption describes the absorption of the raw material.
CoatingClass defines which coatings have been applied to the SignificantSide.
CoatingEmessivity describes the emissivity of the coating.
CoatingSubClass provides a vendor-specific unique identification of the coating material.
Electrical Conductivity describes the conductivity of the raw material in Siemens.
Orientation describes the angle of the material coordinates in reference to the MachineProcessingCoordinateSystem.
Reflection describes the reflection of the raw material.
StructureClass defines a vendor-specific description of the glass structure (surface topology). An example for that is Chinchilla white.
SignificantSide specifies whether the significant (coating) side (see definition in Terms) should be at the top or bottom during machining (see also section 3.2.6 and 0).
StructureAlignment specifies how the surface structure is aligned. See StructureAlignmentEnumeration for more information e.g. about the orientation.
Transmission describes the transmission of the raw material.
The PackagingType provides information about the packing material used in glass technology and is formally defined in Table 50.
Table 50 – PackagingType Definition
Attribute |
Value |
||||
BrowseName |
PackagingType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Variable |
PerimeterProtection |
LimitedString64 |
BaseDataVariableType |
Mandatory |
0:HasComponent |
Variable |
CornerProtection |
LimitedString64 |
BaseDataVariableType |
Mandatory |
0:HasComponent |
Variable |
Spacer |
LimitedString64 |
BaseDataVariableType |
Mandatory |
PerimeterProtection describes the protection of the wet glue for better handling of assembly units.
CornerProtection specifies the materials which will be used to protect the corners so that will not get damaged during transportation.
Spacer describes which separation materials are used to separate multiple units within the package.
The SealingMaterialType provides the information about the sealing materials used in glass technology assemblies and is formally defined Table 51.
Table 51 – SealingMaterialType Definition
Attribute |
Value |
||||
BrowseName |
SealingMaterialType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |
|||||
0:HasComponent |
Object |
Hardener |
|
BaseMaterialType |
Optional |
0:HasComponent |
Variable |
MixingRatio |
0:Double |
AnalogUnitType |
Mandatory |
0:HasComponent |
Object |
Resin |
|
BaseMaterialType |
Optional |
0:HasComponent |
Variable |
AddOnMaterial |
LimitedString64 |
BaseDataVariableType |
Optional |
Hardener uniquely describes the second sealing material, which is part of the sealing mixture. The manufacturer and the material designation should be included.
MixingRatio describes the ratio of the sealing material mixture. Here the value 0 means that only the first material (Resin) is contained. If the parameter is 100 only Hardener is contained.
Resin uniquely describes the first sealing material, which is part of the sealing mixture. The manufacturer and the material designation should be included.
AddOnMaterial describes a material that is added to the sealing e.g. to increases the stiffness.
The component Variables of the SealingMaterialType have additional Attributes defined in Table 4852.
Table 52 – SealingMaterialType Attribute values for child Nodes
BrowsePath |
Value Attribute |
Description Attribute |
||
|
NamespaceUri: http://www.opcfoundation.org/UA/units/un/cefact UnitId: 20529 DisplayName: % Description: percent |
|
The AssemblyType provides the information about the assembled glass product and is formally defined Table 51.
Table 53 – AssemblyType Definition
Attribute |
Value |
||||
BrowseName |
AssemblyType |
||||
IsAbstract |
false |
||||
References |
Node Class |
BrowseName |
DataType |
TypeDefinition |
Other |
Subtype of the BaseMaterialType defined in this Companion Specification, i.e. inheriting the InstanceDeclarations of that Node. |