The CalendarType provides a list of calendar dates. Each entry in the list describes a specific date or date pattern, or range of dates. The CalendarType ObjectType is formally defined in Table 4.

Table 4 – CalendarType Definition

Attribute

Value

BrowseName

CalendarType

IsAbstract

False

Description

Provides a list of calendar dates. Each entry in the list describes a specific date or date pattern, or range of dates

References

NodeClass

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseObjectType

0:HasComponent

Variable

PresentValue

0:Boolean

0:BaseDataVariableType

M

0:HasProperty

Variable

DateList

CalendarEntryType[]

0:PropertyType

M

0:HasComponent

Method

AddDateListElements

O

0:HasComponent

Method

RemoveDateListElements

O

Conformance Units

Scheduler Calendar Base

This PresentValue indicates the current value of the calendar: True if the current date is in the DateList and False if it is not. For the current date that local time of the OPC UA Server shall be considered.

The DateList is an array of elements of which each is either a specific date or date pattern, or range of dates.

The child Nodes of the CalendarType have additional Attribute values defined in Table 5.

Table 5 – CalendarType Attribute values for child Nodes

BrowsePath

Description Attribute

PresentValue

Indicates if the current date is in the DateList (true) or not (false)

DateList

Array of elements each defining either a specific date or date pattern, or range of dates

AddDateListElements

Adds elements to the DateList

RemoveDateListElements

Removes elements of the DateList

This Method adds entries to the DateList Property. Even if one entry cannot be added, the other entries are still processed and added, if possible. The signature of this Method is specified below. Table 6 and Table 7 specify the Arguments and AddressSpace representation, respectively.

Signature

AddDateListElements (

[in] CalendarEntryType[] CalendarEntries

[out]0:Int32[] EntryResults

);

Table 6 – AddDateListElements Method Arguments

Argument

Description

CalendarEntries

An array of calendar entries to be added to the DateList Property.

EntryResults

An array of results, one entry per entry in CalendarEntries, indicating if the individual entry could be added. Each result <> 0 indicates, that adding this calendar entry was not successful.

0 – OK

-1 – Duplicate – Entry already in DateList

-2 – Invalid Format – The entry contains an invalid format, e.g. an invalid range

Values larger 0 can be used for vendor-specific errors.

Method Result Codes (defined in Call Service)

Result Code

Description

BadNodeIdUnknown

See OPC 10000-4 for a general description.

BadNotWritable

See OPC 10000-4 for a general description.

BadOutOfMemory

See OPC 10000-4 for a general description.

Table 7 – AddDateListElements Method AddressSpace definition

Attribute

Value

BrowseName

AddDateListElements

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

This Method removes entries from the DateList Property. Even if one entry cannot be removed, the other entries are still processed and removed, if possible. The signature of this Method is specified below. Table 8 and Table 9 specify the Arguments and AddressSpace representation, respectively.

Signature

RemoveDateListElements (

[in] CalendarEntryType[] CalendarEntries

[out]0:Int32[] EntryResults

);

Table 8 – RemoveDateListElements Method Arguments

Argument

Description

CalendarEntries

An array of calendar entries to be removed from the DateList Property.

EntryResults

An array of results, one entry per entry in CalendarEntries, indicating if the individual entry could be removed. Each result <> 0 indicates, that removing this calendar entry was not successful.

0 – OK

-1 – Not found – Entry is not in DateList

Values larger 0 can be used for vendor-specific errors.

Method Result Codes (defined in Call Service)

Result Code

Description

BadNodeIdUnknown

See OPC 10000-4 for a general description.

BadNotWritable

See OPC 10000-4 for a general description.

Table 9 – RemoveDateListElements Method AddressSpace definition

Attribute

Value

BrowseName

RemoveDateListElements

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 ScheduleType defines a periodic schedule that can recur over a range of dates. The schedule may have optional exceptions at arbitrary times or dates. The basic unit of a schedule is days, which are divided into two types: normal days within a week and exception days. A priority mechanism defines which scheduled event is currently valid. The ScheduleType is formally defined in Table 10.

Table 10 – ScheduleType definition

Attribute

Value

BrowseName

ScheduleType

IsAbstract

False

Description

Defines a periodic schedule that can recur over a range of dates. The schedule may have optional exceptions at arbitrary times or dates. The basic unit of a schedule is days, which are divided into two types: normal days within a week and exception days. A priority mechanism defines which scheduled event is currently valid. The schedule includes a PresentValue Variable whose value describes the current state of the schedule, including a default value when no schedules are in effect.

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of the 0:BaseObjectType

0:HasProperty

Variable

ExceptionSchedule

SpecialEventType[]

0:PropertyType

O

0:HasComponent

Method

AddExceptionScheduleElements

O

0:HasComponent

Method

RemoveExceptionScheduleElements

O

0:HasProperty

Variable

WeeklySchedule

DailyScheduleType[7]

0:PropertyType

O

0:HasProperty

Variable

0:LocalTime

0:TimeZoneDataType

0:PropertyType

M

0: HasProperty

Variable

EffectivePeriod

DateRangeType

0:PropertyType

O

0:HasProperty

Variable

ApplyLastAfterStart

0:Boolean

0:PropertyType

M

Conformance Units

Scheduler Scheduling Base

The ExceptionSchedule provides an array of SpecialEventType. If present, each of those special events describes a sequence of schedule actions that take precedence over a normal day’s behaviour on a special day or days.

The WeeklySchedule provides an array of seven DailyScheduleType. Each entry represents one day of the week. The first entry in the array represents Monday, the last Sunday. Each element describes a sequence of times and a list of actions that provides a sequence of schedule actions on one day of the week when no ExceptionSchedule is in effect.

At least one of the two Properties ExceptionSchedule and WeeklySchedule shall be present.

To manipulate the ExceptionSchedule, the Methods AddExceptionScheduleElements and RemoveExceptionScheduleElements should be used. This simplifies adding and removing entries of the array. As the WeeklySchedule is a fixed-size array with a length of 7, there are no corresponding Methods. Instead, an individual entry of the array may be written by the Client to change only the schedule of one weekday.

The 0:LocalTime provides information about the local time of the schedule Object. All scheduled times are UTC time. Clients need to consider this Property to calculate the local time of the schedule. If this Property is changed, it is server-specific whether the times of the schedule are adjusted or not. If the Server and the Object the schedule is defined for are in the same local time, the Object may reference the 0:LocalTime Property of the 0:Server Object.

The EffectivePeriod specifies the range of dates within which the schedule Object is active. Upon entering its effective period, the object shall execute the defined actions at the defined times, otherwise it shall not execute any actions.

The ApplyLastAfterStart Property defines if the last set of actions shall be applied when starting the schedule Object (see 6.3 for details).

The child Nodes of the ScheduleType have additional Attribute values defined in Table 11.

Table 11 – ScheduleType Attribute values for child Nodes

BrowsePath

Description Attribute

ExceptionSchedule

An array of special events. If present, each of those special events describes a sequence of schedule actions that take precedence over a normal day’s behaviour on a special day or days.

AddExceptionScheduleElements

Adds elements to the ExceptionSchedule

RemoveExceptionScheduleElements

Removes elements from the ExceptionSchedule

WeeklySchedule

Each entry represents one day of the week. The first entry in the array represents Monday, the last Sunday. Each element describes a sequence of times and a list of actions that provides a sequence of schedule actions on one day of the week when no ExceptionSchedule is in effect.

0:LocalTime

Provides information about the local time of the schedule Object. All scheduled times are UTC time. Clients need to consider this Property to calculate the local time of the schedule. If this Property is changed, it is server-specific whether the times of the schedule are adjusted or not.

EffectivePeriod

Specifies the range of dates within which the schedule Object is active. Upon entering its effective period, the object shall execute the defined actions at the defined times, otherwise it shall not execute any actions.

ApplyLastAfterStart

The ApplyLastAfterStart Property defines if the last set of actions shall be applied when starting the schedule Object

This Method adds entries to the ExceptionSchedule Property. Even if one entry cannot be added, the other entries are still processed and added, if possible. The signature of this Method is specified below. Table 12 and Table 13 specify the Arguments and AddressSpace representation, respectively.

Signature

AddExceptionScheduleElements (

[in] SpecialEventType[] SpecialEvents

[out]0:Int32[] EntryResults

);

Table 12 – AddExceptionScheduleElements Method Arguments

Argument

Description

SpecialEvents

An array of special events to be added to the ExceptionSchedule Property.

EntryResults

An array of results, one entry per entry in SpecialEvents, indicating if the individual entry could be added. Each result <> 0 indicates, that adding this special event entry was not successful.

0 – OK

-1 – Duplicate – Entry already in ExceptionSchedule

-2 – Invalid Format – The entry contains an invalid format, e.g. an invalid range

Values larger 0 can be used for vendor-specific errors.

Method Result Codes (defined in Call Service)

Result Code

Description

BadNodeIdUnknown

See OPC 10000-4 for a general description.

BadNotWritable

See OPC 10000-4 for a general description.

BadOutOfMemory

See OPC 10000-4 for a general description.

Table 13 – AddExceptionScheduleElements Method AddressSpace definition

Attribute

Value

BrowseName

AddExceptionScheduleElements

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

This Method removes entries from the ExceptionSchedule Property. Even if one entry cannot be removed, the other entries are still processed and removed, if possible. The signature of this Method is specified below. Table 14 and Table 15 specify the Arguments and AddressSpace representation, respectively.

Signature

RemoveExceptionScheduleElements (

[in] SpecialEventType[] SpecialEvents

[out]0:Int32[] EntryResults

);

Table 14 – RemoveExceptionScheduleElements Method Arguments

Argument

Description

SpecialEvents

An array of special events to be removed from the ExceptionSchedule Property.

EntryResults

An array of results, one entry per entry in SpecialEvents, indicating if the individual entry could be removed. Each result <> 0 indicates, that removing this special event entry was not successful.

0 – OK

-1 – Not found – Entry is not in ExceptionSchedule

Values larger 0 can be used for vendor-specific errors.

Method Result Codes (defined in Call Service)

Result Code

Description

BadNodeIdUnknown

See OPC 10000-4 for a general description.

BadNotWritable

See OPC 10000-4 for a general description.

Table 15 – RemoveExceptionScheduleElements Method AddressSpace definition

Attribute

Value

BrowseName

RemoveExceptionScheduleElements

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