UEIPAC HMI
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Overview
The UEIPAC is an embedded Linux based system
without any graphical interface.
It is very good at network connectivity which makes it
possible to create remote graphical user interfaces
(also known as HMI Human-Machine-Interface).
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Client-Server
•
Server typically runs on UEIPAC.
•
•
One or more client can connect to a server
•
•
Example: server acquires data and publishes it
for remote display(s)
A HMI client written in C# can display data
acquired on UEIPAC in a chart
A client can subscribe to variable updates
•
The client gets notified only when variable
value change exceeds a given deadband
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
LibSharedData
• The shared data protocol is implemented in a
shared library
• Linux: libshareddata.so
• Windows: UeiSharedData.dll
• Both server and client(s) use the same shared
library to communicate.
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
UEIPAC
PC #1
Application #1
server
Application #2
client
LibSharedData
LibSharedData
PC #2
UEIPAC
LibSharedData
LibSharedData
Application
client
Application
client
Web browser
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
LibSharedData 1/2




Implements a simple message based
protocol (set/get variable) using JSON or
binary data representation
Local processes communicate over UNIX
sockets
Remote processes communicate over
TCP/IP sockets
Web browser communicate using Web
Sockets
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
LibSharedData 2/2
Variables are simply designated using a unique
name
Variable type can be a scalar or array of :





Int32
Int16
Int8
Double
Float
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Protocol 1/3
Client or server sends a request to
libshareddata






put_value <name>=<value>
put_value_json <name>=<value>
get_value <name>
get_value_json <name>
subscribe_value <name>
Etc..
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Protocol 2/3
Libshareddata implements a C API that hides
the protocol away
Bindings are available for C#, VB.NET, LabVIEW
and Python
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Protocol 3/3
Web browsers can directly connect to remote
processes using web sockets and a little bit of
javascript programming.
Data can be displayed using standard HTML
controls or more advanced HTML5 ones
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
UEIPAC server example
Create Server:
UeiSharedDataCreate("tcp://192.168.100.2:2345", &handle);
Acquire voltages:
DqAdv207Read(hd, devn, clsize, cl, NULL, fdata);
Publish voltages:
UeiSharedDataPut(handle, “voltages",
UeiSharedDataTypeDbl,
clsize, fdata);
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
Share Data Client
Shared Data client is an application that
provides a quick way to test a server.
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
C# client
Create a client object
UeiSharedDataClient client = new UeiSharedDataClient();
Open communication with server
client.Open("tcp://192.168.100.2:2345");
Get shared variable value
double[] voltages = client.GetDouble(“voltages", 16);
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
C# client
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
LabVIEW client
Call VIs to open communication with server and
read “voltages” variable values
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
LabVIEW client
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
HTML5 client
Web sockets are part of HTML5. Supported in
the following browsers:





Google Chrome (fastest javascript engine)
Firefox
Safari for MacOS and iOS
Android web browser
Internet Explorer 10
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
HTML5 client
There are many HTML5 UI library out there. Most
are business oriented, but are usable for
industrial applications
Jquery UI library provides a very easy way to
manipulate UI elements of a web page
UEIPAC comes with a default web page to view
shared data:
http://192.168.100.2:2345/shareddata.html
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
HTML5 client
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
SVG lab (still experimental)
A set of HTML5 UI controls for web based
scientific and industrial applications
Uses SVG (Scalable Vector Graphics) for
drawing
Use javascript for programming.



Chart
Slider
Maybe more...
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved
www.UEIDAQ.com
© 2010 UEI, Inc. All Rights Reserved