Industrial Control Engineering ADE Rapid Application Development Environment based on LabVIEW
Industrial Control Engineering Outline MTA Why RADE? The challenge Coping with large applications RADE today Hands On session
Industrial Control Engineering EN-ICE-MTA
Industrial Control Engineering Why was RADE developed?
Industrial Control Engineering The Origin Magnets 1750 Circuits Tests
Industrial Control Engineering The Challenge
Industrial Control Engineering The Challenge Linux Windows Mac GPN TN DB CMW RBAC Timing Files PLC DAQ
Industrial Control Engineering x RAD (rapid application development) concept: - Develop products faster and in higher quality than with traditional methods Gathering requirements Prototyping Defer design improvements to the next release Less formality in reviews and communication Re-use of software components
Industrial Control Engineering Example Data Analysis Application: To analyse power aborts in LHC circuits Data from Logging DB Developed in 3 days
Industrial Control Engineering Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment Integration with CERN infrastructures LabVIEW Initial Requirements
Industrial Control Engineering Training Support LabVIEW TemplatesConfiguration filesDocumentation DB Files JAPC libs PLCCMWJava RADE Framework
Industrial Control Engineering RADE Applications EN-ICE-MTA LabVIEW user application LabVIEW C/C++ shared lib Java Server SDDS PLC MTA-lib RBACRIO SQL TGM ALARM eLogBook RADE Core Technology Java
Industrial Control Engineering RADE Applications EN-ICE-MTA RADE Palette
Industrial Control Engineering RADE Applications
Industrial Control Engineering RADE Applications
Industrial Control Engineering Outline MTA Why RADE? The challenge Coping with large applications RADE today Hands On session
Industrial Control Engineering Coping With Large Applications
Industrial Control Engineering Fast programming Rapid learning curve Drag and drop GUI development Wide range of analysis libraries Light/independent environment Integration with CERN infrastructures Source control and distribution Dedicated templates LabVIEW Large Application Requirements
Industrial Control Engineering Source Control
Industrial Control Engineering Distribution RADE Installer
Industrial Control Engineering Project Generator
Industrial Control Engineering Typical design Create, Use & Destroy
Industrial Control Engineering State Machine Template
Industrial Control Engineering Development help RADE design patterns and templates LabVIEW Guides: cern.ch/enice/RADE-Guides cern.ch/enice/RADE-Guides Code review: make LabVIEW code beautiful
Industrial Control Engineering EN-ICE-MTA & & Hardware Software PXI CompactRIO LabVIEW TestStand DIAdem and other NI products
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session
Industrial Control Engineering RADE today
Industrial Control Engineering Present domains of use… Accelerator Improvements Test facilities Expert tools
Industrial Control Engineering LabVIEW for CERN Developing applications for CERN Providing access to CERN infrastructure with RADE
Industrial Control Engineering RADE has become adult Copes with the classical software development challenges Enables LabVIEW to be used for accelerator applications Conclusion
Industrial Control Engineering LabVIEW & RADE Support cern.ch/labview cern.ch/rade Thank you for your attention !
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends SQL: CERN Database connections SDDS: Offline data from the front-ends RBAC: Role based access control MTAlib and OpenG toolkits
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends RBAC: Role based access control SQL: CERN Database connections MTAlib and OpenG toolkits
Industrial Control Engineering RADE Applications EN-ICE-MTA RADE Input/Output (RIO) Live data from the front-ends
Industrial Control Engineering What is RIO? CERN front-ends JAPC RADE Input/Output (RIO) Client applications
Industrial Control Engineering What is RIO? CERN front-ends JAPC RADE Input/Output (RIO) Client applications
Industrial Control Engineering JAPC or CMW? JAPC
Industrial Control Engineering RADE Applications EN-ICE-MTA RIO: Basics
Industrial Control Engineering Get data from front-end
Industrial Control Engineering Set data to front-end
Industrial Control Engineering Subscription to front-end data Put operation.vi in a loop Check for timeout and error
Industrial Control Engineering RIO data types Field nameField data type DDouble BoolBoolean C2D300String [ ] I642D300I64 [ ] [ ] C1D300String Japc2Lv_T2-abcopm02/Mixed: Field name in LV = field name of device Field type in LV = field type of device
Industrial Control Engineering Additional configurations of RIO operations paramDescription.viabortSubscription.vi setFilter.vi RBACNewToken.vi RBACTokenInfo.vi
Industrial Control Engineering Goal: Implement GET/SET/Subscribe operations for CERN device using RIO Toolkit. RADE Applications EN-ICE-MTA Exercise Get, Set and Subscribe data on a CERN device
Industrial Control Engineering Goal: Implement subscription to data from CERN device. RADE Applications EN-ICE-MTA45 Exercise Subscribe to data from device
Industrial Control Engineering The device “PR.GSQDN1/CCV” has the following fields: lambdaX: I32 data: Double msg: String Which of the following Data Type is not correct? Quiz 1 RADE Applications EN-ICE-MTA
Industrial Control Engineering The device “PR.BPM/Setting” has the following fields: bucketBBB: I32[ ] bucketSelect: I16 gain: I32 Which of the following Data Type is not correct? Quiz 2 RADE Applications EN-ICE-MTA
Industrial Control Engineering What is wrong with this VI? Quiz 3 RADE Applications EN-ICE-MTA
Industrial Control Engineering This VI is correct. Quiz 3 RADE Applications EN-ICE-MTA
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends SQL: CERN Database connections SDDS: Offline data from the front-ends RBAC: Role based access control MTAlib and OpenG toolkits
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends RBAC: Role based access control SQL: CERN Database connections MTAlib and OpenG toolkits
Industrial Control Engineering RBAC RADE Applications EN-ICE-MTA Role Based Access Control
Industrial Control Engineering RADE Applications EN-ICE-MTA RBAC Provides a level of security for accessing sensitive equipment The underlying architecture is developed by controls middleware (CMW) Both Windows and Linux platforms are supported Role Based Access Control
Industrial Control Engineering RADE Applications EN-ICE-MTA The token is stored by a numeric reference Valid until expired or destroyed Don’t store your password on the block diagram: Enter your password in a GUI at startup of your application RBAC Usage
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends RBAC: Role based access control SQL: CERN Database connections MTAlib and OpenG toolkits
Industrial Control Engineering RADE Applications EN-ICE-MTA SQL CERN Database Connections
Industrial Control Engineering RADE Applications EN-ICE-MTA Query to Database
Industrial Control Engineering LHC Logging and Measurement databases RADE Applications EN-ICE-MTA
Industrial Control Engineering RADE Applications EN-ICE-MTA LHC Logging and Measurement databases Extracts statistics for a signal data:
Industrial Control Engineering RADE Applications EN-ICE-MTA Search signal names
Industrial Control Engineering Goal: Extract signal data from LHC Logging DB using the SQL_MA.vi RADE Applications EN-ICE-MTA Exercise Extract data from LHC Logging DB
Industrial Control Engineering Which VI is used to execute SQL queries for CERN databases? SQL.vi Quiz 4 RADE Applications EN-ICE-MTA Where can we find it in the RADE palette? RADE -> SQL
Industrial Control Engineering How to extract signal data from LHC logging Database? SQL-MA.vi -> lhclog Quiz 5 RADE Applications EN-ICE-MTA
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends SQL: CERN Database connections SDDS: Offline data from the front-ends RBAC: Role based access control MTAlib and OpenG toolkits
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends Each SDDS data file consists of an ASCII header describing the names and types of the data stored in the file. The data follows after the header, and may be in ASCII or binary. SDDS Header SDDS Body
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends SDDS files are used to store Post Mortem and similar event data Our SDDS library has the capability to read such files (not write).
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends The palette consists of two parts, which are used independently. SDDS Express SDDS Advanced Express: Reads the SDDS file and displays it graphically. Advanced: Intended for applications that doesn’t display graphs. Less overhead.
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends SDDS Express SDDS_Open_Files: Reads the file path and outputs the header info and signal names. SDDS_Select:Used to select the signals. Default behaviour is a popup window. Can be omitted completely to use all available signals. SDDS_Read: Reads the signals selected and outputs the data. SDDS_Display:Formats the data so that it can be easily be displayed in a graph.
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Offline data from the front ends Manual signal selection Signals can be selected without user interaction. Wire signals as a constant and disable the popup dialogue. One signal type can be displayed per SDDS_Display VI.
Industrial Control Engineering SDDS RADE Applications EN-ICE-MTA Post Mortem Browser PM Server Logging DB LSA DB LHC-Layout DB
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends SQL: CERN Database connections SDDS: Offline data from the front-ends RBAC: Role based access control MTAlib and OpenG toolkits
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends SQL: CERN Database connections SDDS: Offline data from the front-ends RBAC: Role based access control MTAlib and OpenG toolkits
Industrial Control Engineering Outline RADE Applications EN-ICE-MTA MTA Why RADE? The challenge Coping with large applications RADE today Hands On session RIO: Live data from the front-ends RBAC: Role based access control SQL: CERN Database connections MTAlib and OpenG toolkits
Industrial Control Engineering MTA-lib RADE Applications EN-ICE-MTA
Industrial Control Engineering RADE Applications EN-ICE-MTA Non-NI LabVIEW Communities: – Forum and wiki – Forum and file repository You’d like to have something more in the MTA palette? -> Let us know OpenG community Non-NI LabVIEW community Several green “time-saving” VIs Many polymorphic VIs → build executable to improve performance
Industrial Control Engineering MTA-lib: Data Palette RADE Applications EN-ICE-MTA Variant: A container that can contain different data types. Great for generic programming, but can add overhead.
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Variants containing generic data.
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Variants with run-time types. What about arrays? Retrieves the array type.
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Variants with run-time types. What about clusters? Notice the variant to data usage.
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Variants with run-time types. Live demo of the VI. Quick look at the application control palette.
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array to cluster The one shipped with LabVIEW “You have connected two clusters of different content.”
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array to cluster The cluster size needs to be adjusted Interesting OpenG VI
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array to cluster Array size can now vary without manual intervention. Displaying it as a cluster. What happens if the array size doesn’t match the cluster? A runtime error. Conclusion: Use a typedef cluster!
Industrial Control Engineering MTA-lib: Array Palette RADE Applications EN-ICE-MTA
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array manipulation Remove Duplicates From 1D Array Filter 1D Array
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array manipulation Delete elements from array (polymorphic) 1D 2D
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array manipulation Index array elements (polymorphic) 1D 2D
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Array manipulation Search 1D array Sort array
Industrial Control Engineering MTA-lib: String Palette RADE Applications EN-ICE-MTA
Industrial Control Engineering RADE Applications EN-ICE-MTA Multi-line string to array OpenG Use case: String array constant 1D String array to string - Basically array to spreadsheet Combining string and array tools.
Industrial Control Engineering MTA-lib: Time Palette RADE Applications EN-ICE-MTA
Industrial Control Engineering RADE Applications EN-ICE-MTA OpenG Use case: Wait/delay OpenG Additional functionalities: Wait on Error? Abort (optional) Also “Wait Until Next ms Multiple” LabVIEW
Industrial Control Engineering RADE Applications EN-ICE-MTA The right size front panel without effort ! Fit front panel to largest decoration MTA-lib: Application Control
Industrial Control Engineering
Industrial Control Engineering Questions
Industrial Control Engineering What is RADE? RADE Applications EN-ICE-MTA97 JAPC Databases
Industrial Control Engineering Distributed Architecture System I/O