The LabSocket system enables remote access to LabVIEW application using desktop or mobile web browsers without the need for browser plugins or a client-side run time engine. The system supports commonly used front panel elements, including Waveform Charts and Graphs, XY Graphs, MultiColumn ListBoxes and Tabs. The LabSocket-RT version of the system, with support for a limited set of front panel elements, enables browser access to LabVIEW Real-Time applications operating on platforms such at the CompactRIO.
A key technology used in the system is the HTML5 WebSocket interface which enables continuous, bi-directional communication with a web browser. This technology also contributes to the name of the system: "LabSocket = LabVIEW + WebSocket".
This presentation provides an overview of the system theory of operation, several existing applications for the system, and live demonstrations. Additional information about LabSocket is available at http://labsocket.com.
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Extending LabVIEW to the Web Using the LabSocket System
1. Bergmans Mechatronics LLC
Extending LabVIEW
to the Web Using the
LabSocket System
John Bergmans, CLD
Bergmans Mechatronics LLC
Bay Area LabVIEW User Group Meeting
Santa Clara, CA
Nov 19, 2013
1616 Bedford Lane, Unit A
Newport Beach, CA 92660
bergmans.com
@jbergmans
2. Bergmans Mechatronics LLC
Current Approaches to Remote LabVIEW Access
1.Native Client App
• Use TCP/IP sockets, LabVIEW shared variables, or .NET, to transmit data between
client and LabVIEW
• Requires custom client development and modifications to LabVIEW app
2.LabVIEW Remote Panels
• Requires LabVIEW Run-Time Engine (RTE) and browser plug-in on client platform
3.LabVIEW Web Services
• Data transferred between application and client using the HTTP requestresponse model (REpresentative State Transfer (REST) architecture)
• Requires development of client software using Web languages
eg. HTML/JavaScript
4.LabVIEW Web UI Builder (http://www.ni.com/uibuilder/)
• Build and run apps in browser using reduced-capabiliy LabVIEW
• Requires Silverlight plug-in (runs on Windows and Mac OS X)
5.Data Dashboard for LabVIEW
• Requires development of user interface and linking UI to block diagram
• Limited to iOS, Android, Windows 8 and Windows Phone devices
3. Bergmans Mechatronics LLC
LabSocket System
WebSocket
Interface
(Over TCP-IP)
Browser
“Target VI”
HTTP Server
Browser
Message Broker
Browser
LabSocket Server
Platform
TCP-IP
Socket
Interface
LabSocket
Support VIs
LabVIEW Host Platform
LabSocket Support VIs
Startup
- LabVIEW Front Panel screenscrape, send HTML and JavaScript code to HTTP server
Continous Operation
- Transmit updates of LabVIEW front panel to browser
- Update LabVIEW front panel when user generates events in browser
HTML5 WebSockets enable automatic replication of
LabVIEW front panel in a browser without plug-ins
4. Bergmans Mechatronics LLC
Other Configurations
WebSocket
Interface
(Over TCP-IP)
Browser
“Target VI”
HTTP Server
Browser
Message Broker
Browser
TCP-IP
Socket
Interface
LabSocket Server
Platform (VM)
LabSocket
Support VIs
LabVIEW Host Platform
PC on LAN
WebSocket
Interface
(Over TCP-IP)
Browser
“Target VI”
HTTP Server
Browser
Message Broker
Browser
TCP-IP
Socket
Interface
LabSocket Server
Platform (VM)
LabVIEW Host Platform
LabSocket
Support VIs
5. Bergmans Mechatronics LLC
Demo Configuration
Server in San Jose, CA
WebSocket
Interface
(Over TCP-IP)
Browser
“Target VI”
HTTP Server
Browser
Message Broker
Browser
TCP-IP
Socket
Interface
LabSocket Server
Platform
LabSocket
Support VIs
MacBook Pro
Amazon EC2 Instance
in Northern VA
10. Bergmans Mechatronics LLC
Moodle Integration
•
•
Option for integration with MOODLE Course
Management System - https://moodle.org/
application_type = moodle_integration places web
page in moodle file structure
LabVIEW Front Panel
LabSocket iframe in Moodle Lesson
11. Bergmans Mechatronics LLC
Remote Cascade Lab - KTH Royal Institute of Technology (Sweden)
• Objective: to perform tests on turbine airfoils
• LabVIEW software used to control test rig
• LabSocket system enables lab testing to be performed
remotely using browser
• Remote control of rig aided by use of web cam
• 70 students have operated rig remotely with LabSocket
system to date (60 in groups of 3-6 and 10 individually)
• Lab part of EU funded Virtual Campus Hub project
GUI Main View
Additional information at: http://www.energy.kth.se/proj/projects/Remote_labs/RL/RL_website/RCL/RCL.html
Live Traverse Results
12. Bergmans Mechatronics LLC
SportJury – First Commercial LabSocket Application
• Distributed, multi-user application for judging ski competitions
• Used successfully at 2011 Swiss Snow Happening in Saas-Fee, Switzerland
• Developed by Dynasys, D. Kölliker (Neuenegg, Switzerland) www.dynasys.ch
iPod touch browser screenshots
Swiss Snow Happening judges entering score
data on iPod touch devices
Data aggregated on central PC
13. Bergmans Mechatronics LLC
“Multi-Pack” Systems for TEMPUS Program
• TEMPUS: EU Program for modernization of higher education programs in Eastern
Europe, Central Asia, Western Balkans and Mediterranean http://eacea.ec.europa.eu/tempus/
• “Multi-Pack” systems (eg. “Twin-Pack”, “Five-Pack”, etc) to be delivered as complete
sets to TEMPUS partner university labs
• Integration with MOODLE Course Management System - https://moodle.org/
Lab 1
Lab 1 Data
browser
One or More Desktop or
Mobile Devices on public
Internet
(Lab 1)
Lab 2
Data
browser
MOODLE
Server PC
(XX.XX.XX.01)
LabSocket
Support VIs
HTTP Server
Target VI 1
LabVIEW
ELVIS
LabVIEW Host PC (192.168.1.101)
LabSocket
Server PC
(XX.XX.XX.02)
Lab 2
HTTP Server
and Message
Broker
LabSocket
Support VIs
Target VI 2
LabVIEW
One or More Desktop or
Mobile Devices on public
Internet
(Lab 2)
ELVIS
LabVIEW Host PC (192.168.1.102)
…
…
Lab 5
Lab 5 Data
browser
One or More Desktop or
Mobile Devices on public
Internet
(Lab 5)
LabSocket
Support VIs
Target VI n
LabVIEW
LabVIEW Host PC (192.168.1.105)
ELVIS
15. Bergmans Mechatronics LLC
LabSocket-RT
•
•
•
Special version for access to applications on
LabVIEW Real-Time platforms
Support for reduced set of Front Panel elements
Possible use case: RT application monitoring /
debugging
“Target VI”
LabSocket-RT
Converter
Step 2 LabSocket-RT Converter
inserts Block Diagram Interface
VIs into “Target VI” copy
“Target VI” Copy
Block Diagram
Interface VIs
Step 3 “Target VI” Copy
manually deployed to RT Host
LabVIEW Development PC
Step 1 LabSocket-RT Converter copies
HTML and JS to HTTP Server
“Target VI” Copy
Block Diagram
Interface VIs
WebSocket
Interface
(Over TCP-IP)
Browser
HTTP Server
Message Broker
VM or Physical Server
TCP-IP
Socket
Interface
LabSocket
Support VIs
LabVIEW RT Host
Platform
16. Bergmans Mechatronics LLC
LabSocket-RT
• Converter replaces front panel elements in block diagram with “Block
Diagram Interface VIs”
Block Diagram Interface VIs
Demo1.vi
Demo1_RT.vi
17. Bergmans Mechatronics LLC
LabSocket-RT
• LabSocket RT Converter modifies copy of Target VI block diagram
• Start Converter from Tools > LabSocket RT > LabSocket RT Converter …
• Target copy manually added to project, included in build, and deloyed to RT plaform
LabVIEW RT Project
LabSocket RT Converter
19. Bergmans Mechatronics LLC
Closing Notes
• Coming soon: LabSocket on LabVIEW Tools Network
• Possible framework for custom or more complex applications
• Consider: LabVIEW / LabSocket as dynamic web authoring system (NoFlo alternative)
• What other applications can be enabled by WebSockets?
20. Bergmans Mechatronics LLC
More Information and Downloadable Demos
labsocket.com
Contact
John Bergmans
Bergmans Mechatronics LLC
phone: 714-474-8956
e-mail: jbergmans@bergmans.com
web: bergmans.com
twitter: @jbergmans
22. Bergmans Mechatronics LLC
LabSocket Details
• Dynamically replicates LabVIEW front panel element values and properties such as
color, visibility, disabled state, etc.
• Compatible with desktop and mobile browsers that have native WebSocket support
(including Safari browser in iPhone, iPod touch and iPad). Option available for
browsers without WebSocket support.
• Two possible architectures
• Basic – one LabVIEW front panel replicated in one or more browsers
• Multi-Client – multiple unique copies of a LabVIEW VI each connect to one or
more browsers
• Two platforms for LabSocket Server
• Customer Server (LAN or cloud)
• LabSocket Cloud
• Additional information and downloadable evaluation system at www.labsocket.com