www.ni.com Open in urlscan Pro
2606:4700::6810:220f  Public Scan

URL: https://www.ni.com/en/solutions/industrial-machinery/smart-machine-control/a-practical-guide-for-connecting-labview...
Submission: On October 15 via manual from US — Scanned from DE

Form analysis 3 forms found in the DOM

Name: autoComplete-global //www.ni.com/en-us/search.html

<form id="wrapper-search-form" name="autoComplete-global" type="GET" action="//www.ni.com/en-us/search.html">
  <div class="autoCompleteItem-global">
    <input type="text" name="q" placeholder="Search for things like download LabVIEW" class="niAutocompleteInput ui-autocomplete-input" data-search-type="globalSearch" lang="de-DE" autocomplete="off">
    <button type="submit" class="search-submit">
      <svg viewBox="0 0 26.33 26.84">
        <circle cx="11.15" cy="11.15" r="10"></circle>
        <path d="M21.76,23.09l7.07,7.07" transform="translate(-3.64 -4.47)"></path>
      </svg>
    </button>
    <button type="reset" class="close">
      <i class="fal fa-times" aria-hidden="true"></i>
    </button>
    <ul class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content" id="ui-id-1" tabindex="0" style="display: none;"></ul>
  </div>
</form>

<form>
  <div class="questions" data-offset-width="316">
    <p>What do you need our team of experts to assist you with?</p>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="get-quote">Request a quote</a>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="find-product">Find the right product</a>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="place-order">Place an order</a>
    <a href="//www.ni.com/en-us/support.html" class="outlineBtn block supportNavigator">Get support on a product</a>
  </div>
  <div id="contactSalesform" data-offset-width="572" class="hidden">
    <div class="h3">How can we help?</div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <textarea class="form-control" id="description" name="description" rows="5" placeholder="I am interested in ..."></textarea>
        </div>
      </div>
    </div>
    <div class="h3">Please enter your information below and we'll be intouch soon.</div>
    <div class="row">
      <div class="col-xs-6">
        <div class="form-group">
          <input type="text" class="form-control" id="first_name" name="first_name" maxlength="40" placeholder="First name" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
      <div class="col-xs-6">
        <div class="form-group">
          <input type="text" class="form-control" id="last_name" name="last_name" maxlength="80" placeholder="Last name" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-6">
        <div class="form-group">
          <input type="text" class="form-control" id="company" maxlength="40" name="company" placeholder="Company name">
        </div>
      </div>
      <div class="col-xs-6">
        <div class="form-group">
          <input type="email" class="form-control" id="email" maxlength="80" name="email" placeholder="Business email" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-6">
        <div class="form-group">
          <input type="text" class="form-control" id="phone" name="phone" placeholder="Phone number" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
      <div class="col-xs-6">
        <div class="form-group">
          <select class="form-control countrList" id="country" maxlength="40" name="country">
            <option selected="" disabled="" value="">Country</option>
          </select>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-6">
        <div class="h4">Preferred communication method</div>
        <div class="form-group horizontal-radio-buttons">
          <span><input type="radio" name="preferred-method" value="email">Email</span>
          <span><input type="radio" name="preferred-method" value="phone call">Phone call</span>
        </div>
      </div>
      <div class="col-xs-6">
        <button type="button" name="send" value="send" class="primaryBtn block slideNavigator formSubmitter" data-popover-nextslide="2">Send</button>
      </div>
      <div class="col-xs-12">
        <hr>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-6">
        <a href="#" class="slideNavigator prevSlide" data-popover-nextslide="0">
                        <i class="fas fa-chevron-left" aria-hidden="true"></i>
                    </a>
      </div>
      <div class="col-xs-6 text-right phone">
        <div class="ni-contact-sales-number"></div>
      </div>
    </div>
  </div>
  <div class="thanksSlide hidden text-center" data-offset-width="572">
    <p class="thanks">Thanks!</p>
    <p class="thanksMsg">We'll be in touch soon!</p>
    <img src="//www.ni.com/content/dam/web/scene7/images/logo_2020_white.svg" alt="" loading="lazy">
  </div>
  <input type="hidden" name="oid" value="">
  <input type="hidden" name="retURL" value="">
  <input type="hidden" name="route" value="">
  <input type="hidden" name="action" value="">
  <input type="hidden" name="Privacy_Policy_Acceptance_Reason__c" value="Customer entered contact data and requested a callback on www.ni.com/contact-sales form.">
  <input type="hidden" name="lead_source" value="ni.com - Sales Form">
  <input type="hidden" name="recordType" value="012i0000000xsPz">
  <input type="hidden" name="00Ni000000FoVoC" value="Request a Callback">
  <input type="hidden" name="00Ni000000FoVoB" value="cREQ Date">
</form>

<form>
  <div class="questions" data-offset-width="316">
    <p>What do you need our team of experts to assist you with?</p>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="get-quote">Request a quote</a>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="find-product">Find the right product</a>
    <a href="#" class="outlineBtn block slideNavigator" data-popover-nextslide="1" data-popover-route="place-order">Place an order</a>
    <a href="//www.ni.com/en-us/support.html" class="outlineBtn block supportNavigator">Get support on a product</a>
  </div>
  <div class="mobileForm1 hidden" data-offset-width="316">
    <div class="h3">How can we help?</div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <textarea class="form-control" id="description" name="description" rows="8" placeholder="I am interested in ..."></textarea>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-8">
        <a href="#" class="slideNavigator prevSlide pull-left" data-popover-nextslide="0">
                        <i class="fas fa-chevron-left" aria-hidden="true"></i>
                    </a>
        <div class="text-center phone">
          <div class="ni-contact-sales-number"></div>
        </div>
      </div>
      <div class="col-xs-4 text-right">
        <a href="#" class="primaryBtn block slideNavigator" data-popover-nextslide="2">Next</a>
      </div>
    </div>
  </div>
  <div class="mobileForm2 hidden" data-offset-width="316">
    <div class="h3">Please enter your information below and we'll be intouch soon.</div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <input type="text" class="form-control" id="first_name" name="first_name" maxlength="40" placeholder="First name" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <input type="text" class="form-control" id="last_name" name="last_name" maxlength="80" placeholder="Last name" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <input type="text" class="form-control" id="company" maxlength="40" name="company" placeholder="Company name">
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <input type="email" class="form-control" id="email" maxlength="80" name="email" placeholder="Business email" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <input type="text" class="form-control" id="phone" name="phone" placeholder="Phone number" data-validation-required="" required="">
          <div class="ni-validation-messages">
            <div data-message="required">This field is required</div>
            <span class="fa fa-times-circle" aria-hidden="true"></span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div class="form-group">
          <select class="form-control countrList" id="country" maxlength="40" name="country">
            <option selected="" disabled="" value="">Country</option>
          </select>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-9">
        <div class="form-group">
          <div class="h4">Preferred communication method</div>
          <div class="form-group horizontal-radio-buttons">
            <span><input type="radio" name="preferred-method" value="email">Email</span>
            <span><input type="radio" name="preferred-method" value="phone call">Phone call</span>
          </div>
        </div>
      </div>
    </div>
    <div class="row">
      <div class="col-xs-2">
        <a href="#" class="slideNavigator prevSlide" data-popover-nextslide="1">
                        <i class="fas fa-chevron-left" aria-hidden="true"></i>
                    </a>
      </div>
      <div class="col-xs-6">
        <div class="phone">
          <div class="ni-contact-sales-number"></div>
        </div>
      </div>
      <div class="col-xs-4 text-right">
        <button type="button" name="send" value="send" class="primaryBtn block slideNavigator formSubmitter" data-popover-nextslide="3">Send</button>
      </div>
    </div>
  </div>
  <div class="thanksSlide hidden text-center" data-offset-width="316">
    <p class="thanks">Thanks!</p>
    <p class="thanksMsg">We'll be in touch soon!</p>
    <img src="//www.ni.com/content/dam/web/scene7/images/logo_2020_white.svg" alt="" loading="lazy">
  </div>
  <input type="hidden" name="oid" value="">
  <input type="hidden" name="action" value="">
  <input type="hidden" name="route" value="">
  <input type="hidden" name="description_prefix" value="Customer requesting help via Contact Sales Team form on ni.com.">
  <input type="hidden" name="Privacy_Policy_Acceptance_Reason__c" value="Customer entered contact data and requested a callback on www.ni.com/contact-sales form.">
  <input type="hidden" name="lead_source" value="ni.com - Sales Form">
  <input type="hidden" name="recordType" value="012i0000000xsPz">
  <input type="hidden" name="00Ni000000FoVoC" value="Request a Callback">
  <input type="hidden" name="00Ni000000FoVoB" value="cREQ Date">
</form>

Text Content

 * Return to Home Page
   
 * Toggle navigation
 * 
   Solutions
   Industries
    * Academic and Research
    * Aerospace, Defense, and Government
    * Electronics
    * Energy
    * Industrial Machinery
    * Life Sciences
    * Semiconductor
    * Transportation
   
   Product Life Cycles
    * Design and Prototype
    * Validation
    * Production
   
   Focus Areas
    * 5G and 6G Technology
    * Electric Vehicle Test
    * Lifecycle Analytics
    * Radar and Electronic Warfare
    * Space Launch and Exploration
    * Validation Lab Innovations
   
   See our approach to solutions
   Get a Helping Hand
   From troubleshooting technical issues and product recommendations, to quotes
   and orders, we’re here to help.
   Contact Us
   Products
   Software
   View All Software
    * LabVIEW
    * TestStand
    * FlexLogger
    * SystemLink
    * DIAdem
    * VeriStand
    * OptimalPlus GO
   
   Software Bundles
    * Test Workflow
    * HIL and Real-Time Software Suite
    * Circuit Design Suite
   
   SERVICES
   View All Services
    * Repair Services
    * Calibration
    * NI Services Program
    * Purchase Training
   
   HARDWARE
   View All Hardware
   Data Acquisition and Control
    * Learn About DAQ
    * CompactDAQ Bundles
    * Multifunction I/O
    * Voltage
    * Digital I/O
    * Temperature
    * Sound and Vibration
    * Current
    * Strain, Pressure, and Force
    * CompactDAQ Chassis
   
    * Electronic Test and Instrumentation
    * PXI Instrument Bundles
    * GPIB, Serial, and Ethernet
    * Switches
    * Oscilloscopes
    * Digital Multimeters
    * Source Measurement Units and LCR Meters
   
   Wireless Design and Test
    * Software Defined Radios
    * RF Signal Generators
    * Vector Signal Transceivers
   
   Accessories
    * Power Accessories
    * Connectors
    * Cables
    * Sensors
   
   FEATURES
    * Entry-Level DAQ
   
   RESOURCES
    * Shopping Resources
    * Advisors
    * Distributors
   
   See all products
   PC-Based Systems
   
   Benchtop Measurement and Test
   
   CompactRIO
   
   Distributed Measurement and Control
   
   PXI
   
   High-Performance Test
   
   Software
   
   Systems Engineering Software
   
   Perspectives
   Perspectives
   
   Perspectives showcases how NI sees what’s next in the world of test and
   technology.
   
   View all articles
   What Does a Good Product Data Strategy Look Like?
   Welcome to the product revolution, an era defined by the proliferation of
   smart produ...
   Read our featured article
   Support
   Resources
   View All Support Resources
    * Software Downloads
    * Register and Activate
    * Product Documentation
    * Release Notes
    * Online Training
    * KnowledgeBase
    * Code Examples
   
   Request Support
   
   You can request repair, RMA, schedule calibration, or get technical support.
   A valid service agreement may be required.
   
   Open a service request
   Popular Software Downloads
   See all Software Product Downloads
   LabVIEW
   Multisim
   Academic Volume License
   Popular Driver Downloads
   See all Driver Software Downloads
    * NI-DAQmx
      
      Provides support for NI data acquisition and signal conditioning devices. 
   
    * NI-VISA
      
      Provides support for Ethernet, GPIB, serial, USB, and other types of
      instruments. 
   
    * NI-488.2
      
      Provides support for NI GPIB controllers and NI embedded controllers with
      GPIB ports. 
   
   Community About Contact Us My Account
   Mein Konto
   
   --------------------------------------------------------------------------------
   
   Anmelden
   Ein Konto erstellen
   Account Search
   
 * Cart
    * Solutions
      * Back
      * Industries
      * Academic and Research
      * Aerospace, Defense, and Government
      * Electronics
      * Energy
      * Industrial Machinery
      * Life Sciences
      * Semiconductor
      * Transportation
      * Product Life Cycles
      * Design and Prototype
      * Validation
      * Production
      * Focus Areas
      * 5G and 6G Technology
      * Electric Vehicle Test
      * Lifecycle Analytics
      * Radar and Electronic Warfare
      * Space Launch and Exploration
      * Validation Lab Innovations
      * See our approach to solutions
    * Products
      * Back
      * Software
      * View All Software
      * LabVIEW
      * TestStand
      * FlexLogger
      * SystemLink
      * DIAdem
      * VeriStand
      * OptimalPlus GO
      * Software Bundles
      * Test Workflow
      * HIL and Real-Time Software Suite
      * Circuit Design Suite
      * SERVICES
      * View All Services
      * Repair Services
      * Calibration
      * NI Services Program
      * Purchase Training
      * HARDWARE
      * View All Hardware
      * Data Acquisition and Control
      * Learn About DAQ
      * CompactDAQ Bundles
      * Multifunction I/O
      * Voltage
      * Digital I/O
      * Temperature
      * Sound and Vibration
      * Current
      * Strain, Pressure, and Force
      * CompactDAQ Chassis
      * Electronic Test and Instrumentation
      * PXI Instrument Bundles
      * GPIB, Serial, and Ethernet
      * Switches
      * Oscilloscopes
      * Digital Multimeters
      * Source Measurement Units and LCR Meters
      * Wireless Design and Test
      * Software Defined Radios
      * RF Signal Generators
      * Vector Signal Transceivers
      * Accessories
      * Power Accessories
      * Connectors
      * Cables
      * Sensors
      * FEATURES
      * Entry-Level DAQ
      * RESOURCES
      * Shopping Resources
      * Advisors
      * Distributors
      * See all products
    * Perspectives
    * Support
      * Back
      * Resources
      * View All Support Resources
      * Software Downloads
      * Register and Activate
      * Product Documentation
      * Release Notes
      * Online Training
      * KnowledgeBase
      * Code Examples
      * Popular Software Downloads
      * See all Software Product Downloads
      * LabVIEW
      * Multisim
      * Academic Volume License
      * Popular Driver Downloads
      * See all Driver Software Downloads
      * NI-DAQmx
      * NI-VISA
      * NI-488.2
      * Request Support
      * You can request repair, RMA, schedule calibration, or get technical
        support. A valid service agreement may be required. Open a service
        request
    * 
    * Community
    * About
    * Contact Us
   
    * --------------------------------------------------------------------------------
      
      Mein Konto
      
      --------------------------------------------------------------------------------
   
    * Anmelden
    * Ein Konto erstellen



Home Solutions Industrial Machinery Solutions Smart Machine Control A Practical
Guide for Connecting LabVIEW to the Industrial IoT


A PRACTICAL GUIDE FOR CONNECTING LABVIEW TO THE INDUSTRIAL IOT

Updated May 22, 2023
 * 
 * 




OVERVIEW

In this white paper, learn about the three most prevalent communication
protocols to connect to cloud-based development platforms for Internet of Things
(IoT) applications. You can also find information on some of the most common IoT
cloud development platforms such as Amazon Web Services, IBM Bluemix, PTC
ThingWorx, and Microsoft Azure. Plus, learn how to connect an NI embedded
system, such as CompactRIO, to these cloud platforms through the LabVIEW open
graphical development environment.


CONTENTS

 * The IoT Will Change the World
 * MQTT
 * AMQP
 * DDS
 * Amazon AWS IoT
 * IBM Watson IoT for Bluemix
 * PTC ThingWorx
 * Microsoft Azure IoT Suite


THE IOT WILL CHANGE THE WORLD

The world economy will greatly change in the next decade as new Internet-enabled
applications are rolled out. Some of these applications are likely to be
disruptive and innovative as well as have a large economic impact. This will
affect many industries and sectors, as already seen in consumer sectors like
hotels (Airbnb) and taxis (Uber).

This trend is also noticeable in the industry, for example, Germany’s Industry
4.0 initiative. Within Industry 4.0 or the Industrial IoT (IIoT), the focus is
on integration and better use of existing technologies. In this sense, industry,
machines, products, and people are all digitally connected. Manufacturers are
mass producing bespoke products in quantities of one. Intelligent software in
the cloud connects enterprise IT systems with the operational world, machines,
devices, and sensors to control and optimize production flow.



Figure 1 – Common Architecture of the Industrial IoT: Intelligent Edge Nodes
Connect Sensors, Actuators and Devices to IT Systems

Because of the decrease in cost of connectivity, processing devices and sensors
adoption of IIoT has grown tremendously. Sensor data can be captured and
preprocessed close to the machines by a smart edge device such as a CompactRIO
or a PXI automated test system. The edge device can send the data in real time
to the virtual world (IT cloud platform) where it can be stored, monitored, and
analyzed or trigger an action.

The value of the IIoT is not in the connectivity of the devices, but in what a
company unlocks from the stream of data the smart devices supply. Cloud
computing platforms and their services help provide this insight.

Many significant challenges need to be taken into account when implementing an
IoT solution. Challenges such as standardization, interoperability, Big Analog
Data™ handling, security, and privacy. It is important to be aware of these
challenges and give special care to security. Security is a crucial component
for any IoT application. IIoT devices should enforce a strong security policy
and be updated regularly with the latest security patches. To learn more about
best practices for security on CompactRIO and receive the latest security
announcements from NI, visit ni.com/support/security. All cloud computing
platforms securely send and receive data, use strong authentication and
authorization methods, and use encryption. The majority also have audit
capabilities.


CLOUD COMPUTING

Cloud computing refers to a flexible way of delivering hardware, software, or
data resources via the network on a user’s request. This is opposite to the use
of running a software application on a local computer.



Figure 2 - Overview of Cloud Computing Elements (image source: Sam Johnston
https://commons.wikimedia.org/wiki/File:Cloud_computing.svg)

 

The table below shows three service levels of cloud computing that are commonly
encountered.

SaaS

Software as a Service

Provides a full business service. The service provider runs and manages the
complete platform. Examples: Gmail, Salesforce.com

PaaS

Platform as a Service

Provides a platform. You need to build and deploy your own cloud application,
leveraging the run time and services the vendor provides. Examples: IBM Bluemix,
Microsoft Azure, AWS IoT

IaaS

Infrastructure as a Service

Provides the basic building blocks such as server hardware, storage, and network
capabilities. You may need to install the OS and applications. Examples: Amazon
EC2 (a virtual machine that Amazon provides to you), IBM SoftLayer

 

Clouds can be deployed as public—all services run in a secure environment hosted
in the cloud, where servers may be shared with others—or private, which is
available only to the user’s organization and may exist on or off premises. In
addition, clouds can be deployed as hybrids, where parts are on premises and
other services are in the cloud.

 


IOT APPLICATION PROTOCOLS

Communication protocols are responsible for the network connectivity to the
server. Protocols like Wi-Fi, Ethernet, cellular, and LoRaWAN are all
communication protocols that provide this level of connectivity. Application
protocols sit on top of them to communicate application-specific messages.

Multiple standards handle the communication between devices and the cloud. As
application requirements differ, specific IoT protocols have been developed and
therefore the confusion is understandable. Protocols may even have multiple
implementations and IoT platforms may have proprietary IoT solutions. To provide
a universal solution, devices, applications, and platforms need to be
interoperable. NI embedded systems provide an excellent solution by being open
and flexible. This success is achieved through the NI Linux Real-Time OS,
support for LabVIEW graphical and C/C++ programming environments, as well as
several Linux packages available through the vibrant ecosystem.

At a high level, there are three main use cases for the application protocols:
device to device (D2D or M2M), device to server (D2S), and server to server
(S2S) communication. IoT application protocols have different levels of
real-time behavior and other characteristics. The table below provides an
overview.

COMMON APPLICATION PROTOCOLS FOR IOT CONNECTIVITY

 

HTTP/HTTPS

WebSocket

DDS

MQTT

AMQP

Description

Transmit data over Internet from applications, websites, and so on

Transmit data over Internet from applications, websites, and so on

Communication bus to connect intelligent machines

Lightweight protocol for collecting data and publishing it to servers and
subscribers

Queue system to reliably transfer messages between applications and processes
(servers)

Typical Use Case

Web

Web

D2D

D2S

S2S, (D2S)

Real-Time Behavior

No

No

Yes, us–ms range

No, ms–s range

No, seconds range

Messaging

Request/Response

Request/Response

Databus

Publish/Subscribe

Publish/Subscribe

Transport

TCP

TCP

TCP, UDP, shared memory, and so on

TCP

TCP

Security

Yes: HTTPS (SSL or TLS)

Yes: wss:// (SSL/TLS)

Yes

Possible: SSL or TLS

Yes: TLS or SASL (Simple authentication and Security layer)

LabVIEW Support

Yes, native

Yes, via VI Package Manager (MediaMongrels)

Yes, via VI Package Manager (RTI)

Yes, Implementations on VI Package Manager, LabVIEW Tools Network, and GitHub

Implementations on VI Package Manager (LabbitMQ) and GitHub

Quality of Service

No

No

Yes, over 20 levels

Yes, 3 levels

Yes

 

The next section describes the most common protocols, MQTT, AMQP and DDS, in
further detail.

 

Back to top


MQTT

Message Queueing Telemetry Transport (MQTT) is an IoT connectivity protocol.
MQTT is used in applications with thousands of sensors, including power usage
monitoring and oil pipeline monitoring. MQTT is efficient in terms of bandwidth,
battery, and resources. MQTT uses a publish/subscribe model. The IoT devices
publish data to an MQTT broker over TCP as a topic. An authorized client can
subscribe to any topic and receive the value from the broker as they arrive from
the publisher. The publisher (device) does not need to know about any of the
subscribers, which makes the management easier at the device level. The broker
can support multiple concurrent connections from many devices. A topic is a
simple string that can have hierarchical levels and supports also wildcards. An
example of a topic is GothamCityPlant/Building1/Pump7/Power. The message data is
transmitted in JSON format and may be specific to the cloud platforms’ IoT
service.

 



Figure 3 – Edge Devices Sent MQTT Messages over the Internet to a Central Broker
Which Distributes the Messages to Authorized Subscribers

MQTT supports three quality-of-service levels:

 * QoS 0—At most once
 * QoS 1—At least once
 * QoS 2—Exactly once

 

MQTT can be implemented using standard HTTP calls within LabVIEW. NI Partner
Program and other third-party implementations exist on the NI Tools Network and
GitHub.

To debug MQTT communications, a MQTT client can be installed on a local
computer. A popular free MQTT client is MQTTfx, available at mqttfx.org/.

Several MQTT brokers to test communication are on the Internet. One of the most
popular is mosquitto. To test the communication, you can publish topics to
test.mosquitto.org. The mosquitto broker is open source and can also be used
in-house for sandbox testing or production use of MQTT communication.

Back to top


AMQP

Advanced Message Queuing Protocol (AMQP) is an open message protocol that can
send transactional messages between servers and from devices to servers and vice
versa. Advantages of AMQP are the reliable communication (data is received
reliably exactly once at the receiving end) and interoperability. AMQP uses a
broker to receive data from a client. The client (or publisher) then publishes
the message to the broker, where it is processed and routed to a queue. From the
queue, the message is sent to any client who has subscribed to this data. AMQP
focuses on tracking all messages and ensuring each is delivered as intended,
even if a device is temporarily offline. Devices that generate loads of data can
stream to AMQP servers, which is then consumed by receivers to perform
monitoring and analytics. An example application for AMQP is the analysis of
automotive driving behavior at the data center. Some cloud development platforms
support device connectivity to AMQP or AMQP over WebSocket. Popular open-source
AMQP brokers you may come across are RabbitMQ, ActiveMQ, and Kafka.

LabbitMQ is an AMQP library for LabVIEW that can be installed from the VI
Package manager. An open-source AMQP client implementation in LabVIEW is
available on GitHub.

 

Back to top


DDS

The Data Distribution Service (DDS) main use case is to distribute data directly
to other devices, although it can also distribute data to enterprise systems and
mobile devices. Applications are found in wind farms, automotive test, asset
tracking, and defense and big physics. Devices often need each other’s data in
real time measured in milliseconds. All of this needs to happen reliably and
usually with large data streams. DDS offers a detailed quality of service
control, with configurable reliability, redundancy, and filtering, and selects
exactly which data goes where. To do so, DDS uses a device-to-device bus
communication, which can deliver the data to thousands of devices.

LabVIEW support for DDS can be installed through the VI Package Manager. RTI
provides an excellent tutorial on the use of DDS with LabVIEW.


CLOUD DEVELOPMENT PLATFORMS

Disclaimer: National Instruments does not endorse any cloud platforms. The
intent is to give a brief introduction to the major platforms. You should make a
thorough investigation before deciding which platform is most suitable for your
application.

Back to top


AMAZON AWS IOT

Amazon Web Services (AWS) offers IT infrastructure as cloud computing, database
storage, content delivery, and more. AWS IoT is a managed cloud platform that
enables devices to connect and interact with other AWS cloud applications and
services through a rules engine. AWS IoT also provides a device gateway and
device shadows. The device gateway is the service that manages the device
connectivity to AWS IoT and supports MQTT, WebSocket, and HTTP protocols. Device
shadows can create a virtual device that retain the device’s latest state, even
when it is offline. Applications within AWS can publish to the virtual device
and when the device is back online, the state is synchronized. AWS provides
open-source IoT SDKs to help connecting hardware devices with AWS IoT.

AWS uses an IoT rules engine that applies an SQL-like syntax to select data
received from a device and perform actions. The rules engine makes it possible
to build IoT applications that can gather, analyze, process, and act on the data
received from the device. The rules engine can route the message to AWS
endpoints like AWS Lambda (a compute service to run your uploaded code), Amazon
Kinesis (to process a large stream of data in real time), Amazon S3 (simple
storage service), Amazon Machine Learning, Amazon DynamoDB, and many more.

NI provides a free toolkit through the LabVIEW Tools Network to connect your
LabVIEW applications to AWS S3, SNS, SQS, and IoT services directly to enable
cloud storage, push notifications, and more.

 

Back to top


IBM WATSON IOT FOR BLUEMIX

Bluemix, IBM’s cloud development platform, is a PaaS. With Bluemix, you can
access IBM software for services like “big data” analytics, storage, databases,
security, IoT, cognitive applications, and more.

Watson IoT for Bluemix lets an application communicate with the connected
devices and consumes data received from those devices and device gateways. MQTT
is used to communicate with the devices and gateways. Devices can securely
connect to Watson IoT using MQTT over TLS.

The device needs to be registered with IBM Bluemix before an MQTT connection can
be established with the Watson IoT MQTT broker. Rules and logic to handle the
data can be defined in any of the languages that IBM Bluemix supports, such as
node.js (Node-RED), Java, Python, and more.

The LabVIEW Tools Network contains an example to connect CompactRIO and a
detailed description for IBM Watson IoT for Bluemix.

 

Back to top


PTC THINGWORX

ThingWorx is a model-based IoT application development platform that provides a
complete application design, run time, and environment. ThingWorx provides
components for connectivity, analytics, collaboration, and visualization
including augmented reality. The core development features of the platform are:

 * Composer—An application modeling environment to model the “things,” logic,
   visualization, data storage, and security
 * Mashup builder—A web page is called a mashup with ThingWorx, and
   visualization of web pages can be created using the mashup builder tool
 * SQUEAL—A search feature that allows searching through all data in a model
 * Execution engine and storage—Event-driven platform for execution and storage
   to store, relate, and expose big data to make it valuable and actionable

ThingWorx supports device connectivity in several ways: direct network
connections, MQTT and AMQP, third-party device clouds, and OPC-UA connectivity
through PTC Kepware software.

Back to top


MICROSOFT AZURE IOT SUITE

The Azure IoT Suite allows data collection from devices and provides a set of
services like data analysis, data storage, real-time and historical data
visualization, and integration with back-office systems. The Azure IoT hub
receives the data from IoT devices. The device data can then be stored or passed
on for further processing, analytics, and management. Devices can communicate
with the IoT hub over HTTP, MQTT, or AMQP protocols. Microsoft offers a set of
Azure IoT device SDKs through GitHub.

Other cloud platforms are available, such as Google Cloud Platform, GE Predix,
and many more. For more information, see the vendor’s specific product pages.

 


NEXT STEPS

 * Watch a webinar on connecting LabVIEW to the Industrial IoT
 * Explore the importance of testbeds for the Industrial Internet of Things
   (IIoT)
 * Learn about using LabVIEW to communicate with industrial IOT equipment

 


APPENDIX A: OVERVIEW OF 4 MAJOR IOT CLOUD PLATFORMS

 

AWS IoT

IBM Watson IoT for Bluemix

PTC ThingWorx

Microsoft Azure IoT

Free Evaluation

1-year free trial

30-day trial, then free Lite version

30-day trial

IoT Hub free trial for unlimited time

Pricing

Usage basis, no minimum fees

Pay per device, data exchanged, data stored

Subscription, then pay depending on usage

Usage based (No. of IoT Hub messages)

Deployment Options

Public cloud

Public or private

Private or hybrid

Public, private, or hybrid

Getting Started Materials (Tutorials, White Papers, and Videos)

Yes

Yes

Yes

Yes

Platform Access Options

GUI, CLI

GUI, CLI

GUI

GUI, CLI

MQTT Support

Yes

Yes

Yes

Yes

MQTT WebSockets

Yes

Yes

Not Specified

Yes

AMQP

Use SQS instead or 3rd party

Through 3rd party

Yes

Yes

AMQP WebSockets

–

Through 3rd party

Not Specified

Yes

Data Format

JSON

JSON

JSON

JSON

Storage

S3 (files), DynamoDB (NoSQL database), Redshift (database), and others

Cloudant (NoSQL database), Mongodb, and others

Data tables, streams, and value streams

SQL storage, DocumentDB (NoSQL), blob storage (files), and table storage

LabVIEW Connectivity

Yes, LabVIEW Cloud Toolkit for AWS; MQTT

Yes, MQTT

Yes, MQTT/AMQP

Yes, MQTT/AMQP

Device SDKs Available

Yes

Yes

Yes

Yes

Rules Engine

Yes, rules engine acts on the data and routes onto other services

Yes, that is, node.js application

Yes, Expression Widget

Yes, Azure Stream Analytics

Visualization of Data

QuickSight or custom development

Yes, Watson IoT Real-Time Insight

Yes, ThingWorx SQUEAL, widgets, Vuforia, and Mashup

Via Azure web apps, power BI, and notifications

Platform Real-Time Streaming Analytics

Amazon Kinesis

IoT Real-Time Insights, IBM Streaming Analytics

Yes

Stream Analytics

Platform Machine Learning

Amazon Machine Learning

IBM Predictive Analytics

Predictive Analytics

Azure ML

Security

TLS/SSL

TLS

TLS

TLS/SSL

The table features out-of-the-box capabilities. Often features can be added by
installing additional services.

 

 


APPENDIX B: SOURCES

AWS         https://aws.amazon.com

IBM           http://www.ibm.com

Intel          http://www.intel.com

PTC          
http://www.ptc.com/internet-of-things/technology-platform-thingworx

NI             
http://www.ni.com/nl-nl/innovations/industrial-internet-of-things.html

Electronic Design—Understanding the protocols behind the internet of things
http://www.electronicdesign.com/iot/understanding-protocols-behind-internet-things

Internet of Things (IoT) Development Platforms—A case of IBM Bluemix, P Kumar,
Univ. of Koblenz-Landau           
https://kola.opus.hbz-nrw.de/frontdoor/index/index/docId/1373

IoT Standards and Protocols      
https://www.postscapes.com/internet-of-things-protocols/

Industrial Internet of Things Platform Comparison          
https://www.mandsconsulting.com/industrial-iot-platform-comparison

 

Books:

Internet of Things, W. Vermeend, J.W. Timmer, 2016, ISBN 97890821993-4-5

Enterprise IoT, Naveen Balani, 2016, ISBN 9781535505642

 

The registered trademark Linux® is used pursuant to a sublicense from LMI, the
exclusive licensee of Linus Torvalds, owner of the mark on a worldwide basis.

Back to top




An NI Partner is a business entity independent from NI and has no agency or
joint-venture relationship and does not form part of any business associations
with NI.

What do you need our team of experts to assist you with?

Request a quote Find the right product Place an order Get support on a product
How can we help?

Please enter your information below and we'll be intouch soon.
This field is required
This field is required
This field is required
This field is required
Country
Preferred communication method
Email Phone call
Send

--------------------------------------------------------------------------------



Thanks!

We'll be in touch soon!

What do you need our team of experts to assist you with?

Request a quote Find the right product Place an order Get support on a product
How can we help?

Next
Please enter your information below and we'll be intouch soon.
This field is required
This field is required

This field is required
This field is required
Country
Preferred communication method
Email Phone call
Send

Thanks!

We'll be in touch soon!


Solutions
 * Semiconductor
 * Transportation
 * Aerospace, Defense, & Government
 * Academic & Research
 * Electronics
 * Energy
 * Industrial Machinery
 * Partners

Orders
 * Find a Distributor
 * Order Status and History
 * Retrieve a Quote
 * Terms of Service
 * Order by Part Number or Request a Quote

Company
 * NI is now part of Emerson
 * Leadership
 * Careers
 * Investor Relations
 * Newsroom
 * Supply Chain & Quality
 * Events

Support
   
 * Downloads
   
 * Product Documentation
   
 * Discussion Forums
   
 * Activate a Product
   
 * Submit a Service Request
   
 * Feedback zur Website

Facebook Twitter LinkedIn YouTube Instagram
Germany (Deutsch)
LEGAL |  IMPRINT |  PRIVACY |  Manage cookies
© 2023 NATIONAL INSTRUMENTS CORP. ALL RIGHTS RESERVED.

089 7413130

This site uses cookies to offer you a better browsing experience. We invite you
to review ourCookie Policy and thePrivacy Statement.

Manage cookies Reject all Accept all



NI COOKIE PREFERENCES

When you visit any website, it may store or retrieve information on your
browser, mostly in the form of cookies to help deliver relevant messages to you
about our products and services, as well as to help us measure the effectiveness
of those messages, improve and analyze the functionality of our services and
website, and to help provide a more personalized web experience when you visit
ni.com. Because we respect your right to privacy, you can choose not to allow
some types of cookies. However, blocking some types of cookies may impact your
experience of the site and the services we can offer. Learn more about NI
cookies in ourCookie Policy.

We invite you to review our Privacy Statement.
Allow all


MANAGE CONSENT PREFERENCES

STRICTLY NECESSARY AND EXEMPT COOKIES

Always Active

These cookies are necessary for the website to function and cannot be disabled
in our systems. These cookies are usually set only when you complete an action
online, such as setting your privacy preferences, logging in, or filling in
forms. You can set your browser to block or alert you about these cookies, but
then some parts of the site may not work. These cookies do not store any
personally identifiable information.

PERFORMANCE COOKIES

Performance Cookies

These cookies allow us to count visits and traffic sources so that we can
measure and improve the performance of our site. They help us to know which
pages are the most and least popular and see how visitors move around the site.
All information these cookies collect is aggregated and therefore anonymous. If
you do not allow these cookies, we will not know when you have visited our site
and cannot monitor its performance.

FUNCTIONAL COOKIES

Functional Cookies

These cookies enable the website to provide enhanced functionality and
personalization. They may be set by us or by third-party providers whose
services we use on our pages. If you do not allow these cookies, some or all of
these services may not function properly.

TARGETING COOKIES

Targeting Cookies

These cookies may be set through our site by our advertising partners and social
media services. They may be used by those companies to build a profile of your
interests and show you relevant advertising on other sites. They do not store
directly personal information but are based on uniquely identifying your browser
and internet device. If you do not allow these cookies, you will experience less
targeted advertising.

Back Button


COOKIE LIST



Search Icon
Filter Icon

Clear
checkbox label label
Apply Cancel
Consent Leg.Interest
checkbox label label
checkbox label label
checkbox label label

Reject all Confirm my choices