Connecting LabVIEW to EPICS network Xiang Yan Reven.Yan@ni.com National Instruments
EPICS: Experimental Physics and Industrial Control System
Graphical dataflow programming Interactive front panel / GUI Efficient compiled execution Targets Windows, Real-Time, FPGA, Linux, Macintosh, DSP, Other Processors I/O and analysis libraries Distributed networking capabilities
Current LabVIEW-EPICS interfaces Shared memory interface By SNS ORNL DIM (Distributed Information Management System) By GSI CERN LabVIEW EPICS Client I/O server The Shared Variable gives us an architecture to implement protocols. 4
IOC Software with Shared Memory Interface Network Traffic (Channel Access Protocol) Channel Access Protocol Server Sequencer (Finite State Machine) LabVIEW Application Publishes values from the database onto the network using Channel Access protocol. Reads values from the database to drive state changes in the IOC control application. EPICS Database Shared Memory Database Engine Write I/O values to database. Default update rate is 10 Hz. Can be as fast as 25 Hz. Hardware EPICS Node – Windows
IOC Software with DIM Interface The basic idea is to make LabVIEW application as a DIM service. More like a DIM gateway. The Shared Variable gives us an architecture to implement protocols. 6
LabVIEW Programming Environment Project Library I/O server Shared variable VI There are three types of shared variables: The Single-Process shared variable is used when you would have previously implemented a global variable – for passing data between two process running on the same local machine. The Network-Published shared variable is used when you are passing data across the network. The Time-Triggered shared variable is used when your application calls for deterministic data transfer. For this discussion, we will focus our discussion on the first two types. Once of the nice things about the shared variable is that it is easy to move between the different types of variables as your application calls for new features. In fact, no extra coding is required… simply change the type of variable you would like the Properties Pages and LabVIEW will do the rest. We will see more about this is just a minute… 7
LabVIEW EPICS Client I/O Server Bases on EPICS base 3.14.8 Runs on LabVIEW for Windows Requires LabVIEW Datalogging & Supervisory Control (DSC) Module Integrates with LabVIEW features Logging Alarming Scaling ... No charge at this point.
Channel Access Protocol EPICS and LabVIEW LabVIEW Application OPI OPI EPICS Client I/O Server Channel Access Protocol IOC EPICS Database I/O HW IOC EPICS Database I/O HW IOC EPICS Database I/O HW IOC EPICS Database I/O HW
LabVIEW Shared Variable Engine EPICS and LabVIEW Network Traffic (Channel Access Protocol) Channel Access Protocol Server Sequencer (Finite State Machine) EPICS Client I/O Server Publishes values from the database onto the network using Channel Access protocol. Reads values from the database to drive state changes in the IOC control application. EPICS Database LabVIEW Shared Variable Engine Database Engine LabVIEW Application Write I/O values to database. Default update rate is 10 Hz. Can be as fast as 25 Hz. Hardware EPICS Node LabVIEW Node – Windows
LabVIEW CA Server (in research) Allows you to publish LabVIEW data with CA protocol Supports multiple platforms, hosts and controllers Windows VxWorks … No charge at this point.
Channel Access Protocol EPICS and LabVIEW Monitoring Archiving Analysis etc…. OPI LV DSC EPICS Client Channel Access Protocol IOC EPICS Database I/O HW IOC EPICS Database I/O HW IOC EPICS Database I/O HW I/O HW IOC EPICS Database LabVIEW CAS NI Controller
Thanks for your attentions Thanks for your attentions! If you are interested in Demo, please contact me!