View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0005762 | 10000-003: Address Space | Spec | public | 2020-06-25 16:31 | 2021-05-04 15:13 |
| Reporter | David Levine | Assigned To | Jeff Harding | ||
| Priority | normal | Severity | major | Reproducibility | have not tried |
| Status | closed | Resolution | fixed | ||
| Summary | 0005762: Create new service Read-Modify-Write (RMW) for integral values, arrays and fields in structs. | ||||
| Description | it is common to want to write to a part of a data item. Examples: This feature has been demanded by our customers, and explicit support was added with explicit services in our PLCs and in our communications stack. When this is not available the only other way to write a single value within a larger data item (e.g. bits within a word) is to first read the item, modify it, and write it back. This creates risk due to the time lag between when the value was read and when the modified value is written back - the part that was not supposed to be modified may be "stale" and no longer the correct value. The need for a builtin service increases as the size in bytes of the item(s) increases because it takes longer to read it and write it back, raising the risk of writing "stale" data to the server, plus the comms + app layers are not real-time so cannot guarantee a response within a deadline. Support for this to be optional so that servers that cannot guarantee RMW semantics are not forced to support it. This mode is already optionally supported for arrays: indexed writes. The desired goal is to extend this to other data items where it makes sense. Strawman proposal: Whether or not RMW is supported for a fundamental type to be defined; e.g. Arrays and structures Each supported type should be optional with its own conformance unit. e.g. all signed/unsigned integers is one unit, strings another, etc. Support for optional types to be reported in a server capability object. Possible priority: | ||||
| Tags | No tags attached. | ||||
| Commit Version | |||||
| Fix Due Date | |||||
| parent of | 0005837 | closed | Jeff Harding | 10000-005: Information Model | Create new service Read-Modify-Write (RMW) for integral values, arrays and fields in structs. |
| related to | 0005686 | closed | Jim Luth | Feature Requests | Ability to request a subset of fields from a structured data type. |
|
|
We think we can do most of this with the existing services and info model. Consider adding a new reference type to clearly identify the sub-variables that represent the subsets of the writable fields in the parent structure. |
|
|
Added new reference type HasStructureComponent as a specialization of HasComponent which can be used to reference a Variable which is representing a member of a Structure DataType. |
|
|
Can you provide a link to the reference description? |
|
|
Added new ReferenceType HasStructureComponent |
|
|
Further discussion resulted in the need to also add text to explain that the browse name (ns and name) shall match the field name the variable represents. The NS shall match the NS of the Structure's DataType. |
|
|
A example of this type of subvariable approach is the ServerStatus type defined in Part 5. |
|
|
Added descriptions of how to handle arrays of structures including a simple example. |
|
|
Agreed to changes edited in Virtual F2F. |
|
|
|
|
|
If we proceed as suggested then the NameSpaceIndex would actually be the NameSpaceIndex of the name field of the StructureField DataType which defines the field in the fields field of the StructureDefinition Datatype which defines the Structured DataType used by the Variable which is the target of the reference. |
|
|
Added additional explanation regarding the NamespaceIndex of the fields. |
|
|
Agreed to changes edited in telecon. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2020-06-25 16:31 | David Levine | New Issue | |
| 2020-07-07 16:38 | Jim Luth | Note Added: 0012560 | |
| 2020-07-07 16:39 | Jim Luth | Assigned To | => Jeff Harding |
| 2020-07-07 16:39 | Jim Luth | Status | new => assigned |
| 2020-07-07 16:39 | Jim Luth | Project | 10000-004: Services => 10000-003: Address Space |
| 2020-07-28 13:20 | Jeff Harding | Note Added: 0012629 | |
| 2020-07-28 13:33 | David Levine | Note Added: 0012630 | |
| 2020-07-28 14:40 | Jeff Harding | Issue cloned: 0005837 | |
| 2020-07-28 14:40 | Jeff Harding | Relationship added | parent of 0005837 |
| 2020-07-28 14:51 | Jeff Harding | Status | assigned => resolved |
| 2020-07-28 14:51 | Jeff Harding | Resolution | open => fixed |
| 2020-07-28 14:51 | Jeff Harding | Fixed in Version | => 1.05 |
| 2020-07-28 14:51 | Jeff Harding | Note Added: 0012633 | |
| 2020-08-25 15:02 | Jeff Harding | Status | resolved => feedback |
| 2020-08-25 15:02 | Jeff Harding | Resolution | fixed => reopened |
| 2020-08-25 15:02 | Jeff Harding | Note Added: 0012720 | |
| 2020-08-25 15:02 | Jeff Harding | Status | feedback => assigned |
| 2020-08-25 16:36 | Jim Luth | Relationship added | related to 0005686 |
| 2020-12-08 15:55 | Jeff Harding | Note Added: 0013401 | |
| 2020-12-10 14:28 | Jeff Harding | Note Edited: 0013401 | |
| 2020-12-10 14:28 | Jeff Harding | Status | assigned => resolved |
| 2020-12-10 14:28 | Jeff Harding | Resolution | reopened => fixed |
| 2020-12-10 14:28 | Jeff Harding | Note Added: 0013442 | |
| 2020-12-10 19:53 | Jim Luth | Status | resolved => closed |
| 2020-12-10 19:53 | Jim Luth | Note Added: 0013460 | |
| 2021-04-20 16:16 | Jim Luth | Status | closed => feedback |
| 2021-04-20 16:16 | Jim Luth | Resolution | fixed => reopened |
| 2021-04-20 16:16 | Jim Luth | Note Added: 0014231 | |
| 2021-04-22 15:21 | Jim Luth | Status | feedback => assigned |
| 2021-05-03 18:15 | Jeff Harding | Note Added: 0014293 | |
| 2021-05-03 18:25 | Jeff Harding | Status | assigned => resolved |
| 2021-05-03 18:25 | Jeff Harding | Resolution | reopened => fixed |
| 2021-05-03 18:25 | Jeff Harding | Note Added: 0014294 | |
| 2021-05-04 15:13 | Jim Luth | Status | resolved => closed |
| 2021-05-04 15:13 | Jim Luth | Note Added: 0014301 |