Components

cancel
Showing results for 
Search instead for 
Did you mean: 

Current Value Table (CVT)

Hello,

I am interested in using the new CVT (CVT200). But it seems to be both completely different than the previous CVT library, and also there isnt any new documentation that I can find. Would anybody like to discuss the changes for these?

 

Specifically I am wondering if there is going to be a new Tag configuration editor since it seems that the way data types are handled makes the old TCE obsolete?

Also is there a new knowledge base article for the new CVT200? The old article is no longer very helpful. http://www.ni.com/example/30326/en/

 

I have no problem using the old version again, but am interested in what appears to be a more efficient algorithm and some very different subvis that are not directly replaceable with the old CVTs. Also the TCE was very important for me since im dealing with 500+ channels.

 

Thanks,

Eric

0 Kudos
Message 71 of 164
(8,296 Views)

@WilliamTell wrote:
I would like to use CVT (version 3) as the tag repository of a Labview RT control/logging system that communicates via OPC UA with a Siemens PLC, Via Profibus to electric servo drives and Over Ethernet with a host Labview application running on a PC.

I have around 4000 to 5000 tags in the control system and have created some test code to import tags from MS Excel.

However to efficiently communicate via OPC UA, ethernet etc. I need to get data changed information from the CVT table so that I can write changed tags (or tag groups) only to OPC UA, rather than the whole table.

Can the CVT table be modified to signal data changed events?

Can CVT version 3 interface with the existing CCC library?

The CVT version 2 library was quite a comprehensive solution which included a tag editor, tag read/write vi's, communication library and logging. Are there any plans to do this for CVT version 3? ( I would prefer NI to officially go this route, rather than persist with shared variables)

Sorry, I didnt see a notification on this post.

 

CVT3 as of a few weeks ago now works with the CCC.

 

We do have plans to add additional features to the suite of CVT-related downloads, but for now they are just plans. It is important to note that the CVT is not a product and is developed by NI Systems Engineering, not R&D.

 

As for value change events, this is certainly something that can be added. At one point I investigated what that would cost us and decided not to implement it. However the code is open source and includes the project, so you are welcome to edit it. I would recommend either a notifier (if something truly event-oriented is your style, since the notifier seemed faster than user events) or some sort of additional lookup table (sounds like this is more fitting since you just want to dump all the updates to OPC UA).

 

Good luck!

0 Kudos
Message 72 of 164
(8,283 Views)

@Etarkleson wrote:

Hello,

I am interested in using the new CVT (CVT200). But it seems to be both completely different than the previous CVT library, and also there isnt any new documentation that I can find. Would anybody like to discuss the changes for these?

 

Specifically I am wondering if there is going to be a new Tag configuration editor since it seems that the way data types are handled makes the old TCE obsolete?

Also is there a new knowledge base article for the new CVT200? The old article is no longer very helpful. http://www.ni.com/example/30326/en/

 

I have no problem using the old version again, but am interested in what appears to be a more efficient algorithm and some very different subvis that are not directly replaceable with the old CVTs. Also the TCE was very important for me since im dealing with 500+ channels.

 

Thanks,

Eric


Hi Eric,

 

CVT2 is a slightly older version of the code. The current version is CVT 3.2. Information on this version is located here: https://decibel.ni.com/content/docs/DOC-25841

And it can be downloaded from the tools network/VIPM.

 

The TCE is obsolete, however the CVT does come with a (somewhat hidden) compatibility library which would allow it to load old style CVT tags. You would still be limited to the 4 types in the old version, but it does work. I would say that updating TCE (or making something different) is on our radar but since this is not a directly supported product its really a matter of finding the time. CCC (CVT Client Communication) was just re-released to support the new types, so I believe the next step before TCE can be re-done would be to update the CVT I/O Engine. All this having been said, the code is open source and you are welcome to make modifications to it to suit your needs.

 

The new CVT is more efficient and has a few new APIs that can make your code a bit more performant or easier to read--and that performance can be a necessity when dealing with so many tags. If you are not using the CIE my immediate suggestion would be to keep using the TCE and simply load the old style format. Another good option is to use an excel/csv file. Tags are loaded in the form Name/Type/Value, and this is pretty easy to pull from a CSV. I've attached an example. If you don't have 2013, here is a screenshot:

1111.png

Thanks,
Daniel

 

Message 73 of 164
(8,279 Views)

Thanks for this explanation. It helps a lot. I think an excel style tag list may be better than the TCE anyways.

 

I do have a few more questions though. It seems that since I am using CCC and CIE and Scan Engine, this is why my CVT VIs get loaded as red or compatibility mode. I believe I read that the compatibility mode uses the old lookup table algorithm. Is this going to reduce the performance gains back down to CVT 2.0?

 

It seems as though maybe I would be best off to stick with the old CVT to insure the CCC and CIE work as expected, unless their are still significant performance gains. 

 

Thanks again for your clarifications.


Eric

 

 

0 Kudos
Message 74 of 164
(8,276 Views)

@Etarkleson wrote:

I do have a few more questions though. It seems that since I am using CCC and CIE and Scan Engine, this is why my CVT VIs get loaded as red or compatibility mode. I believe I read that the compatibility mode uses the old lookup table algorithm. Is this going to reduce the performance gains back down to CVT 2.0?

 

It seems as though maybe I would be best off to stick with the old CVT to insure the CCC and CIE work as expected, unless their are still significant performance gains.  

 


So...I'm not familiar with the compatibility VI's being red. I know that is something that the most recent version of AMC did, but I left the icons the same for the CVT compatibility library, since I was already modifying all of the top level icons to use a 4x4 connector pane and the full icon height. The compatibility functions (for clarification, located in <vi.lib>\NI\Current Value Table\Compatibility) are inlined wrappers on top of the new CVT, meaning that they use the new, faster code and should have no performance hit compared to using the VIs on the palette.

 

I would change my recommendation based on what you need. If you really need the TCE functionality, stick with the old code for now. If you are OK with doing a little bit of manual configuration of the system, upgade. The CCC has already been updated on VIPM to the new CVT. The compatibility library provided means that CIE should work without any changes. CIE is already pretty efficient and won't see big gains, but your code will be faster if you upgrade to CVT3 and the CCC has additional features/performance gains.

 

I hope this clarifies the situation a bit more for you. Let me know if anything else is unclear.

 

Thanks,

Daniel

0 Kudos
Message 75 of 164
(8,258 Views)

In CVT v3.3.0.13, "Save Grouped Tags to Disk" will save a group with 0 tags in it, but "Load Tags" will throw an error when trying to load that group. I found this bug when I accidentally provided the wrong group name to the Save function. While that was my fault, I think that if the Save function is allowed to save a group with no tags, the corresponding Load function shouldn't throw an error when it encounters that group. (Conversely, you might change the Save function to do nothing when it encounters an empty group.)

0 Kudos
Message 76 of 164
(8,036 Views)

Hey David,

 

Thanks for reporting that, I've added it to our bug reports list.

 

Another good question here is how you got it into that state in the first place. In some of the earlier builds we had it set up so you could add or remove tags from a group at any time, but there shouldn't (except obviously there is) be a way to get an empty group in the current code. Could you explain the sequence which gets you to this state?

 

Thanks,

Daniel

0 Kudos
Message 77 of 164
(8,023 Views)

Gets me to what state? I just called "Save Grouped Tags to Disk" with a group name that didn't actually exist in my table, and the VI created an XML file with that group name containing 0 tags. When I later (in the next run of the application) called the Load function, something deep inside threw an error because it encountered a group with 0 tags in the file.

0 Kudos
Message 78 of 164
(8,019 Views)

Ah, ok. Thats what I needed to know.

 

Thanks,

Daniel

0 Kudos
Message 79 of 164
(8,001 Views)

Is there a way in CVT3 to add a tag to an existing group? I looked inside the API and it doesn't seem possible to atomically delete the group and reform it with the extra tag.

0 Kudos
Message 80 of 164
(7,951 Views)