11-01-2010 09:00 PM
I think you might have to give up on automatic logging via the DSC to accomplish this. You could setup a permanent rt buffer that can expand and contract as neccesary. Then use tcpip data transfers which will always read from this buffer to the host were you can perform DSC trace writes. You will need to capture a timestamp with each datapoint or if you have synchronous data capture then you can transfer blocks of data with a fixed dt and then can write to citadel as a waveform. There are many examples of circular memory or disk buffers or perhaps TDMS vi's might work for this as well.
On the other hand you might be able to beef up your network to provide redundancy so that you can use the DSC logging right out of the box which is sweet.
11-02-2010 07:05 AM
Sachsm,
So basically have the cRIO's package the data, then send to the server where the package is broken down into individual elements, allowing the DSC module to log/trend/alarm each of those variables on the server side? Thats certainly an option, kind of what I thought might need to happen, since citadel can't run on a cRIO.
The reason for doing this wouldn't be so much b/c we expereience network issues (our infrasturcture has been very reliable), but so that process can continue to run if the central server needs to come down for updates. One reason for this would be adding additional cRIOs to the system after it has been implemented (this will be long-term project where cells are brought online 1 by 1). Any thoughts on setting up the server anticipating the addition of future cRIOs?
Thanks for the input.
11-02-2010 08:12 AM
Well another thought is that you might be able to have a local network were your mirrored NSV's are hosted and then from there have a remote citadel connection to your corporate network.
I have not done this, but I understand that the local PC will buffer data if the remote network goes down and will automatically reconnect when available and transfer any buffered data to citadel.
http://zone.ni.com/devzone/cda/tut/p/id/6579
Check out the section on Networking with Citadel
11-02-2010 08:51 AM
Nice article, I will have to read it a few times over. this part caught my interest:
"
The DSC Module 8.0 and later include an API for writing data directly to a Citadel trace. This API is useful to perform the following operations:
· Implement a data redundancy system for LabVIEW Real-Time targets.
· Record data in a Citadel trace faster than can be achieved with a shared variable.
· Write trace data using custom time stamps.
The Citadel writing API inserts trace data point-by-point with either user-specified or server-generated time stamps. You can write numeric, logical, string, bit-array, and variant data using this method. Benchmarks have demonstrated that you can write single-point data to a Citadel trace at approximately 80,000 points per second on a 3Ghz Pentium IV."
Am I understanding correctly that you can manually write to the database with the specified time stamp? Would this then allow you to create a "backlog" on the cRIO during network dissconnects, then push all that data into Citadel traces?
11-02-2010 11:33 AM
Yes, that is exactly what it is made to do.
03-28-2011 04:16 PM
Sachsm,
I'm trying to build the utility you described to "clone and bind to" the shared variable Library on a cRIO and build a mirrored library on the PC side. I've done some searching on the forms but can't seem to find any example. Where do i begin?
03-29-2011 02:53 PM
Here is the basic idea..
.
07-20-2017 04:45 AM
I have video to show this use. I hope it's useful with you!!!