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. TheScheduleTypeis 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 ExceptionScheduleprovides 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 WeeklyScheduleprovides 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 ExceptionScheduleis in effect.

At least one of the two Properties ExceptionScheduleand WeeklyScheduleshall be present.

To manipulate the ExceptionSchedule, the Methods AddExceptionScheduleElementsand RemoveExceptionScheduleElementsshould be used. This simplifies adding and removing entries of the array. As the WeeklyScheduleis 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 Clientto change only the schedule of one weekday.

The 0:LocalTimeprovides information about the local time of the schedule Object. All scheduled times are UTC time. Clients need to consider this Propertyto 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 Serverand the Objectthe schedule is defined for are in the same local time, the Objectmay reference the 0:LocalTimeProperty of the 0:Server Object.

The EffectivePeriodspecifies the range of dates within which the schedule Objectis 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 Propertydefines if the last set of actions shall be applied when starting the schedule Object(see 6.3for details).

The child Nodesof the ScheduleType have additional Attributevalues 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 Methodadds 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 Methodis specified below. Table 12and Table 13specify the Argumentsand AddressSpacerepresentation, 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-4for a general description.

BadNotWritable

See OPC 10000-4for a general description.

BadOutOfMemory

See OPC 10000-4for 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 Methodremoves 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 Methodis specified below. Table 14and Table 15specify the Argumentsand AddressSpacerepresentation, 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-4for a general description.

BadNotWritable

See OPC 10000-4for 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