09-29-2011 11:28 AM
Hi Folks,
I'm going to keep this question very basic for now - please let me know if you need clarification! (I had it all spelled out, but it simply complicated things).
The final goal of my project is to :
1 - From HMI (PC), define script ('recipe') and cRIO AIN channel properties (user-defined "name", scaling, log/don't log, etc)
2 - Download this script to my cRIO for execution
3 - cRIO executes, and logs to DSC, display/monitor on HMI
4 - HMI can still control (halt, pause, etc), but if disconnected, cRIO chugs away.
5 - HMI "seamlessly" can re-connect, regain recipe status, etc.
6 - This will be multi-site, so *eventually*, the idea is to use de-centralized HMI PCs to initiate/execute script, and "walk away", disconnect, potentially check in later from another HMI.
Now, in getting there, there are a few roll-out stages I need to meet first:
(I) I will initially be controlling / executing the script *entirely* from the HMI PC. Nothing at all embedded on cRIO. Logging locally to TDMS.
(II) Script will be off-loaded to cRIO for execution. HMI for display/logging/monitoring
(III) Addition of DSC server for logging.
I would like to maintain a high level of abstraction between the analog input cards, physically, and the test script - ideally, allowing the user to 'browse', select the cRIO slot, and channel, configure scaling, to log, etc. What is the best approach for this? I have used PSP URL's and OPC Client Read VI's in the past, but now with the addition of DSC, perhaps this is not the best approach(?)
I'm still a little confused on how the Scan Engine (which can network publish), the SVE, IO variables and Aliases (on PC) and DSC/OPC are all related, and how they're all intended to work together. Especially when you consider the user may not want to monitor/log every single channel, from every single cRIO card.
Any thoughts would be greatly appreciated. I spoke with NI, but everyone seems to be focused on the FPGA side of cRIO (understandably). I can't find any update info on integration of cRIO and DSC.
Here are some pages I found useful, but I could use some 1st hand 'real world' thoughts. 🙂
Programmatic Discovery, Configuration, and Access of CompactRIO Scan Mode I/O with LabVIEW
Using NI CompactRIO Scan Mode with NI LabVIEW Software
Recommended Practices for Using the LabVIEW I/O Variable and NI Scan Engine
Thanks kindly,
Jamie
09-29-2011 12:52 PM
At the risk of answering my own questions, here's an interesting KB article:
Do NI Scan Engine I/O Variables Use the Shared Variable Engine When Network Published?
While Network Published I/O Variables (via scane engine) do not utilize the SVE (good thing), they don't support DSC functions (bad for me).
SO, it looks like I'm forced to host the SVE on the cRIO, and publish via SVE to DSC and HMI.
In the case of the HMI indicators, that means no change is neccessary once I switch from HMI recipe control to cRIO control - they will both be reading from SVE published values.
Thoughts?
Anyone utilized this TCP 'command based architecture' I see on NI's site?
09-30-2011 08:21 AM
I have crossed this bridge before....
You can check out one solution that maybe give you some ideas at www.viscience.com.
Go to the Portfolio section and you will find a link to a cRIO SCADA Reference Design
I am still working on the documentation but could send you some additional notes if you are interested.
10-03-2011 08:22 AM
Hi -
Thank you for the response - I watched the HDS presentation, very nice work!
I'm just now taking a look at the reference design - I'll post back as soon as I finish digesting. 🙂
Best,
Jamie