View Issue Details

IDProjectCategoryView StatusLast Update
0006669CTT UA Test Case4 - Test Case Definitionpublic2024-04-12 05:48
ReporterTaketoshi Satomura Assigned ToSebastian Allmendinger  
PriorityimmediateSeverityblockReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.03.09.504 
Summary0006669: IndexRange for String DataType for Write
Description

This is issued during the certification test.

  • OPC Foundation requests as below;
    In OPC UA it is possible to write Substrings to a variable of the DataType String by specifying an IndexRange. For example by specifying an IndexRange of “1” and specify the value “a”, it is possible to update the current value (“abc”) from a variable of the DataType String to “aac”.
    In the actual version of the client, it is not possible to specify an IndexRange for a scalar string variable. It is expected that this is possible. Same rules apply for arrays.

  • Our opinion is below;
    From the specification, this looks like ability to perform string manipulations and update specific characters or substrings in a field. I think the use case for this is for programmed applications that need to parse strings or trim them before processing.

Theoretically this is possible using the PROCESS service. If an item is read as a string, you can apply sub-string functions to filter out parts you need, and then maybe change them and write them back. However I think this is only in specific cases where there is tight relationship between client and server or for very specific functions.

Even then, the OPC spec may provide a mechanism for writing back to a specific character in a string, but that means the client application has to use that specific mechanism to perform an update. This doesn’t fit in an architecture when data is first acquired, then processed in different software layers. In practice an entire string would be written down from the processing application to the write layer, which would then need to figure out the difference, and then apply the operation on specific characters or substrings. This feels very impractical.

I can’t think of any case that would do that at the moment. I certainly don’t see this is part of the common engineering or operator use case.

TagsNo tags attached.
Files Affected

Relationships

related to 0006670 closedPaul Hunkar 10000-007: Profiles IndexRange for String DataType for Write 

Activities

Alexander Allmendinger

2021-03-18 17:13

developer   ~0014046

After a longer discussion in the CMP WG call we share the opinion:

  • that the specification does not explicitly ask for such a feature but only defines the opportunity to do this.
  • that there are only rare use cases where a client actually would only want to read/write/monitor a part of a String or ByteString.
  • that it is acceptable for a client to only allow the configuration of IndexRange for arrays

But we think this is a reasonable stand alone use case which should be split into its own CU. Therefore we are cloning this issue to Part 7.

Sebastian Allmendinger

2024-02-15 08:19

developer   ~0020806

Test cases Attribute Client Write by Index / 008 and 009 have been obsoleted.
These test cases have been splitted and moved to the new Conformance Units 'Attribute Client Write String by Index' and 'Attribute Client Write ByteString by Index' (test cases 001-004 in each of the CUs).

Paul Hunkar

2024-04-12 05:48

administrator   ~0021116

Reviewed issue in call, agreed to changes and closed issue

Issue History

Date Modified Username Field Change
2021-03-18 08:05 Taketoshi Satomura New Issue
2021-03-18 14:18 Paul Hunkar Issue cloned: 0006670
2021-03-18 14:18 Paul Hunkar Relationship added related to 0006670
2021-03-18 14:29 Paul Hunkar Assigned To => Alexander Allmendinger
2021-03-18 14:29 Paul Hunkar Status new => assigned
2021-03-18 17:13 Alexander Allmendinger Note Added: 0014046
2022-08-02 20:06 Paul Hunkar Project Compliance Test Tool (CTT) Unified Architecture => CTT UA Test Case
2024-02-15 08:19 Sebastian Allmendinger Assigned To Alexander Allmendinger => Sebastian Allmendinger
2024-02-15 08:19 Sebastian Allmendinger Status assigned => resolved
2024-02-15 08:19 Sebastian Allmendinger Resolution open => fixed
2024-02-15 08:19 Sebastian Allmendinger Note Added: 0020806
2024-04-12 05:48 Paul Hunkar Status resolved => closed
2024-04-12 05:48 Paul Hunkar Fixed in Version => 1.03.09.504
2024-04-12 05:48 Paul Hunkar Note Added: 0021116