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 value | description |
---|---|
$GPGLL | GPS Location |
62.470000 | Latitude |
N | Direction of Latitude: N: North, S: South |
6.145380 | Longitude |
E | Direction of Longitude: E: East, W: West |
*61 | The 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 value | description |
---|---|
$GPGGA | GPS Location |
172814.0 | UTC of position |
3723.46587704 | Latitude |
N | Direction of Latitude: N: North, S: South |
12202.26957864 | Longitude |
W | Direction of Longitude: E: East, W: West |
2 | GPS Quality indicator |
6 | Number of SVs in use, range from 00 through to 24+ |
1.2 | HDOP |
18.893 | Orthometric height (MSL reference) |
M | M: unit of measure for orthometric height is meters |
-25.669 | Geoid separation |
M | M: geoid separation measured in meters |
2.0 | Age of differential GPS data record, Type 1 or Type 9. Null field when DGPS is not used |
0031 | Reference station ID, range 0000-4095. A null field when any reference station ID is selected and no corrections are received |
*4F | The 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.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.