LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Ideas for CVT/CCC uses

I recently stumbled upon the CVT/CCC/TCE reference libraries and am interested in learning about them. They seem like a very scalable solution, however I'm not sure how to go about implementing it.

 

I'm in the process of designing a SCADA system for my company to manage cRIO controlled manufacturing cells. I'll briefly describe the scenario:

 

RT System-

-cRIO running a custom setpoint profile that controls oil/water heating units (via MODBUS)

-Records/monitors TC data

-Handles user pushbuttons/indicators and StackLights

-Controls Hydraulics systems

 

Central Server-

-Contains a Citadel Database/uses DSC module (already bought this) to log values (ex: Thermocouples) from each manufacturing cell

-Has a application (VI compiled as a stand-alone .exe) running for each manufacturing cell

    -this app monitors for alarm conditions, sends out messages/alerts/e-mails

    -manages who is "logged in" to process, who has write control/read-only

 

HMI System-

-connects to the Central server (Citadel Database) to display relevant information

-allows user to input data (ex: part #s and job #s) and start cycles on the cRIO

-configuration parameters

 

This is the basic design of the system, it is not currently in existence. The theory behind it is making the manufacturing cells "PC independent" in that the HMI PC is NOT required for anything other than initially telling the cRIO to run, and giving it the appropriate cycle information. Once this happens, the HMI could blow up, and in theory the operator could go to another HMI and log into the process (since they are always connecting directly to the central server).

 

So I guess my question is, in what parts of this could the CVT/CCC/TCE libraries be most beneficial? (as an aside, I have used shared variables extensively in the past, and also use the cRIO Scan Engine)

--------------------------------------------------------------------------------------------------

--CLD--
LV 6.1 to 2015 SP1
0 Kudos
Message 1 of 2
(2,650 Views)

Hey Jim,

 

I am not personally familiar with the CVT application--I've seen it before, but I've never used it. Based on my understanding of it, I would say that it would be best suited for handling the HMI/server communication, especially config and viewing. It might also be used to move data from the RT system to the citadel database--however, given the slow speed of TCs and how well shared variables are integrated with DSC, it would probably be better to alias local (on the server) SVs to the variables on the RT system, and then log that data directly to the database using those variables. If you used the CVT for this process you would need to have complicated code to get information into the CVT and then back out of the CVT for logging.

 

I would also recommend (as does the CVT article) using either the AMC (better suited for inter-process communication on the same system, like between the "application(s) running for each manufacturing cell") or the STM (better suited for sending commands and data from system to system, like sending command information from the HMI all the way through to the cRIO. You can also use shared variables, but then you would have to poll the SVs rather than just waiting for communication on a port. Those libraries are located here:

(stm) http://zone.ni.com/devzone/cda/tut/p/id/4095

(amc) http://zone.ni.com/devzone/cda/epd/p/id/6091

 

On the plus side, CVT is built on top of the STM protocol, so you may be able to use this to handle the command-based communication as well. I think the biggest benefits of the CVT reference library are outlined in the implementation section (determinism, preallocation, speed). These are important benefits, especially if you are dealing with a large number of variables, so it may actually be beneficial to ignore what I said before and allow the CVT to handle all communication from cRIO to Server as well (using the Tag API to log rather than simply allowing shared variables to handle the logging automatically). It takes more work, but will probably give you better performance and a more secure network as well. But these are just some thoughts. You can do a lot with either method, and it just comes down to what your needs are.

 

I hope this helps.

Thanks,

0 Kudos
Message 2 of 2
(2,627 Views)