Experimental Physics and
| |||||||||||||||
|
We have talked to NI as well about a vendor supported integration. A couple of the problems we run into were: 1) Channel access protocol is not documented -> they would have to integrate/call CA libraries into their code to a certain degree. 2) If there is a tight integration between LabVIEW and CA then who is responsible? Would NI support updates to Channel Access and test the overall program? We asked them if it was possible for NI to provide a generic integration method/ tool for other protocols to support that protocol similar to Datasocket. We could then hook CA into that interface and associate any control panel item with an EPICS PV. This way NI would maintain that generic interface and we (EPICS community) would maintain the way CA is hooked into that. We didn't really get an answer on that, more something like "that is way, way into the future". Here is what we have at SNS with respect to LabVIEW: 1) EPICS IOC with shared memory and LabVIEW (Dave Thompson and W. Blokland) 2) Channel Access Client for LabVIEW (by Andrei Liyu) The Shared Memory version runs currently only on Windows-based PCs while the Channel Access Client for LabVIEW runs on Windows, Linux, and Mac OS X. The Shared memory IOC is meant to function as a standard IOC, as a source of acquired and analyzed data. This is what we use for our diagnostic systems (BPM, BCM, Actuators, Faraday Cups, etc). LabVIEW acquires and analyzes the signals, the IOC makes the signals and results available to the control system. LabVIEW and the IOC share the data through the shared memory but also can send each other interrupts/signals to notify the other that data is available. The startup of a LabVIEW/EPICS system is all done by LabVIEW, it doesn't have to be done by hand. LabVIEW will start the IOC with a command file to load a .db file for the application. This is a .db file generated by a LabVIEW utility and derived from the LabVIEW code that refers to the PVs (you don't have to know db syntax unless you want to add to the file). We are using 3.14beta and are testing 3.14.2. In my experience, the Shared Memory IOC communicates a lot faster and is more reliable than the ActiveX interface. The ActiveX interface did get us started but didn't seem intended for larger systems. The Channel Access Client for LabVIEW is meant to use LabVIEW as a display environment. We use it to test our front-ends. We were able to saturate a 100Mbit ethernet with data-transfers (about 90Mbits/sec of data transfer which is close to the practical limit) using the CA client getting array data from LabVIEW IOC. It handles synchronous calls but also monitors with a callback mechanism using the LabVIEW occurrences. If people are interested in more documentation/publications or a copy of either program, let me know. Willem Blokland
| ||||||||||||||
ANJ, 10 Aug 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |