Sei sulla pagina 1di 13

Extending LabVIEW to

the Web using the


LabSocket System
J ohn Bergmans
Bergmans Mechatronics LLC
www.bergmans.com
National Instruments LabVIEW User Group Meeting
Santa Ana, CA
Nov 17 2010
1616 Bedford Lane, Unit A Phone: 714-474-8956
Newport Beach, CA 92660 Fax: 949-646-1429
B er g man s Mec h at 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 on
Laptop,
Desktop or
Mobile Device
Desktop /
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/J avaScript
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) Reply
Back-End
Application
Browser
Web Server
Software
Bergmans Mechatronics LLC
Traditional interface between browser and web server
Desktop
Server
1) Data Request
2) Reply
Back-End
Application
Browser
Web Server
Software
Continuous bi-directional communication between browser
and server using WebSocket
Desktop
Server
WebSocket
Server
Back-End
Application
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 MySQL
http://http://www.bergmans.com/lab/ws_sql.html
EarthControl Multiplayer Facebook game
http://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
WebSocket
Gateway
Message
Broker
LabSocket
Interface
Browser on
Desktop or
Mobile Device
Desktop /
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
WebSocket
Gateway
Message
Broker
LabSocket
Interface
Browser on
Desktop or
Mobile Device
Desktop /
Embedded Device
LabSocket Interface
Startup
- Establish TCP/IP socket connection to message broker
- LabVIEW Front Panel Screen Scrape, send J avaScript 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 Messaging
Protocol
Data transfer via
WebSocket
Data transfer via
TCP/IP Socket
LabVIEW
Application
Cloud
Server WebSocket
Gateway
Message Broker
LabSocket
Interface
Bergmans Mechatronics LLC
LabSocket Cloud Service Configuration
Browser on
Desktop or
Mobile Device
Desktop /
Embedded Device
Bergmans Mechatronics LLC
Demo
http://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)

Potrebbero piacerti anche