Skip to content
dsmithni edited this page Aug 8, 2014 · 1 revision

The actual dataset is called the "tag table", "data table" or more generally the "tag bus". In the CVT, this is implemented as a functional global, making it a singleton which can be accessed from anywhere in the system. The tag bus is a wire with a similar structure (arrays of the common data types) and an API to access these elements. The current API includes the common access modes--read/write 1x, r/w sequence (0,1,2,3), and r/w set (1,4,7,34).

This wire is a cluster, rather than a class. This is for performance reasons. Originally the tag bus was a class, with private data. However, due to some internal performance issues, classes are significantly slower on the write operation as compared to a cluster. While the overall performance is still significantly higher than the CVT, we decided to err on the side of higher performance. This performance issue is tracked by Corrective Action Request 457851. The expectation is that in 100% of cases, users should not directly access data of the tag bus.

In addition to the standard reads and writes, it provides two new concepts which are derived from the CVT group introduced in version 3. The first is also the concept of a group: a new tag bus which is a subset of another tag bus. You can specify the tags that are part of the group and copy data from one bus into the other and back again

The other concept is a "transfer specification", which basically defines a transfer of certain tags from one tag bus to the other. These tag bus wires do not have to be related, unlike the group. A group transfer is basically a very special case of the transfer specification.

Clone this wiki locally