Extending LabVIEW tothe Web using the
“LabSocket” System
John BergmansBergmans Mechatronics LLC
www.bergmans.com
National Instruments LabVIEW User Group MeetingSanta Ana, CANov 17 2010
1616 Bedford Lane, Unit A Phone: 714-474-8956Newport Beach, CA 92660 Fax: 949-646-1429
B e r g m a n s M e c h a t r o n i c s L L C
• Goal: monitor and control a LabVIEW application using a plug-in-free browser
• Potential Use-Cases
• Monitor and control a LabVIEW-controlled lab test from the desktop in office or on the road using a mobile device
• Monitor large-scale LabVIEW application by crews in the field – ie oil rig equipment monitoring
• For low-cost embedded systems – eliminate physical UI by using browser to interface to device
Bergmans Mechatronics LLC
Remote Access to LabVIEW Application
LabVIEW Application
Browser onLaptop,
Desktop orMobile DeviceDesktop /
Embedded Device
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
3. LabVIEW Web Services• Data transferred between application and client using the HTTP request-
response 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)
Bergmans Mechatronics LLC
Current Approaches
Bergmans Mechatronics LLC
Browser/Back-End Communications
Traditional interface between browser and web server
Desktop Server
1) Data Request
2) ReplyBack-End
ApplicationBrowser Web ServerSoftware
Bergmans Mechatronics LLC
Traditional interface between browser and web server
Desktop Server
1) Data Request
2) ReplyBack-End
ApplicationBrowser Web ServerSoftware
Continuous bi-directional communication between browser and server using WebSocket
Desktop Server
WebSocketServer
Back-EndApplication
WebSocket
Browser
Data to Back-End App
Data from Back-End App
Browser/Back-End Communications
Bergmans Mechatronics LLC
WebSocket
• Enables continuous, bidirectional communications between browser and server
• Originally part of new HTML5 specification, now a stand-alone spec (W3C – API, IETF – protocol)
• Simple browser and back-end implementation
• Substantially reduced header info size (request and response: ~900 bytes vs WebSocket: 4 bytes)
• Multiple organizations developing WebSocket servers
• Kaazing Corp., Mountain View, CA (www.kaazing.com) • Developer of commercial WebSocket gateway• Emulation for legacy and mobile browsers• Contributor to HTML5 spec• Disclosure: BML has referral agreement with Kaazing
Bergmans Mechatronics LLC
Sample BML Demo Applications using WebSocket
Interface to MySQLhttp://http://www.bergmans.com/lab/ws_sql.html
EarthControl – Multiplayer Facebook gamehttp://apps.facebook.com/earthcontrol
Bergmans Mechatronics LLC
“LabSocket” = LabVIEW + WebSocket
LabSocket system uses WebSockets to enable automatic replication of LabVIEW front panel in a browser without plug-ins
Data transfer via
WebSocket
Data transfer via
TCP/IP Socket
LabVIEW Application
WebSocketGateway
MessageBroker
LabSocketInterface
Browser onDesktop or
Mobile DeviceDesktop / Embedded Device
Server
Bergmans Mechatronics LLC
“LabSocket” = LabVIEW + WebSocket
LabSocket system uses WebSockets to enable automatic replication of LabVIEW front panel in a browser without plug-ins
Data transfer via
WebSocket
Data transfer via
TCP/IP Socket
LabVIEW Application
WebSocketGateway
MessageBroker
LabSocketInterface
Browser onDesktop or
Mobile DeviceDesktop / Embedded Device
LabSocket Interface
Startup- Establish TCP/IP socket connection to message broker- LabVIEW Front Panel Screen Scrape, send JavaScript code to web server
Steady-state- Transmit updates in LabVIEW front panel to browser- Update LabVIEW front panel based on events generated in browser
Server
Asynchronous MessagingProtocol
Data transfer via WebSocket
Data transfer via TCP/IP Socket
LabVIEW Application
CloudServer WebSocket
GatewayMessage Broker
LabSocketInterface
Bergmans Mechatronics LLC
LabSocket – Cloud Service Configuration
Browser onDesktop or
Mobile DeviceDesktop / Embedded Device
Bergmans Mechatronics LLC
Demohttp://www.bergmans.com/lab/LabSocket.html
LabVIEW Front Panel Chrome Browser
Bergmans Mechatronics LLC
Screenscrape SubVI
Label for one LED
Bergmans Mechatronics LLC
Future Work• Perform demo / proof-of-concept testing
• Complete cloud service• Allow LabVIEW developers to automatically set up applications• Subscription set up
• Improved GUI element support• Additional GUI elements• Additional GUI element properties (color, font type, etc)