NMEA 0183 I/O Configuration Manual
Introduction
This document describes how the NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP and NMEA0183IO.NMEAOnSerial components work, and how to set them up and use them within a CDP Studio system.
The NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP 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. 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.
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, 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 * |
Usage
The NMEA0183IO.NMEAOnUDP, NMEA0183IO.NMEAOnTCP or NMEA0183IO.NMEAOnSerial can be found in the NMEA0183IO namespace in Resource tree, and is typically added to the selected application from the Resource tree. 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. The configuration for these IOServers only differ in the Transport, the rest of the configuration is the same.
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.
Name | Value | Description |
---|---|---|
Name | NetworkTransport | The name of the transport |
LocalName | ETH0 | The name, as specified in the Application NetworkInterface, of the local ethernet interface to use. |
ListenPort | 5000 | The port to listen for incoming NMEA strings. Can be any port number (1-65535), but numbers <1024 are typically reserved by the Operating System and require Administrator permissions to access. |
RemoteIP | 127.0.0.1 | The IP address to send to. |
RemotePort | 5000 | The port to send to. See ListenPort. |
Timeout | 1 | If nothing is received within this amount of seconds, the component will go to Offline state. |
NMEAOnSerial Transport
The NMEA0183IO.NMEAOnSerial Transport table makes it possible to configure how to send and receive NMEA 0183 sentences via serial cable.
Name | Value | Description |
---|---|---|
Name | SerialTransport | The name of the transport |
ComPort | Typically '/dev/ttyS0' on Linux, or '\\.\COM1' on windows | The name of the comport to send/receive on. This is Operating system and hardware dependent. |
BaudRate | 4800 is the default NMEA baudrate, though others can be selected from the drop-down. | The baudrate of the sender and receive must match exactly. |
Databits | 8 | The number of databits must match in the sender and receiver. |
Parity | None | The parity must be the same for the sender and the receiver. |
StopBits | 1 | The number of stopbits must be the same for the sender and the receiver. |
Protocol | None | This is the software or hardware handshake used between the sender and receiver, and must match in both. |
MultiDrop | None | For RS422 and RS485 this can be set to HalfDuplex or FullDuplex, depending on wiring and setup. |
Timeout | 1 | If nothing is received within this amount of seconds, the NMEAOnSerial will report Offline state. |
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.