All instances of WwMachineType in a Server shall be referenced from the 3:Machines Object as defined in OPC 40001-1. This provides the capability to easily find all woodworking machines managed in a Server. The 3:Machines Object may contain other Nodes than instances of WwMachineType.

Each <Machine> Object represents an instance of a machine. In the simplest case, there is only one machine. The BrowseName of <Machine> should be unique within the Server. For woodworking machines it could be the 2:ProductInstanceUri of the 2:Identification Object of the 2:IVendorNameplateType.

The WwMachineType represents a woodworking machine and is formally defined in Table 15. There may be non-woodworking machines with different types below the 3:Machines instance, too.

Table 15 – WwMachineType Definiton

Attribute

Value

BrowseName

WwMachineType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

Properties of the OPC UA for Machinery.

0:HasAddIn

Object

2:Identification

3:MachineIdentificationType

M

Woodworking Properties

0:HasComponent

Object

State

0:BaseObjectType

M

0:HasComponent

Object

Events

WwEventsDispatcherType

O

0:HasComponent

Object

ManufacturerSpecific

0:FolderType

O

Conformance Units

Woodworking WwMachineType Mandatory Nodes

Woodworking Machine Identification Writeable

The 2:Identification Object provides identification information of the machine. It is specified in OPC 10000-100 and OPC 40001-1 (see chapter 2 Normative references).

The State Object provides information about the states of the machine.

The Events Object provides events.

The ManufacturerSpecific Object provides manufacturer specific functionality.

The components of the WwMachineType have additional subcomponents which are defined in Table 16.

Table 16 – WwMachineType Additional Subcomponents

Source Path

Reference

NodeClass

BrowseName

DataType

TypeDefinition

Others

State

0:HasInterface

ObjectType

IWwStateType

Additional Properties for 2:Identification

2:Identification

0:HasProperty

Variable

LocationPlant

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

LocationGPS

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

CustomerCompanyName

0:LocalizedText

0:PropertyType

O, RO

Properties from 3:MachineIdentificationType and overwritten Mandatory Flags

2:Identification

0:HasProperty

Variable

2:ProductInstanceUri

0:String

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

2:Manufacturer

0:LocalizedText

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

2:ManufacturerUri

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

2:Model

0:LocalizedText

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

2:ProductCode

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

2:HardwareRevision

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

2:SoftwareRevision

0:String

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

2:DeviceClass

0:String

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

2:SerialNumber

0:String

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

3:YearOfConstruction

0:UInt16

0:PropertyType

M, RO

2:Identification

0:HasProperty

Variable

3:MonthOfConstruction

0:Byte

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

3:InitialOperationDate

0:DateTime

0:PropertyType

O, RO

2:Identification

0:HasProperty

Variable

2:AssetId

0:String

0:PropertyType

O, RW

2:Identification

0:HasProperty

Variable

2:ComponentName

0:LocalizedText

0:PropertyType

O, RW

2:Identification

0:HasProperty

Variable

3:Location

0:String

0:PropertyType

O, RW

The properties of the 3:MachineIdentificationType are listed here, too. The mandatory changes are marked bold.

The DeviceClass provides the classification of the machine. So far it is defined as follows for Woodworking:

  • “Other”
  • “SawingMachine”
  • “ProfilingMachine”
  • “EdgebandingMachine”
  • “BoringMachine”
  • “SandingMachine”
  • “MachiningCenter”
  • “Press”
  • “HandlingMachine”

The customer can set the following properties through the manufacturer HMI. Therefore, on the OPC UA interface they may be readable only.

The LocationPlant provides the location of the plant. This is the city where the machine is located, e.g. "Frankfurt".

The LocationGPS provides the location of the plant in GPS coordinates. The format is decimal degrees with north and east coordinates. For example, Hannover Messe has "52.3235858255059, 9.804918108600956".

Southern latitudes have a negative value, western longitudes as well. For example, Quito has the coordinates "-0.21975073282167099, -78.51255572531042".

The CustomerCompanyName provides the customer name of the Woodworking manufacturer.

image012.png

Figure 7 – Overview IWwStateType

The IWwStateType provides the machine state and is formally defined in Table 17.

Table 17 – IWwStateType Definiton

Attribute

Value

BrowseName

IWwStateType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Object

Machine

0:BaseObjectType

M

0:HasComponent

Object

SubUnits

0:BaseObjectType

O

Conformance Units

Woodworking SubUnits Monitoring

Woodworking Unit State

Each instance of an IWwStateType represents an instance of a machine state. In the simplest case, there is only the Machine Object. The SubUnits Object is used when a machine has multiple states. For example, a CNC machine can have several places where independent jobs are produced.

The Machine state does not summarize the SubUnits states. It does not have to be based on the SubUnits states. It is a decision of the machine manufacturer.

The KPI calculation has to be done individually based on the special machine instance and its states.

The units of the IWwStateType have additional subunits which are defined in Table 18.

Table 18 – IWwStateType Additional SubUnits

Source Path

Reference

NodeClass

BrowseName

DataType

TypeDefinition

Others

Machine

0:HasInterface

ObjectType

IWwBaseStateType

SubUnits

0:HasInterface

ObjectType

IWwSubUnitsType

The IWwSubUnitsType provides a list of SubUnits and is formally defined in Table 19.

Table 19 – IWwSubUnitsType Definiton

Attribute

Value

BrowseName

IWwSubUnitsType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Object

<SubUnit>

0:BaseObjectType

MP

Conformance Units

Woodworking SubUnits Monitoring

Each <SubUnit> object with Interface IWwBaseStateType shall be put into this object. It represents an instance of a state. For example, a CNC machine can have two places where independent jobs are produced. Then there are two <SubUnit> Objects. They may be named “Place_1” and “Place_2”.

The components of the IWwSubUnitsType have additional subunits which are defined in Table 20.

Table 20 – IWwSubUnitsType Additional Subcomponents

Source Path

Reference

NodeClass

BrowseName

DataType

TypeDefinition

Others

<SubUnit>

0:HasInterface

ObjectType

IWwBaseStateType

image013.png

Figure 8 – Overview of IWwBaseStateType

The IWwBaseStateType represents the state of a unit and is formally defined in Table 21. An unit can be a machine or part of a machine.

Table 21 – IWwBaseStateType Definiton

Attribute

Value

BrowseName

IWwBaseStateType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Object

Overview

0:BaseObjectType

M

0:HasComponent

Object

Flags

0:BaseObjectType

O

0:HasComponent

Object

Values

0:BaseObjectType

O

Conformance Units

Woodworking Machine Monitoring

Woodworking SubUnits Monitoring

Woodworking Unit State

The Overview Object provides a general overview of the unit.

The Flags Object provides the flags of the unit.

The Values Object provides the counters and values of the unit.

The components of the IWwBaseStateType have additional subcomponents which are defined in Table 22.

Table 22 – IWwBaseStateType Additional Subcomponents

Source Path

Reference

NodeClass

BrowseName

DataType

TypeDefinition

Others

Overview

0:HasInterface

ObjectType

IWwUnitOverviewType

Flags

0:HasInterface

ObjectType

IWwUnitFlagsType

Values

0:HasInterface

ObjectType

IWwUnitValuesType

The IWwUnitOverviewType represents the generalized overview of a unit and is formally defined in Table 23.

Table 23 – IWwUnitOverviewType Definiton

Attribute

Value

BrowseName

IWwUnitOverviewType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Variable

CurrentState

WwUnitStateEnumeration

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

CurrentMode

WwUnitModeEnumeration

0:BaseDataVariableType

M, RO

Conformance Units

Woodworking Unit State

The CurrentState Variable provides the generalized state of the unit.

The CurrentMode Variable provides the generalized mode of the unit.

This enumeration WwUnitStateEnumeration represents the generalized state of a unit. The enumeration is defined in Table 24.

Table 24 – WwUnitStateEnumeration Items

Name

Value

Description

OFFLINE

0

The unit is offline.

STANDBY

1

The unit is in standby.

READY

2

The unit is ready to start working.

WORKING

3

The unit is working.

ERROR

4

The unit is not able to work. The cause can be an alarm or error or user intervention.

A unit state depends on the unit flags (see 7.9). Even if the unit flags are not provided in the address space they exist internally in the machine. If the device does not support EnergySaving, it is assumed that the variable value is false. Therefore, they are always the basis for the state:

!MachineOn

MachineOn && (!MachineInitialized || EnergySaving || (!Error && !Calibrated))

MachineOn && MachineInitialized && !EnergySaving && !Error && Calibrated && !RecipeInRun

MachineOn && MachineInitialized && !EnergySaving && !Error && Calibrated && RecipeInRun

MachineOn && MachineInitialized && !EnergySaving && Error

This is the state diagram of the UnitState:

Note: Since the unit state is an enumeration do not rely on the transitions. Only the logic of the unit flags counts.

image014.png

Figure 9 – State Machine of the unit state

Its representation in the AddressSpace is defined in Table 25.

Table 25 – WwUnitStateEnumeration Definiton

Attribute

Value

BrowseName

WwUnitStateEnumeration

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the Enumeration type defined in OPC 10000-5

0:HasProperty

Variable

0:EnumValues

0:EnumValueType[]

0:PropertyType

Conformance Units

Woodworking Unit State

This enumeration WwUnitModeEnumeration represents the generalized mode of a unit. The enumeration is defined in Table 26.

Table 26 – WwUnitModeEnumeration Items

Name

Value

Description

OTHER

0

This state is used if none of the other states below applies.

AUTOMATIC

1

The unit is in automatic mode.

SEMIAUTOMATIC

2

The unit is in semi-automatic mode.

MANUAL

3

The unit is in manual mode.

SETUP

4

The unit is in setup mode.

SLEEP

5

The unit is in sleep mode. Unit is still switched on, energy consumption reduced by e.g. reducing heating, switching drives off. Production is not possible.

Its representation in the AddressSpace is defined in Table 27.

Table 27 – WwUnitModeEnumeration Definiton

Attribute

Value

BrowseName

WwUnitModeEnumeration

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the Enumeration type defined in OPC 10000-5

0:HasProperty

Variable

0:EnumValues

0:EnumValueType[]

0:PropertyType

Conformance Units

Woodworking Unit State

The IWwUnitFlagsType provides the flags of a unit and is formally defined in Table 28.

Table 28 – IWwUnitFlagsType Definiton

Attribute

Value

BrowseName

IWwUnitFlagsType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Variable

MachineOn

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

MachineInitialized

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

PowerPresent

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

AirPresent

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

DustChipSuction

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Emergency

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Safety

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Calibrated

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Remote

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

WorkpiecePresent

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Moving

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

Error

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Alarm

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Warning

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

Hold

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

RecipeInRun

0:Boolean

0:BaseDataVariableType

M, RO

0:HasComponent

Variable

RecipeInSetup

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

RecipeInHold

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

ManualActivityRequired

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

LoadingEnabled

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

WaitUnload

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

WaitLoad

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

EnergySaving

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

ExternalEmergency

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

MaintenanceRequired

0:Boolean

0:BaseDataVariableType

O, RO

0:HasComponent

Variable

FeedRuns

0:Boolean

0:BaseDataVariableType

O, RO

Conformance Units

Woodworking Machine Monitoring

Woodworking SubUnits Monitoring

Woodworking Unit State

The MachineOn Variable is true if the machine is switched on. If the OPC UA Server runs on the machine this value is always true.

The MachineInitialized Variable is true if the MachineOn is true, the PLC and the control processes are running. The machine is ready for usage for the operator.

The PowerPresent Variable is true if the power supply is present (the drives are ready to move).

The AirPresent Variable is true if the air pressure is present in the machine.

The DustChipSuction Variable is true if the dust and chip suction is ready.

The Emergency Variable is true if at least one emergency button is pressed.

The Safety Variable is true if at least one safety device (light curtain, safety mat, …) has intervened.

The Calibrated Variable is true if all components of the machine that need to be calibrated are calibrated.

The Remote Variable is true if the machine is working with programs sent by the supervisor or other external application.

The WorkpiecePresent Variable is true if at least one piece is inside the machine.

The Moving Variable is true if at least one axis is moving.

The Error Variable is true if at least one reason exists which prevents the machine from working.

The Alarm Variable is true if at least one alarm exists.

The Warning Variable is true if at least one warning exists.

The Hold Variable is true if the movements are paused by the operator.

The RecipeInRun Variable is true if the machine runs its program. However, if the machine is paused by the program, the machine is considered to still be running its program, i.e. while the RecipeInHold Variable is true, the RecipeInRun cannot be false.

The RecipeInSetup Variable is true if the RecipeInRun is true and the machine is in the setup phase (example: automatic tool change).

The RecipeInHold Variable is true if the machine is paused by the program. This is only possible if the RecipeInRun Variable is also true.

The ManualActivityRequired Variable is true if a manual activity by the operator is required. The RecipeInRun is not affected.

The LoadingEnabled Variable is true if the unit is ready to get the next new part. If this is false no part can get into the unit.

The WaitUnload Variable is true if the machine is waiting to unload pieces.

The WaitLoad Variable is true if the machine is waiting for pieces.

The EnergySaving Variable is true if energy saving is activated on the machine.

The ExternalEmergency Variable is true if there is an emergency from the line controller.

The MaintenanceRequired Variable is true if maintenance is required.

The FeedRuns Variable is true if the feed is running on a throughfeed machine.

The IwwUnitValuesType represents the values of a unit and is formally defined in Table 29.

Table 29 – IWwUnitValuesType Definiton

Attribute

Value

BrowseName

IWwUnitValuesType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseInterfaceType defined in OPC 10001-7

0:HasComponent

Variable

AxisOverride

0:UInt32

0:BaseAnalogType

O, RO

0:HasComponent

Variable

SpindleOverride

0:UInt32

0:BaseAnalogType

O, RO

0:HasComponent

Variable

FeedSpeed

0:Double

0:BaseAnalogType

O, RO

0:HasComponent

Variable

ActualCycle

0:Double

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteMachineOffTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteStandbyTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeStandbyTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteReadyTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeReadyTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteWorkingTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeWorkingTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteErrorTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeErrorTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteMachineOnTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeMachineOnTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsolutePowerPresentTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativePowerPresentTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteProductionTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeProductionTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteProductionWithoutWorkpieceTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeProductionWithoutWorkpieceTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteProductionWaitWorkpieceTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeProductionWaitWorkpieceTime

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteRunsGood

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeRunsGood

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteRunsTotal

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeRunsTotal

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteRunsAborted

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeRunsAborted

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsoluteLength

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativeLength

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsolutePiecesIn

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativePiecesIn

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

AbsolutePiecesOut

0:UInt64

0:BaseAnalogType

O, RO

0:HasComponent

Variable

RelativePiecesOut

0:UInt64

0:BaseAnalogType

O, RO

Conformance Units

Woodworking Machine Monitoring

Woodworking SubUnits Monitoring

Woodworking Unit State

Note: For OEE or KPI calculations the absolute and relative values might not be good enough. The term “Absolute” depends on the manufacturer. It may be reset on the machine or the InitialOperationDate is used for the start. The reset function can usually only be done by the service or the manufacturer. Therefore, it cannot be done by the OPC UA client. Maybe one manufacturer has this feature.

The AxisOverride Variable provides the override for the axis in percent.

The SpindleOverride Variable provides the override for the spindle in percent.

The FeedSpeed Variable provides the feed speed in m/min for throughfeed machines. The values can be negative.

The ActualCycle Variable provides the parts per minutes.

The AbsoluteMachineOffTime can be calculated by the machine. The shutdown time and the starting time have to be stored on the machine.

The AbsoluteStandbyTime Variable provides the absolute time of the STANDBY state in msec.

The RelativeStandbyTime Variable provides the relative time since startup of the STANDBY state in msec.

The AbsoluteReadyTime Variable provides the absolute time of the READY state in msec.

The RelativeReadyTime Variable provides the relative time since startup of the READY state in msec.

The AbsoluteWorkingTime Variable provides the absolute time of the WORKING state in msec.

The RelativeWorkingTime Variable provides the relative time since startup of the WORKING state in msec.

The AbsoluteErrorTime Variable provides the absolute time of the ERROR state in msec.

The RelativeErrorTime Variable provides the relative time since startup of the ERROR state in msec.

The AbsoluteMachineOnTime Variable provides the absolute time in msec the machine is turned on based on the MachineOn state.

The RelativeMachineOnTime Variable provides the relative time in msec since startup the machine is turned on based on the MachineOn state.

The AbsolutePowerPresentTime Variable provides the absolute time in msec the machine has power on based on the PowerPresent state.

The RelativePowerPresentTime Variable provides the relative time in msec since startup the machine has power on based on the PowerPresent state.

The AbsoluteProductionTime Variable provides the absolute time in msec of the machine is working at least with one workpiece based on the RecipeInRun and WorkpiecePresent state.

The RelativeProductionTime Variable provides the relative time in msec since startup of the machine is working at least with one workpiece based on the RecipeInRun and WorkpiecePresent state.

The AbsoluteProductionWithoutWorkpieceTime Variable provides the absolute time in msec of the machine is working but without workpieces inside based on the RecipeInRun and !WorkpiecePresent state.

The RelativeProductionWithoutWorkpieceTime Variable provides the relative time in msec since startup of the machine is working but without workpieces inside based on the RecipeInRun and !WorkpiecePresent state.

The AbsoluteProductionWaitWorkpieceTime Variable provides the absolute time in msec of the machine is in working mode, bring the consent out to insert workpiece but no workpiece incoming from the previous machine based on the ReceipeInRun and WaitLoad state.

The RelativeProductionWaitWorkpieceTime Variable provides the relative time in msec waiting for workpieces since startup of the machine is in working mode, bring the consent out to insert workpiece but no workpiece incoming from the previous machine based on the ReceipeInRun and WaitLoad state.

The AbsoluteRunsGood Variable provides the absolute count of finished runs.

The RelativeRunsGood Variable provides the relative count of finished runs since the machine has started.

The AbsoluteRunsTotal Variable provides the absolute count of total runs.

The RelativeRunsTotal Variable provides the relative count of total runs since the machine has started.

The AbsoluteRunsAborted Variable provides the absolute count of aborted runs.

The RelativeRunsAborted Variable provides the relative count of aborted runs since the machine has started.

The AbsoluteLength Variable provides the absolute produced length in mm.

The RelativeLength Variable provides the relative produced length in mm since the machine has started.

The AbsolutePiecesIn Variable provides the absolute count of pieces which came into the machine.

The RelativePiecesIn Variable provides the relative count of pieces which came into the machine since the machine has started.

The AbsolutePiecesOut Variable provides the absolute count of pieces which came out of the machine.

The RelativePiecesOut Variable provides the relative count of pieces which came out of the machine since the machine has started.

The WwEventsDispatcherType represents a container that is an event dispatcher for machine events and is formally defined in Table 30.

Table 30 – WwEventsDispatcherType Definiton

Attribute

Value

BrowseName

WwEventsDispatcherType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the BaseObjectType defined in OPC 10000-5

0:GeneratesEvent

ObjectType

0:BaseEventType

0:GeneratesEvent

ObjectType

WwBaseEventType

Conformance Units

Woodworking Machine Events

Woodworking Event Propagation

Woodworking Event Messages

A wide variety of events and states can trigger messages on a plant, machine or component. Events and the associated messages are rather temporary and therefore cannot be subscribed directly.

image015.pngThe woodworking events shall implement the interface IWwEventMessageType. Therefore the WwBaseEventType can be used.

Figure 10 – Overview of Event Types

Woodworking machines do not need to provide the woodworking Types like WwBaseEventType. Instead it can be an object of any OPC UA 0:BaseEventType or a subtype of it and additionally can implement the interface IWwEventMessageType. So it is possible to use the full range of OPC UA AlarmTypes like 0:LimitAlarmType:

image016.png

Figure 11 – OPC UA AlarmTypes

The IWwEventMessageType provides the common extensions for all events and conditions and is formally defined in Table 31. Each instance definition that includes this interface with a HasInterface reference defines the predefined extensions.

Table 31 – IWwEventMessageType Definiton

Attribute

Value

BrowseName

IWwEventMessageType

IsAbstract

True

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseInterfaceType defined in OPC 10001-7

0:HasProperty

Variable

EventCategory

WwEventCategoryEnumeration

0:PropertyType

M, RO

0:HasProperty

Variable

MessageId

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

MessageName

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

PathParts

0:String[]

0:PropertyType

M, RO

0:HasProperty

Variable

Group

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

LocalizedMessages

0:LocalizedText[]

0:PropertyType

O, RO

0:HasProperty

Variable

Arguments

WwMessageArgumentDataType[]

0:PropertyType

O, RO

Conformance Units

Woodworking Event Messages

The EventCategory Variable provides the category of the event.

The MessageId Variable is a unique Identifier like a number or name of the message in the cause path (PathParts) determined Module. Example: “A4711” or “1”.

The MessageName Variable is a short name like a number or title to reference a translation of the general message text. Example: “ID_MSG_EmergencyAlarm”.

The PathParts Variable is an array of Path information strings based on a server independent hierarchical structure of modules or an application specific expansion of that. It is an additional location information beside the SourceName. Example:

image017.png

Key

1 = Machine with feed direction2 = Top pressure beam3 = Chain beam4 = Control5 = Sizing with Milling 1 and Milling 2 inside6 = Addition operation zone7 = Integrated enclosure8 = Fixed side9 = Movable side

“Machine”

“FixedSide”

“Sizing”

“Milling1”

Figure 12 – PathParts

The Group Variable specifies the class or group of the Message. The contents are set by the machine manufacturer. Examples are “safety”, “emergency”, “consumable”.

The LocalizedMessages Variable contains an array of localized messages corresponding to the installed server languages. The 0:Message property contains the content of of the LocalizedMessages entry, which corresponds to the currently set language of the session. There are no placeholders in the messages. The 0:Message property and the LocalizedMessages are all resolved.

The Arguments Variable is an argument that can be used to parameterize the message. The number of the indexing in the array corresponds to the placeholder number in the message text. This ensures that the formatting functions of the implementations enable the localized message texts to be created. If a client wants to use this feature, it has to use the MessageId. With this Id the raw message can be taken from a repository of the woodworking manufacturer. Then the placeholders can be resolved using the Arguments. The format of the raw message is up to the manufacturer.

This enumeration WwEventCategoryEnumeration represents the category of an event. The enumeration is defined in Table 32.

Table 32 – WwEventCategoryEnumeration Items

Name

Value

Description

OTHER

0

No other event category applies or it is unknown.

DIAGNOSTIC

1

This category is used for messages for debugging and diagnostic purposes.

They can be ignored by clients (Diagnostic messages to operator, e.g. "system is ready")

INFORMATION

2

Messages of this category do not require a client to read them for normal operation.

The woodworking system can safely continue normal operation even if this message is ignored.

(Help messages to operator, e.g. "select Auto mode and press Start")

WARNING

3

This category describes messages that in general could have moderate importance. Missing or ignoring such a message has no serious consequences.

The woodworking system could request acknowledgement or acknowledgement and confirmation if needed.

(Warning message to operator, e.g. “tool life will soon be reached”)

ALARM

4

The goal of an alarm is to inform operators about conditions in a timely manner and allow the operator to take some action before some consequences occur. The consequences may be economic (product is not usable and must be discarded), may be physical (overheating), may be related to safety (fire or destruction could occur) or any of a number of other possibilities. Typically, if no action is taken related to an alarm for some period of time the process will cross some threshold at which point consequences will start to occur, likely causing an Error condition.

According to this definition an alarm message usually requires an acknowledgement and it may be decided that also a confirmation is needed.

ERROR

5

This category is used for error messages associated with problems that need human interaction.

An Error occurs if the situation has critical consequences for the machine process. For example, the protection of human life, of the environment, or of the machine itself, through safety mechanisms that block the process to prevent any harmful situation.

This kind of situation cannot be solved automatically and confirmation by an operator is mandatory.

This specification does not intend to determine in which manner acknowledgement and confirmation are given by operators: this could be done directly on a machine (e.g. through a SCADA or HMI) or/and by an OPC UA Client through OPC UA Alarms and Conditions mechanisms, if available.

Its representation in the AddressSpace is defined in Table 33.

Table 33 – WwEventCategoryEnumeration Definiton

Attribute

Value

BrowseName

WwEventCategoryEnumeration

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the Enumeration type defined in OPC 10000-5

0:HasProperty

Variable

0:EnumValues

0:EnumValueType[]

0:PropertyType

Conformance Units

Woodworking Event Messages

This structure definition extends the argument structure with an argument value. The structure is defined in Table 34.

Table 34 – WwMessageArgumentDataType Structure

Name

Type

Description

WwMessageArgumentDataType

structure

Subtype of the 0:Argument defined in OPC UA Part 3

Value

WwMessageArgumentValueDataType

The variable contains the value of the argument

Its representation in the AddressSpace is defined in Table 35.

Table 35 – WwMessageArgumentDataType Definiton

Attribute

Value

BrowseName

WwMessageArgumentDataType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:Argument defined in OPC UA Part 3

Conformance Units

Woodworking Event Messages

This union defines the possible types of an argument value. The structure is defined in Table 36.

Table 36 – WwMessageArgumentValueDataType Structure

Name

Type

Description

WwMessageArgumentValueDataType

structure

Subtype of the 0:Union defined in OPC UA Part 3

Array

WwMessageArgumentValueDataType[]

The content of the value as an array of the own type

Boolean

Boolean

The content of the value as a boolean

Int16

Int16

The content of the value as a 16 bit integer

Int32

Int32

The content of the value as a 32 bit integer

Int64

Int64

The content of the value as a 64 bit integer

SByte

SByte

The content of the value as a 8 bit integer

UInt16

UInt16

The content of the value as a 16 bit unsigned integer

UInt32

UInt32

The content of the value as a 32 bit unsigned integer

UInt64

UInt64

The content of the value as a 64 bit unsigned integer

Byte

Byte

The content of the value as a 8 bit unsigned integer

DateTime

DateTime

The content of the value as a datetime

Guid

Guid

The content of the value as a GUID

LocalizedText

LocalizedText

The content of the value as a localized text

Double

Double

The content of the value as a double

Float

Float

The content of the value as a float

String

String

The content of the value as a string

Other

String

The content of the value has no standard format and is instantiated as a string

Its representation in the AddressSpace is defined in Table 37.

Table 37 – WwMessageArgumentValueDataType Definiton

Attribute

Value

BrowseName

WwMessageArgumentValueDataType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:Union defined in OPC UA Part 3

Conformance Units

Woodworking Event Messages

The WwBaseEventType represents a message event from a module and is formally defined in Table 38.

Table 38 – WwBaseEventType Definiton

Attribute

Value

BrowseName

WwBaseEventType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseEventType defined in OPC UA Part 5

0:HasInterface

ObjectType

IWwEventMessageType

Applied from IWwEventMessageType

0:HasProperty

Variable

EventCategory

WwEventCategoryEnumeration

0:PropertyType

M, RO

0:HasProperty

Variable

MessageId

0:String

0:PropertyType

M, RO

0:HasProperty

Variable

MessageName

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

PathParts

0:String[]

0:PropertyType

M, RO

0:HasProperty

Variable

Group

0:String

0:PropertyType

O, RO

0:HasProperty

Variable

LocalizedMessages

0:LocalizedText[]

0:PropertyType

O, RO

0:HasProperty

Variable

Arguments

WwMessageArgumentDataType []

0:PropertyType

O, RO

Conformance Units

Woodworking Event Messages

IWwEventMessageType and its members are described in 7.12.