EPICS and LabVIEW Tony Vento, National Instruments

Slides:



Advertisements
Similar presentations
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
Advertisements

SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams.
Chapter 13 Embedded Systems
9-12 Oct 2000PCaPAC 2000, DESY Hamburg Epics to TINE translator Matthias Clausen, DESY Hamburg Phil Duval, DESY Hamburg Zoltan Kakucs, DESY Hamburg.
16 - Nov. 2000EPICS Workshop Oak Ridge1 Epics to TINE translator Matthias Clausen, DESY Hamburg Phil Duval, DESY Hamburg Zoltan Kakucs, DESY Hamburg.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
Target Online Software J. Leaver 01/12/ /06/2015Imperial College 2 Target Controller Software Software for Stage 1 upgrade nearing completion –Hardware.
Figure 1.1 Interaction between applications and the operating system.
Brian Martlew 25 th Sept 2006 MICE Control & Monitoring Plan Brian Martlew.
V4 – Executive Summary 1.Provide online add/delete of I/O to support continuous operation. 2.Provide redundant control of remote I/O to support improved.
1 I/O Management in Representative Operating Systems.
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
Systems Software Operating Systems.
Virtual Instrumentation With LabVIEW
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Client/Server Architectures
EPICS Collaboration meeting Fall 2012, SDD status and plansPage 1 Self-Described Data - SDD status and plans Lana Abadie, ITER CODAC.
How to use LabVIEW Ihor Korolov February 2011.
V1: HMFR, V2: MFNB, 2007 LabView Seminar University of Puerto Rico Mayagüez Campus.
Home controlling system based on Galileo Final Semester Presentation Started at: Winter 2015 Project supervised by: Mony Orbach Project performed by: Khalid.
SNS Integrated Control System EPICS IOCs – Relational DB Connectivity Bridge A. Liyu, A. Zhukov.
UPC/SHMEM PAT High-level Design v.1.1 Hung-Hsun Su UPC Group, HCS lab 6/21/2005.
EPICS Meeting 29 th April - 3 rd May© 2013 Helmholtz-Zentrum BerlinCarsten Winkler.
1 LabVIEW DSP Test Integration Toolkit. 2 Agenda LabVIEW Fundamentals Integrating LabVIEW and Code Composer Studio TM (CCS) Example Use Case Additional.
TANGO on embedded devices: the Bimorph Mirror application case Fulvio Billè Roberto Borghes, Roberto Pugliese, Lawrence Iviani Instrumentation & Measurement.
Debby Quock November 13, 2012 IRMIS at CLS. IRMIS Currently at CLS PV Crawler –Perl modules that parse EPICS IOC st.cmd, db, and dbd files. Information.
1 SNL Current State (in transition state) By Matthias Clausen Ron Chestnut.
EPICS Direction to Support Large Projects and Incorporate New Technology Leo R. Dalesio 09/21/99.
A U.S. Department of Energy Office of Science Laboratory Operated by The University of Chicago Argonne National Laboratory Office of Science U.S. Department.
Running EPICS on NI CompactRIO Initial Experience Eric Björklund (LA-UR )
CVSQL 2 The Revenge of the SQL. The present Read-only access to CVS repository logs Language is a subset of SQL XML interface for returning results Built-in.
‘ActiveX’ CA Server (… and Client) Oct Kay-Uwe Kasemir, LANL.
ATCA based LLRF system design review DESY Control servers for ATCA based LLRF system Piotr Pucyk - DESY, Warsaw University of Technology Jaroslaw.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
MACCE and Real-Time Schedulers Steve Roberts EEL 6897.
Cohesion and Coupling CS 4311
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio, CSS Overview.
3.14 Work List IOC Core Channel Access. Changes to IOC Core Online add/delete of record instances Tool to support online add/delete OS independent layer.
SNS Integrated Control System Timing Clients at SNS DH Thompson Epics Spring 2003.
Integrating EPICS and LabVIEW on Windows using DCOM Freddie Akeroyd ISIS Computing Group.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
Fast Fault Finder A Machine Protection Component.
1 1999/Ph 514: Flow of Control EPICS Flow of Control Marty Kraimer APS.
1. LabVIEW and EPICS Workshop EPICS Collaboration Meeting Fall 2011.
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Controls & Monitoring Overview J. Leaver 03/06/2009.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
LabVIEW.com.tw LabVIEW Community Speeding Up Your VIs 參考 NI 官方教材: LabVIEW Intermediate II for 7.
Connecting LabVIEW to EPICS network
B. Dalesio, N. Arnold, M. Kraimer, E. Norum, A. Johnson EPICS Collaboration Meeting December 8-10, 2004 Roadmap for IOC.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
Managed by UT-Battelle for the Department of Energy Kay Kasemir Jan Experimental Physics and Industrial Control System.
Introduction to LabVIEW
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
Debbie Rogind Diane Fairley SLC-Aware BSAC Facility Requirements Review May 26, 2005 SLC Aware IOC BSAC* Facility Requirements Review *Beam Synchronous.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
LonWorks Introduction Hwayoung Chae.
An Introduction to Epics/Tango Steve Hunt Alceli EPICS Meeting 2008 INFN Legnaro 15 Oct 17:15.
January 2010 – GEO-ISC KickOff meeting Christian Gräf, AEI 10 m Prototype Team State-of-the-art digital control: Introducing LIGO CDS.
Wednesday NI Vision Sessions
Using COTS Hardware with EPICS Through LabVIEW – A Status Report EPICS Collaboration Meeting Fall 2011.
Laboratorio per dottorandi 2017 Particle Accelerators Control System
EPICS IOCs – Relational DB
Analysis models and design models
Channel Access Concepts
Overview of My Experience With C++
Channel Access Concepts
Presentation transcript:

EPICS and LabVIEW Tony Vento, National Instruments Willem Blokland, ORNL-SNS

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

EPICS and LabVIEW Interfaces (Oak Ridge and Others) 1. Shared Memory Interface to IOC (I/O Channel) Links LabVIEW and IOC Process Variables (PVs) Data from LabVIEW is available to the IOC Windows 2. CA (Channel Access) Client LabVIEW as a display environment for PVs No programming required Windows, Macintosh, Linux Much of the work has been done at Oak Ridge National Labs in the SNS (Spallation Neutron Source) Group

1. Shared Memory Interface db & cmd file generator at startup Development tool -Cloning/documentation Windows PC Application Template tools Standard Examples NADs implemented: BCM, BPM, ES, FC, TTS (M. Sundaram, C. Long, W. Blokland, LANL, BNL) LabVIEW Shared Memory Records LabVIEW Library (D. Thompson) Shared Memory EPICS IOC+CA NAD: Network Attached Device, BDM: Beam Current Monitor Channel Access Graphical programming Drivers to DAQ Processing routines Graphs/Plots Accelerator Controls

Shared Memory Interface Shared Memory IOC written by D. Thompson. LabVIEW Library by W. Blokland. The shared memory interface buffers the data and implements functions to: Create, find and destroy variables Read from and write to variables Set and receive events Retrieve information about variables

Program startup LabVIEW loads and runs Top-Level VI The same code that finds the references during run-time is used to generate the db file before run-time. LabVIEW loads and runs Top-Level VI LabVIEW gets variable declarations, generates .db and starts IOC IOC starts and loads db file. Each time the IOC creates a PV record, the record creates a Shared Memory (SM) entry LabVIEW finds references to SM entries by resolving PV names

EPICS dB Utility Generates all files needed by the IOC. The dBGenerate Utility automatically generates the database file for the EPICS IOC as well as the cmd file and an Excel file. The utility uses the VI that resolves names to indices, as written by the programmer, as information on which PVs are going to be used. The utility supports the instantiation of one device many times (necessary for the NAD concept).

Performance Profiler: times measured with LabVIEW’s profiler tool, excludes all time spent by processor elsewhere Total: use time before and after execution, includes all time spent by processor on other processes.

Template: State Machine

Template: State Machine diagram

Template Use templates (state-machine based) to: Strict organization -> clear development path Similar structure among instruments-> re-use of code with copy/rename tool Simple structure -> fast development and debug Built-in support for user-interface/EPICS/ configuration files. State machine supports jumps to other state if exception occurs (e.g. error condition) Network Attached Device: Each pickup or sensor has its own resources such as timing, data acquisition and processing. No tightly coupled systems An individual device can fail or be serviced without disrupting other devices. Software is simplified as it doesn’t have to manage single resources among multiple devices.

Diagnostic NADs (Network Attached Device)

2. CA (Channel Access) Client Drag and Drop Display Client for implementing screens that don’t require programming (W. Blokland) Tools to select data to log or set (M. Sundaram) Examples: Channel13: dynamically loaded display modules NAD Control screens (W. Blokland, D. Purcell, M. Sundaram) Processing the data. Mac/Linux/Windows Display App LabVIEW CA/LV Interface EPICS CA Graphical programming Processing routines Graphs/Plots Multi-platform Interface to buffer CA messages and handle interrupts (A. Liyu) Channel Access Accelerator Controls

Automatic PV Generation Adding a PV is simple, just add a control to LabVIEW front panel, and then edit one field. New method generates PVs automatically at runtime. Adding a PV now takes around 2 minutes on average. Not prone to error. Currently supports scalar numbers, one dimensional arrays of numbers, and it will parse down into clusters.

LabVIEW Display Manager Name a graph, control, scalar display after a PV then run. Analysis can be added to the code Implementation: LabVIEW can ask about its program, e.g. what are the parts on my panel, refer to these parts and send data to these parts

LabVIEW Channel Access Client Developed by Andrei Liyu to Access PVs. (monitoring, scan, set)

LabVIEW Channel Access Client

Emittance scanner CA Client

LabVIEW/EPICS on the Web Many people from labs have requested the SNS LabVIEW/EPICS interface (France, Germany, Italy, Korea, U.S., China, etc) Description and Downloads Oak Ridge National Labs, SNS (Spallation Neutron Source) Group http://www.sns.gov/diagnostics/documents/epics/LabVIEW/SNS_LabVIEWEPICS.html#Top http://www.sns.gov/diagnostics/documents/epics/Downloads/downloads.html

Looking Forward

Shared Variable in LabVIEW 8 Single-Process Use instead of Global Variable Network-Published Available to any node Time-Triggered Deterministic Communication 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…

Communication between Targets One would have had to do much TCP/IP coding in the past. Now one creates a Shared Variable in the Project then places shared variables (readers and writers in the targets)

I/O Server in LabVIEW 8 An I/O Server is a plug-in to the shared variable engine An I/O Server could be created for the CA (Channel Access) Protocol The Shared Variable gives us an architecture to implement protocols.