The Current Value Table (CVT) is a set of LabVIEW VIs that developers use to store and retrieve data asynchronously from different parts of an application. Often, it is desirable to log a subset of these CVT values to a file. The CVT Data Logger (CDL) reference library was created to fulfill this purpose.
Version 3.0 of the CVT added many new data types and it has been a longstanding request that support is added to the CDL for these data types. This alpha release attempts to support the scalar data types through the use of the tag bus module concept. Here, we pair a CVT module with a TDMS module to enable easy logging of CVT values. However, it would be just as possible to log modbus, ethernet/ip or any other tag bus-enabled module.
This release also serves as a demonstration of the use of the tag bus module framework without employing the entire execution system. The CDL has its own smaller, simplified process geared towards logging. In addition, the logging API can be called directly from your code without employing any background processes, demonstrating the flexibility of this tag bus-based approach.
CDL v 3_1 adds a binary datalogger option which stores things with a JSON header and then binary data. This should be faster than TDMS but it does have more overhead for a small number of channels because it must flatten the entire data structure. This format supports the entire tag bus/cvt data type set, including strings and arrays. To convert this to TDMS, you can use a function: vi.lib\NI\TBM Modules\Binary Datalogger\execution\convert to TDMS.vi. For arrays, the TDMS format will store all channels in the form <base channel name>_<index>. This can be adjusted by making a copy of the convert to TDMS function.