View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0008523 | 10000-004: Services | Api Change | public | 2022-12-09 13:18 | 2023-04-18 18:55 |
Reporter | David Levine | Assigned To | Matthias Damm | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | assigned | Resolution | open | ||
Summary | 0008523: Allow index ranges to be used when reading and writing to Integers and its subtypes. | ||||
Description | PLCs and other devices support reads and writes to subsets of bits within an Integer, both signed and unsigned. This usually can be performed on any integer within its address space. It would be useful if OPC supported this. This would allow any client to access a Variable in a manner that is most convenient for their use case without requiring the Server to add special Nodes within its AddressSpace to support this functionality. | ||||
Tags | No tags attached. | ||||
Commit Version | |||||
Fix Due Date | |||||
related to | 0006174 | closed | Jeff Harding | 10000-003: Address Space | Add new variable type for packed variants |
|
If a Server does not want to support this, it can return an error if a client attempts to use an index range on a Variable. A capability flag can be added which indicates if it is supported or not. |
|
Just my two cents:
|
|
An OptionSet is a good solution, but is not always possible. The problem with modeling this as an OptionSet is that it requires the Server to have advance knowledge that it should be exposed this way, and this is not always known when the Server creates the address space. If it is not part of the address space, it becomes impossible for a client to access it this way without modifying/rebuilding the model. There are use cases where only the client knows which Nodes should be handled this way. In a distributed system with many clients, perhaps only some clients need this functionality, and others do not. When a Client writes any value to a Server there is no expectation of realtime behavior, but the concern is data consistency - the corruption window is the time between when the Server read the value from its source and when the client writes the modified value back to the Server and it is forwarded to the data source. If it is implemented in the UA Server, the window is between the time the Server reads the value from the data source and writes it back again - a big chunk of the latency is gone. If RMW is implemented in PLC or device firmware then both data consistency can be guaranteed along with deterministic behavior. The feature is optional, so the Server and/or data source does not need to implement it. |
|
Discussed in meeting. Reading may be overkill since it is easy for a Client to mask off the undesired bits, but writing a subset of bits should be supported. May be particularly useful when using the new "bitfield" type (see related mantis issue). |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-12-09 13:18 | David Levine | New Issue | |
2022-12-09 13:20 | David Levine | Note Added: 0018291 | |
2023-01-09 16:08 | Herbert Oppmann | Note Added: 0018439 | |
2023-01-10 14:51 | David Levine | Note Added: 0018450 | |
2023-04-18 18:49 | Jim Luth | Relationship added | related to 0006174 |
2023-04-18 18:52 | Jim Luth | Assigned To | => Matthias Damm |
2023-04-18 18:52 | Jim Luth | Status | new => assigned |
2023-04-18 18:52 | Jim Luth | Project | Feature Requests => 10000-004: Services |
2023-04-18 18:52 | Jim Luth | Category | Feature Request => Api Change |
2023-04-18 18:55 | Jim Luth | Note Added: 0019212 |