LabVIEW and the LHC.

Slides:



Advertisements
Similar presentations
Industrial Control Engineering ADE Rapid Application Development Environment based on LabVIEW.
Advertisements

LabVIEW Basic I with RADE introduction A. Raimondo (EN/ICE)
Industrial Control Engineering Industrial Controls in the Injectors: "You (will) know that they are here" Hervé Milcent On behalf of EN/ICE IEFC workshop.
Rapid Application Development Environment based on LabVIEW A. Raimondo (AB/CO) ATC/ABOC Days, January 2008.
CERN IT Department CH-1211 Genève 23 Switzerland t Next generation of virtual infrastructure with Hyper-V Michal Kwiatek, Juraj Sucik, Rafal.
Agenda Adaptation of existing open-source control systems from compact accelerators to large scale facilities.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Industrial Control Engineering PXI software support and accelerator integration.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Final Review of ITER PBS 45 CODAC – PART 1 – 14 th, 15 th and 16 th of January CadarachePage 1 FINAL DESIGN REVIEW OF ITER PBS 45 CODAC – PART 1.
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE  Questions? RADE Applications EN-ICE-MTA.
Industrial Control Engineering ADE Rapid Application Development Environment based on LabVIEW.
F Drag and Drop Controls Display and Builder (Synoptic Display) Timofei Bolshakov, Andrey Petrov Fermilab Accelerator Controls Department March 26, 2007.
Architecture & Cybersecurity – Module 3 ELO-100Identify the features of virtualization. (Figure 3) ELO-060Identify the different components of a cloud.
Connecting LabVIEW to EPICS network
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Industrial Control Engineering ADE Rapid Application Development Environment based on LabVIEW 1.
Sources, Targets and Interactions LabVIEW and the LHC.
Industrial Control Engineering ADE Rapid Application Development Environment.
Industrial Control Engineering Session 1 Introduction  What is RADE  Technology  Palette  Tools  Template  Combined Example  How to get RADE 
ADE Alessandro Raimondo (ICE/MTA) ICE workshop, 23 th April 2009.
Using COTS Hardware with EPICS Through LabVIEW – A Status Report EPICS Collaboration Meeting Fall 2011.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
LabVIEW Core I with RADE introduction EN/ICE/MTA.
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Software Development.
Progress Apama Fundamentals
Android Mobile Application Development
Graphical Data Engineering
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Let's talk about Linux and Virtualization in 'vLAMP'
Business System Development
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Essentials of UrbanCode Deploy v6.1 QQ147
Netscape Application Server
Shared Services with Spotfire
ADE today Adriaan Rijllart EN-ICE-MTA RADE workshop, Adriaan.
CV PVSS project architecture
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Software Reuse ©Ian Sommerville 2006.
ADE Rapid Application Development Environment based on LabVIEW
ADE today RADE workshop, Adriaan EN-ICE-MTA.
LCGAA nightlies infrastructure
Development of built-in diagnostics in the RADE framework (EN2746)
CMPE419 Mobile Application Development
LS BI Jóhann Einarsson Solution lead LS BI
DHCP, DNS, Client Connection, Assignment 1 1.3
X in [Integration, Delivery, Deployment]
CIS16 Application Development – Programming with Visual Basic
ADE Rapid Application Development Environment based on LabVIEW
Software models - Software Architecture Design Patterns
Analysis models and design models
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
CONTINUOUS INTEGRATION –WHY WE DO IT?
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
Automating Profitable Growth™
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
CMPE419 Mobile Application Development
DBOS DecisionBrain Optimization Server
CUSTOMER RETENTION RATE
Presentation transcript:

LabVIEW and the LHC

Rapid Application Development Environment ADE based on LabVIEW

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

EN-STI-ECE-MTA labview.support@cern.ch The MTA team Engineering Department (EN), Industrial Controls and Engineering Group (ICE), Measurements, Tests and Analysis section (MTA) labview.support@cern.ch

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

Why was RADE developed?

The Origin 10.000+ Magnets 1750 Circuits 13000+ Tests SM18 -> years of work started, asked to be done in a few months. Magnetic measurements, measuring and analyzing Post Mortem -> Same story. We started in the Magnetic measurement business, around LabVIEW 4-5 (some of the team members have been doing this since LabVIEW 1-2) We got the job of measuring voltages, currents, temperatures and all kind of values on superconducting magnes. To do so there where many things we had to cope with…. Which brings us to the next topic: 10.000+ Magnets 1750 Circuits 13000+ Tests

Outline MTA Why RADE? The challenge Coping with large applications RADE today Future The challenge.

The Challenge Installing on Pharlap or VXworks

The Challenge Obviously we also have some other “minor” things we would like to study, using these tools 

The Challenge Linux Windows Mac GPN TN DB CMW RBAC Timing Files PLC DAQ 1. On one side you have your every day high energy particle accelerator, the LHC and on the other side LabVIEW. 2. Both, Which we love. 3. But to be able to get from one to the other, there are several layers we have to cross. First we have all the different tools, databases, files and middleware that LabVIEW have to understand. 4. Then we have all the different platforms that LabVIEW have to run on, 5 and just to make our life easier, we have to cross several networks to make this happen. 6. This is all solved by creating what we call the RADE framework. Many developers (500+) Wide range in experience (basic to CLA,) Many complex and simple problems problems (show basic accelerator math, show “did you plug it in?”)

RAD(E) RAD(E) (rapid application development) is a concept that products can be developed faster and of higher quality through: Gathering requirements Prototyping Defer design improvements to the next release Less formality in reviews and communication Re-use of software components

Development Methods Extreme Programming methods Small increments Minimal planning Cross-functional team working on all aspects Demonstrated to the stakeholders frequently Minimizing risks Fast changes and adaptations. Agile methods small increments minimal planning cross-functional team working on all disciplines: planning, requirement analysis design Coding unit testing and acceptance testing. product or result is demonstrated to the stakeholders, minimizing risks fast changes and adaptations. ICALEPCS Paper ID MOMIB08

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

The Scope Application characteristics: Short development time Rapidly evolving Light and independent We started with these requirements Long-lived analysis systems

Initial Requirements Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment LabVIEW Integration with CERN infrastructures Applications that are developed rapidly, that can be easily maintained even though the implementation time is short. LabVIEW all ready give us most of these features, and by providing the connectivity, we had the basic tools we needed to get the job done.

RADE Palette The RADE palette Many CERN specific tools, but quite a few generic and general ones as well. The MTA palette gives us bot in house tools from MTA and OpenG.

LabVIEW user application RADE Core Technology LabVIEW user application LabVIEW C/C++ shared lib Server Server Server Java SDDS PLC MTA-lib RBAC RIO SQL TGM ALARM eLogBook

RADE Applications Some applications developped using RADE

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

Coping With Large Applications RADE Faze one gave complicated applications that have to be maintained. Taking us to the next step, taking care of the applications. Large applications, maintenance, multiple developer communication etc. Short lived applications becoming part of the infrastructure (totem, post mortem) Ten different ways of doing the same thing

Large Application Requirements Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment LabVIEW Integration with CERN infrastructures Source control and distribution Instance generation Templates and documentation Automated tests and builds Applications that are developed rapidly, that can be easily maintained even though the implementation time is short. Two aspects: Animate new req. After existing

Source Control The main source control system at CERN is Subversion Why not Tsvn or JKI svn plugin? -> cross platform integration prevents this Why don’t we use GIT, mercurial or other vendors?

Continuous Integration Several design patterns and concepts in the form of templates, adapted to RADE and CERN specific requirements Custom built LabVIEW Vis to cope with build system Why doesn’t the disable structure work when loading vis!!!?? Have to declare a dummy case/flag in a project and call the vis outside the project for it to work… Why can’t we tell labview to programmatically “save all vi’s in memory” and which are running??

Continuous Integration Linux Windows and Mac Open stack and VPN Several design patterns and concepts in the form of templates, adapted to RADE and CERN specific requirements

Continuous Integration

Continuous Integration

Continuous Integration

Continuous Integration RADE build time 40h Continuous Integration (CI) Manual Release time reduced from 1 week to 1 hour (and no interaction) 1h

Software repository

Logging and diagnostics (“ELK”)

Distribution Online Installer RADE homepage used to distribute the packages. One pr LV version and platform so that you don’t have to mass compile once installed. (lack of admin rights, time etc) Online Installer

Distribution RADE Installer Custom installer for those who only wants to install certain components. Will (probably) be expanded using maven and Nexus. RADE Installer

Distribution We also use the VI package manager in our CI system to download the latest releases of the packages, embed them in our release and build the distributable.

Dedicated Templates Several design patterns and concepts in the form of templates, adapted to RADE and CERN specific requirements

Project Generation Project generation to work around the drawbacks of templates which basically gives you a copy. The generator can support a

Typical design Create, Use & Destroy Class based, Polymorphic, Dynamic dispatch

Development help Design patterns and templates in RADE LabVIEW Guides http://j2eeps.cern.ch/wikis/display/EN/LabVIEW+Guides Code review: make maintainable, and performant The code on the right might not be perfect, but I would choose a producer consumer based state machine ANY TIME over the code on the left. Our overall goal is not to make everyone produce perfect code, but at least get the base level for all on a basic CORE 2 level, implementing similar code which uses common naming schemes, layout and syntax

Peer Programming

The missing link

Middleware integragion Clients RIO palette (Rade Input/Output) Get, Set and Subscribe User Application Operators CERN Middleware CMW Server Server Device/property/field definitions PXI on the accelerator complex

Distributed Architecture System I/O LabVIEW RT SLC Shared Memory NI Real-Time Linux NI Real-Time Hypervisor Hypervised system giving us the CERN GMT timing (nanosecond prec) on the PXI platform! Trigger CPUs, RAM I /O I /O CPUs, RAM

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

RADE today RADE has become adult LabVIEW has started getting out of the Lab Copes with the classical software development challenges Enables LabVIEW to be used for accelerator applications

The Framework libs Training Support Templates Configuration files Documentation LabVIEW DB Files JAPC libs PLC CMW Java

& Hardware Support PXI Hardware CompactRIO DAQ LabVIEW TestStand DIAdem and other NI products Software

Outline MTA Why RADE? The challenge The Scope Coping with large applications RADE today Future

Future Challenges Give me what I want and what we need! (on all platforms) You might argue that this has all ready been implemented (TSVN and JKI’s plugin) but they both rely on Tortoise SVN and windows! Similar to the previous request. But this is somewhat more acheivable trough the project provider framework.

Future Challenges We need a tool for m to n deployment, not a replication system!

Large system management How to manage a large installation? Management System Monitoring Security Re-install Updates

Watch these! The LHC by Brian Cox Extreme programming by Elisabeth Hendrickson What the agile manifesto left out by Brian Marick Practicing Continuous Integration by David Cramer The Actor Framework by Stephen Mercer ZMQ is the answer by Ian Barber Since we are all graphical programmers, I thought we might enjoy some of these videos, describing many of the concepts and ideas we use in RADE.

Questions

www.cern.ch/RADE