• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Products
    • Automation Designer
    • HMI Designer
    • Maritime HMIs
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Protocols - NMEA 0183 I/O
  • NMEA 0183 I/O Configuration Manual
  • 5.0.4

NMEA 0183 I/O Configuration Examples Protocols - NMEA 0183 I/O

NMEA 0183 I/O Configuration Manual

Introduction

This document describes how the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP, NMEA0183IO.NMEAOnSerial and NMEA0183IO.NMEAOnCDP components work, and how to set them up and use them within a CDP Studio system.

The NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP, NMEA0183IO.NMEAOnCDP and NMEA0183IO.NMEAOnSerial components are used for transmitting CDPSignals and strings as NMEA 0183 strings, and for receiveing NMEA 0183 strings and decoding the content into CDPSignals and strings. NMEA0183IO.NMEAOnUDP and NMEA0183IO.NMEAOnTCP are used to transport NMEA0183 strings via UDP or TCP protocol, while the NMEA0183IO.NMEAOnSerial is used to transport NMEA0183 strings via serial protocol. NMEA0183IO.NMEAOnCDP uses the internal CDP Messenger transport to convey the data. The configuration for these IOServers only differ in the Transport, the rest of the configuration is the same. Data is transmitted out each time the component is run (as specified by the component fs property). Whenever data is received on the configured transport, it is decoded into the configured CDPSignals and strings.

Usage

Select one of the models NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP, NMEA0183IO.NMEAOnCDP or NMEA0183IO.NMEAOnSerial from the NMEA0183IO namespace based on which transport you want to communicate over. Set the Header, and if needed, set DisableChecksum to 1 to disable checksum generation and/or checking.

  • To send data, add a NMEA0183IO.SendData into the NMEAIO component, then add the correct amount and type of NMEA0183IO.Signal* or NMEA0183IO.String signals into the NMEA0183IO.SendData.
  • To receive data, add a NMEA0183IO.ReceiveData into the NMEAIO component, and add the correct amount and type of NMEA0183IO.Signal* or NMEA0183IO.String signals into the NMEA0183IO.ReceiveData.
  • CDP Studio will automatically build up the telegram to send or receive with the header, signals (automatically comma-separated), '*' + (optional checksum) and <CR><LF>.

About NMEA 0183

NMEA 0183 is an ASCII based protocol that has a header, comma-separated values and strings, '*' + a checksum, and ends with <CR><LF>.

NMEA GPGLL example string:

$GPGLL,62.470000,N,6.145380,E*61

NMEA string valuedescription
$GPGLLGPS Location
62.470000Latitude
NDirection of Latitude: N: North, S: South
6.145380Longitude
EDirection of Longitude: E: East, W: West
*61The checksum data, if present, always begins with *

NMEA GPGGA example string:

$GPGGA,172814.0,3723.46587704,N,12202.26957864,W,2,6,1.2,18.893,M,-25.669,M,2.0,0031*4F

NMEA string valuedescription
$GPGGAGPS Location
172814.0UTC of position
3723.46587704Latitude
NDirection of Latitude: N: North, S: South
12202.26957864Longitude
WDirection of Longitude: E: East, W: West
2GPS Quality indicator
6Number of SVs in use, range from 00 through to 24+
1.2HDOP
18.893Orthometric height (MSL reference)
MM: unit of measure for orthometric height is meters
-25.669Geoid separation
MM: geoid separation measured in meters
2.0Age of differential GPS data record, Type 1 or Type 9. Null field when DGPS is not used
0031Reference station ID, range 0000-4095. A null field when any reference station ID is selected and no corrections are received
*4FThe checksum data, always begins with *

NMEAOnUDP and NMEAOnTCP Transport

The NMEA0183IO.NMEAOnUDP and NMEA0183IO.NMEAOnTCP Transport makes it possible to configure how to send and receive NMEA 0183 sentences on the Ethernet. They both use the NetworkTransport configuration to set up the transport.

NMEAOnSerial Transport

The NMEA0183IO.NMEAOnSerial Transport table makes it possible to configure how to send and receive NMEA 0183 sentences via serial cable. It uses the SerialTransport configuration to set up the transport.

NMEAOnCDP Transport

The NMEA0183IO.NMEAOnCDP Transport table makes it possible to configure how to send and receive NMEA 0183 sentences via the CDP Messenger. It uses the CDPTransport configuration to set up the transport.

Sending and receiveing NMEA strings

Setting up NMEA strings to send is done by adding one or more NMEA0183IO.SendData resources to the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial IOServers. Receiveing NMEA Strings is done by adding one or more NMEA0183IO.ReceiveData resources to the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial IOServers.

Each of the NMEA0183IO.SendData or NMEA0183IO.ReceiveData resources have a Header that can be set, for instance '$GPGLL'. Inside each of the NMEA0183IO.SendData and NMEA0183IO.ReceiveData instances, it is possible to add Signals and Strings. These are order-dependent and correspond to the values in the NMEA string that are bounded by commas.

Controlling the values

The values to send in the NMEA sentences can be retrieved from the control system simply by using the Routing mechanism. Similarily, you can set routing on objects that need values from the ReceiveData elsewhere in the control system.

NMEA 0183 I/O Configuration Examples Protocols - NMEA 0183 I/O

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2025 CDP Technologies. Privacy and cookie policy.

Return to top