Making LabVIEW look like an IOC Kay-Uwe Kasemir, LANL May 2002.

Slides:



Advertisements
Similar presentations
LabVIEW for Physicists 24 th October 2002 Ben Jeffery.
Advertisements

Control System Studio (CSS)
SNS Integrated Control System SNS RDB Requirements, wish list, status A little history l Oracle RDB used exclusively by accelerator physics group l JERI.
User Events in LabVIEW RT
MHK200 Module 1: Introduction to Windows CE. MHK200 Overivew Windows CE Design Goals Windows CE Architecture Supported Technologies, Libraries, and Tools.
1 1999/Ph 514: Channel Access Concepts EPICS Channel Access Concepts Bob Dalesio LANL.
1. 2 LabVIEW for FRC Doug Norman National Instruments January 6, 2012.
EPICS Architecture Version 3 Channel Access Client (CAC) Connection Data Transfers WAN/LAN/Local Connection Data Transfers Channel Access Server (CAS)
SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams.
Channel Access Protocol Andrew Johnson Computer Scientist, AES Controls Group.
Introduction to LabVIEW 8.5
PC Applications Course LabVIEW: Laboratory Virtual Instrument Engineering Workbench Graphical Programming Easy to use Faster Development Time.
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.
Design and Implementation of a Virtual Reality Glove Device Final presentation – winter 2001/2 By:Amos Mosseri, Shy Shalom, Instructors:Michael.
Introduction to LabVIEW Seth Price Department of Chemical Engineering New Mexico Tech Rev. 10/5/14.
EPICS support for ControlLogix via EtherNet/IP Kay-Uwe Kasemir, LANL May 2001.
Ether_ip - EPICS EtherNet/IP support for ControlLogix Kay-Uwe Kasemir, LANL Nov
How to use LabVIEW Ihor Korolov February 2011.
V Avon High School Tech Club Agenda Old Business –Delete Files New Business –Week 16 Topics: Intro to HTML/CSS –Questions? Tech Club Forums.
Intro to COM What is it and what can it do for me?
CSE 381 – Advanced Game Programming 3D Game Architecture.
Design of Bio-Medical Virtual Instrumentation Tutorial 1.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Scan System Kay Kasemir, Xihui Chen Jan Managed by UT-Battelle for the U.S. Department of Energy Automated Experiment Control “Scan” should be.
LabVIEW an Introduction
SNS Integrated Control System EPICS IOCs – Relational DB Connectivity Bridge A. Liyu, A. Zhukov.
Ralph Lange: OPC Gateway (Device Support) OPC Gateway (Device Support) Ralph Lange – EPICS Collaboration Meeting March SSRF.
1 A tutorial on the VISIR Open Lab Platform and an invitation to join the VISIR Group How to open a local electronics laboratory for remote access
NATIONAL INSTITUTE OF SCIENCE & TECHNOLOGY VIRTUAL INSTRUMENTATION BIBHU SANTOSH ROUT EI [1] VIRTUAL INSTRUMENTATION by Bibhu Santosh Rout Roll.
EPICS OPC Gateway Nov May 2002 CA Client->OPC: Andrei Makhnachev,DESY OPC-> CA Server: Kay-Uwe Kasemir, LANL OPC Experience: Matthias Clausen,
Running EPICS on NI CompactRIO Initial Experience Eric Björklund (LA-UR )
‘ActiveX’ CA Server (… and Client) Oct Kay-Uwe Kasemir, LANL.
ActiveX CA Server/Client Update Nov Kay-Uwe Kasemir, LANL.
Ni.com Understanding COM/ActiveX Jeff Paulter Staff Software Engineer Thurs Aug 17 10:15-11:30 a.m., 1:45-3:00 p.m. Ash (10A) Jeff Paulter Staff Software.
The CSS Scan System Kay-Uwe Kasemir SNS/ORNL Dec
1 Channel Access Concepts – EPICS Training – K.Furukawa – Mar EPICS Channel Access Concepts Kazuro Furukawa, KEK, ( ) (Bob Dalesio, LANL,
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
Introduction to LabVIEW 8.5
An Overview of LabVIEW by: The Software User-Interface Group!
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Writing a Channel Access Client in EPICS Bob Dalesio, April 5, 2000.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
5-Oct-051 Tango collaboration status ICALEPCS 2005 Geneva (October 2005)
07/10/2007 VDCT Status Update EPICS Collaboration, October 2007 Knoxville, Tennessee
1. EPICS IOC on CompactRIO EPICS Collaboration Meeting Fall 2011.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
1. LabVIEW and EPICS Workshop EPICS Collaboration Meeting Fall 2011.
Anritsu Automation Platform (AAP) AAP PC Connects to the system via IP connection (system switch) AAP was developed to add features that were requested.
Connecting LabVIEW to EPICS network
SNS EPICS Config. Database May 2001 Kay-Uwe Kasemir, LANL.
RDB Issues at SLAC Archiver Store General EPICS Support.
1 Channel Access Concepts – IHEP EPICS Training – K.F – Aug EPICS Channel Access Concepts Kazuro Furukawa, KEK (Bob Dalesio, LANL)
EPICS and LabVIEW Tony Vento, National Instruments
1 EPICS Flow of Control: EPICS Workshop at IHEP, Beijing, August 2001 EPICS Flow of Control Marty Kraimer APS.
SNS Integrated Control System EPICS IOCs – Relational DB Connectivity Bridge A. Liyu, A. Zhukov.
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
OPC Status Nov CA Client->OPC: Andrei Makhnachev,DESY OPC-> CA Server: Kay-Uwe Kasemir, LANL OPC Experience: Matthias Clausen, DESY.
Control System Overview J. Frederick Bartlett Fermilab June 1,1999.
Current Status of Web Application for RIBF Accelerator
Wednesday NI Vision Sessions
Using COTS Hardware with EPICS Through LabVIEW – A Status Report EPICS Collaboration Meeting Fall 2011.
Function Generator Remote Control
Internet2 Fall Member Meeting, October 2003
Measurement & Automation Explorer
EPICS IOCs – Relational DB
Graphical User Interface (GUI) ?
Channel Access Concepts
EPICS: Experimental Physics and Industrial Control System
Presentation transcript:

Making LabVIEW look like an IOC Kay-Uwe Kasemir, LANL May 2002

National Instruments’ LabVIEW Integrated Graphical Programming Language and Operator Interface Instructions and “Virtual Instruments” (Vis): Add, Wait, Loop, Open device, Read value, … Many GUI elements: Knobs, Graphs, … Supports huge number of GPIB, VXI, Serial as well as NI specific (PXI, FieldPoint) instruments Library for Signal Analysis, … Widespread use for Test & Measurement

Integration via ChannelAccess, based on ActiveX CAS.DLL (server lib.) List of PVs “XYSetpoint”, “XYReadback”, “XYStatus”, “XYOn_Off”, … EpicsCAServer (ActiveX Automation Server for Win32) IProcessVariable String name, Double deadband, SetValue(Variant v), … User program Create PVs, Interact with Instruments, Update PVs and GUI, Check for User Input LabVIEW ActiveX VIs CAServer VIs LabVIEW Internet: CA based on UDP & TCP CA Clients: OPI, Archiver, Alarm Handler, LabVIEW, Matlab, … Updates AX Event User Input User program Create PVs, Interact with Instruments, Update PVs and GUI, Check for User Input LabVIEW ActiveX VIs CAServer VIs LabVIEW (similar: Visual Basic, Matlab, …)

Example LabVIEW Code 101: Publish PV and updates 102: Deadband, Config. Info, Reaction to remote input

Performance COM call to update value of a PV (LabVIEW 7.I, 900MHz PC) Reaction to user input (Check AX Event, post new value) 2 COM transactions, ~0.28ms LabVIEW Implementations: 10 PVs, handle user input Loop: 7ms Data ServedLabVIEWVisual Basic Double0.14 ms0.08 ms Double[100]0.20 ms0.16 ms Double[500]0.45 ms0.40 ms Double[1000]0.75 ms0.77 ms Parallel: 0.5ms

LANL Experience Terrific for small systems Signal generator, GPIB, new PC: handled in one afternoon No need for vxWorks, IOC, boot host, display computer Compare: 3 days for EPICS IOC, GPIB Lan Box, EDM. (Not considered: Advantages of EPICS driver & DB and Lan box) Faster initial development cycle No recompile & reboot (until turned into distributed system) Handled up to ~500 PVs on one PC

LabVIEW: Limits of Visual Coding Diagram gets too big, “wires” tangled Hardware engineers switched to e.g. VHDL for this reason No ASCII import/export no real CVS support, no comparable NI tool no script-generated code from signal list, RDB, Capfast,... What you see is all you get IOC’s scanning mechanisms and reaction to remote input have to be re-implemented with fundamental instructions (loops, delays, …)

LabVIEW Oddities we ran into Movie-Style “Sequence” is a cute but only shows one frame at a time Array handling: Array constants easy to accidentally extend Auto-indexing misleading for different sized input arrays

Main Loop LabVIEW: Polling Remote input via ChannelAccess ActiveX Event is sent with, LabVIEW has to catch event, check the value and - if accepted - update PV to that new value While e.g. VisualBasic can handle events async., LabVIEW can only “WaitForEvent” Response delayed until LabVIEW’s main loop comes around to service the PV changes In principle, LabVIEW offers threads & semaphores, but is that still “easy”? Not debuggable, even some Nat.Inst. VIs are incompatible. Check PVs for remote input Interact with HW, perform control Update PVs to reflect current status Most code in here!

Conclusion (still) Win32-Program (with not too much) data worth serving, e.g. LabVIEW ‘EPICS’ data + ActiveX CA Server

ActiveX Automation Server COM (Component Object Model) allows programs to share objects COM Classes identified via CLSID Win32 handles creation and messaging All objects implement the IUnknown Interface: AddRef, Release, QueryInterface Programs agree on custom interfaces so that they can use each other’s objects. ActiveX Automation: Additional well-known interfaces, allowing IDEs and interpreted languages to “browse” properties, methods and events “late” as well as “early” binding LabVIEW: required IProvideClassInfo in addition to standard skeleton created by MS Visual C++ ATL wizard

EpicsCAServer.IProcessVariable String name Double deadband String enum_string(Long index) String units, Long precision, Double low_warning, high_warning,... SetValue(Variant new_value), SetEnumValue(Long new_value), SetValueAndTime(Variant new_value, …) Event Changed(Variant value_received)

EpicsCAClient.IProcessVariable String name Long is_connected Variant Value String units,... Event NewValue(Long is_connected, Variant value)