11-18-2013 02:47 PM
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
11-19-2013 09:20 AM
@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!
11-19-2013 10:20 AM
@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:
Thanks,
Daniel
11-19-2013 10:43 AM
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
11-20-2013 03:19 PM
@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
02-23-2014 07:06 PM
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.)
02-24-2014 10:35 AM
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
02-24-2014 10:48 AM
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.
02-25-2014 11:22 AM
Ah, ok. Thats what I needed to know.
Thanks,
Daniel
03-14-2014 11:24 AM
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.