140 likes | 194 Views
http://www.tango-controls.org/. How to Integrate LabVIEW Applications into a Tango Control System. About this talk…. Aim overview of a work in progress m ain motivation: turning a LabVIEW application into a Tango device server Part 1 :
E N D
http://www.tango-controls.org/ How to Integrate LabVIEW Applications into a Tango Control System N. Leclercq – Synchrotron SOLEIL
About this talk… • Aim • overview of a work in progress • main motivation: turning a LabVIEW application into a Tango device server • Part 1 : • foundations & core components of the proposed solution • how to write a Tango device in LabVIEW: the laborious way • NicolasLeclercq - Synchrotron SOLEIL • Part 2 : • solution enhancement on LabVIEW side • how to write a Tango device in LabVIEW: the magical way • Birgit Ploetzeneder – ELI Beamlines
Problem & Solution • The problem • how to integrate subsystems delivered with a LabVIEW interface into a TANGO control system? • The current offer • the Tango binding for LabVIEW: a pure client platform :-( • the DataSocketapproach: very limitedsolution, works but doesn’t scale well • The solution • add server support to the existing Tango binding for LabVIEW • 100% native [no indirection, no intermediate protocol]
Client VIs Tango Bindings for LabVIEW [Vis library] Client API Tango Bindings for LabVIEW [C++ shared library] Client API Tango Core [C++ shared library]
Client VIs Tango Bindings for LabVIEW [Vis library] Server VIs Client API Tango Bindings for LabVIEW [C++ shared library] Server API Client API Tango Core [C++ shared library] Server API
LabVIEW Application w/ Tango interface Client VIs Tango Bindings for LabVIEW [Vis library] Server VIs Client API Tango Bindings for LabVIEW [C++ shared library] Server API Client API Tango Core [C++ shared library] Server API
The LabVIEW Server API [main VIs] • Starting up • Handling client requests • Shutting down
The LabVIEW Server API [main VIs] • CmdArgIn & ArgOut • Get/Set AttrValue • Misc.
Supported Tango features • So far, support for Tango 9 minus {Pipes, DevEncoded} • Pipes support to be studied [e.g. mapping? LV Cluster?] • Almost everything configured via POGO • e.g. default prop. value, polling, … • one exception: inheritance mechanism [to be implemented] • Everything taken in charge by the Tango kernel • e.g. [write,read]_attributes, events, …
Demo: let’s rewrite TangoTest in LabVIEW • Step 1 • 1.1 - open POGO, • 1.2 - define the device interface • 1.3 - the generate the XMI file (and nothing else) • Step 2 • register your device into the Tango database • Step 3 • specify the path to the XMI file [repository] • dedicated PathToPogoXmiFileclass property • Step 4 • implement the device in LabVIEW using the provided VIs • done!