View Issue Details

IDProjectCategoryView StatusLast Update
0008076Part 81: UAFX Connecting Devices and Information ModelSpecpublic2022-07-27 18:33
ReporterGreg Majcher Assigned ToGeorg Biehler  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Fixed in Version1.00.00 Release 
Summary0008076: Add text to clarify persistence behavior
Description

UAFX has a mandatory IsPersistent flag in the ConnectionEndpoint specifying whether the UAFX connection should survive a power cycle. There are multiple issues with persistence that need to be clarified in the specification.

Clause 5.5.5 does indicate that dynamically created parts of the connection "are deleted" if the connection is not marked for persistence. Should this say "shall be deleted"?

Clause 6.2.4.3.5 states for a preconfigured ConnectionEnpoints, "IsPersistent... shall be set according to Parameter". Does this make sense for a preconfigured connection. IsPersistent should probably be ignored for a preconfigured ConnectionEndpoint.

Clause 6.2.4.3.9.2 discusses what to do when a SetCommunicationConfigurationCmd is issued. We discussed whether it is possible for the AC to "verify that ConnectionEndpoints with their IsPersistent Property set to TRUE reference a DataSetReader and/or DataSetWriter which are persisted, including all parent Objects, i.e., WriterGroup, ReaderGroup, PubSubConnection and PublishSubscribe (see NotPersisted in OPC 10000-14). We need to investigate if this is possible.

TagsNo tags attached.

Relationships

related to 0008156 closedGeorg Biehler 6.2.4.3.5 Command CreateConnectionEndpointCmd - need better linkage 

Activities

Paul Hunkar

2022-07-15 13:15

manager   ~0017138

Last edited: 2022-07-15 13:17

reviewed in call, agreed that it should be reviewed and updated as needed (note section 5 is not normative - so might not need shall?)

check section 4 & 5 for other persistance issue that might not have a shall

check if default for pubSub vs FX either needs to be changed or explain better (we are not persistent by default, but PubSub is persistent by default)

Georg Biehler

2022-07-18 10:03

developer   ~0017146

A search for shall in clauses 4 and 5 indicated one appearance in clause 5.4
Replaced the shall in clause 5.4 with "are". Note that the behaviour is stated in addition in 6.4.6.3

A search for may in clauses 4 and 5 many appearances
Do we need an update of "may" to "xxx"?

Verified that clause 4 and 5 do not contain any behaviour which is not stated in other places.

To clause 6.2.4.3.5 we have the text stated in 5.5.5:
An AutomationComponent may provide preconfigured Objects (for example, PublishedDataSet, or ConnectionEndpoint). They may be just part of the logical connection or the entire logical connection (including ConnectionEndpoint, WriterGroup, and DataSetWriter). An example of a part might be a FunctionalEntity that includes a preconfigured PublishedDataSet that is used as part of a logical connection. The other parts of the logical connection (e.g., ConnectionEndpoint, WriterGroup, DataSetWriter) are all created during connection establishment. If the connection is not marked for persistence, the other parts are deleted on clean-up or on a power cycle, and the preconfigured Objects will remain.

Clause 6.2.4.3.9.2 - according to Part14 clause 6.2.2 every PubSub component has configuration properties (e.g. dataSetWriterProperties, GroupProperties...). The properties are a list of KeyValuePairs. The component is not persisted, if the list contains an entry with key set to NotPersisted and value set to True. If no entry with the key exists or the value is set to False, the component is persisted.

Lets discuss in the larger group whether to rename the IsPersistent to NotPersisted to match Part14, or leave it as is. Since IsPersistent is mandatory, there is no default behaviour defined (you have to choose a value).

Paul Hunkar

2022-07-22 12:53

manager   ~0017175

during review of this issue we also updated this error code

Bad_RequestNotAllowed The ConnectionEndpoint to be enabled references input Variables, which are used by another enabled ConnectionEndpoint.
to
Bad_RequestNotAllowed The ConnectionEndpoint to be enabled references input Variables, which are referenced by another enabled ConnectionEndpoint.

Paul Hunkar

2022-07-22 13:29

manager   ~0017176

also updated text in section 6.2.4.3.9.2. to better explain what is expect

The EstablishConnections implementation shall verify that ConnectionEndpoints with their IsPersistent Property set to TRUE reference a DataSetReader and/or DataSetWriter which are persisted, including all parent Objects, i.e., WriterGroup, ReaderGroup, PubSubConnection and PublishSubscribe (see NotPersisted in OPC 10000-14). If the IsPersistent Property is set to FALSE, the EstablishConnections implementation shall verify that the DataSetReader and/or DataSetWriter are not persisted (see NotPersisted in OPC 10000-14). Otherwise, Bad_InvalidState shall be set in the appropriate element in ConnectionEndpointConfigurationResults CommunicationLinksResult, and the EstablishConnections implementation shall abort processing as described in 6.2.4.3.11.

Paul Hunkar

2022-07-22 13:34

manager   ~0017177

review text in call, made changes and closed issue

Issue History

Date Modified Username Field Change
2022-06-24 17:19 Greg Majcher New Issue
2022-07-15 13:11 Paul Hunkar Assigned To => Georg Biehler
2022-07-15 13:11 Paul Hunkar Status new => assigned
2022-07-15 13:15 Paul Hunkar Note Added: 0017138
2022-07-15 13:17 Paul Hunkar Note Edited: 0017138
2022-07-18 10:03 Georg Biehler Status assigned => resolved
2022-07-18 10:03 Georg Biehler Resolution open => fixed
2022-07-18 10:03 Georg Biehler Fixed in Version => 1.00.00 Release
2022-07-18 10:03 Georg Biehler Note Added: 0017146
2022-07-22 12:53 Paul Hunkar Note Added: 0017175
2022-07-22 13:29 Paul Hunkar Note Added: 0017176
2022-07-22 13:34 Paul Hunkar Status resolved => closed
2022-07-22 13:34 Paul Hunkar Note Added: 0017177
2022-07-27 18:33 Georg Biehler Relationship added related to 0008156