0% found this document useful (0 votes)
11 views185 pages

J1939 Remote Data Overview and Protocol

The document outlines the J1939 standard, which is used in heavy-duty vehicles for communication over a CAN bus, detailing its structure, message formats, and address assignment processes. It describes how messages are transmitted and received, including broadcast and point-to-point communications, as well as the importance of unique identifiers for each Electronic Control Unit (ECU). Additionally, it provides insights into the physical wiring topology and the necessary resources for supporting J1939 communication.

Uploaded by

itusharteji
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views185 pages

J1939 Remote Data Overview and Protocol

The document outlines the J1939 standard, which is used in heavy-duty vehicles for communication over a CAN bus, detailing its structure, message formats, and address assignment processes. It describes how messages are transmitted and received, including broadcast and point-to-point communications, as well as the importance of unique identifiers for each Electronic Control Unit (ECU). Additionally, it provides insights into the physical wiring topology and the necessary resources for supporting J1939 communication.

Uploaded by

itusharteji
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Remote Data

The following Remote Datas are available:

J1939

ATA

CANOpen

Caterpillar CCM

EAC-300

IHCS

Line In

Modbus Master

Modbus Slave

Modbus Master TCP/IP

Modbus Slave TCP/IP

MG

MRU

MTU Slave

NMEA2K

NMEA Listener

NMEA Talker

OPC Client

SF_Control

Simulation

System IO

Tank Calculation

TCP/IP

TTP

TXT
J1939 – Plugin

After selecting ‘Remote Data’ and J1939 – RD xx

There are several items of this remote data:

1. J1939 - General Settings

2. J1939 - Connection List

3. J1939 - Message List 4. J193 - Diagnostic List

Introduction
J1939 is a set of standards defined by SAE. They are used in heavy-duty vehicles (trucks and buses, mobile hydraulics,
etc.)

In many ways, J1939 is similar to the older J1708 and J1587 standards, but J1939 is built on CAN.

The physical layer (J1939/11) describes the electrical interface to the bus. The data link layer (J1939/21) describes the
rules for constructing a message, accessing the bus, and detecting transmission errors. The application layer (J1939/71
and J1939/73) defines the specific data contained within each message sent across the network.

Quick facts
- Higher-layer protocol built on CAN
- Used in heavy-duty vehicles
- The speed is nearly always 250 kbit/s

Message Format and Usage (J1939/21)


Most messages defined by the J1939 standard are intended to be broadcast. This means that the data is transmitted on
the network without a specific destination. This permits any device to use the data without requiring additional request
messages. This also allows future software revisions to easily accommodate new devices (address assignments). When
a message must be directed to a particular device, a specific destination address can be included within the message
identifier. For example, a request for a specific torque value from the engine instead of a specific torque value from the
brake controller.

J1939 uses the 29-bit identifier defined within the CAN 2.0B protocol shown in Figure 1. The identifier is used slightly
different in a message with a destination address (”PDU 1”) compared to a message intended for broadcast (”PDU 2”).

PDU stands for Protocol Data Unit (i.e. Message Format).

The SOF, SRR, and IDE bits are defined by the CAN standard and will be ignored here. The RTR bit (remote request
bit) is always set to zero in J1939.

The 29-bit identifier used in J1939 is structured in the following way.

Priority Reserved Data page PDU format PDU specific Source Address
3 bits 1 bit 1 bit 8 bits 8 bits 8 bits
Table 1: Structure of a 29-bit identifier.

The first three bits of the identifier are used for controlling a message’s priority during the arbitration process. A value
of 0 has the highest priority. Higher priority values are typically given to high-speed control messages, for example, the
torque control message from the transmission to the engine. Messages containing data that is not time critical, like the
vehicle road speed, are given lower priority values.

The next bit of the identifier is reserved for future use and should be set to 0 for transmitted messages.

The next bit in the identifier is the data page selector. This bit expands the number of possible Parameter Groups that
can be represented by the identifier.

The PDU format (PF) determines whether the message can be transmitted with a destination address or if the message
is always transmitted as a broadcast message.

The interpretation of the PDU specific (PS) field changes based on the PF value:

- If the PF is between 0 and 239, the message is addressable (PDU1) and the PS field contains the destination address.
- If the PF is between 240 and 255, the message can only be broadcast (PDU2) and the PS field contains a Group
Extension.

The Group extension expands the number of possible broadcast Parameter Groups that can be represented by the
identifier.

The term Parameter Group Number (PGN) is used to refer to the value of the Reserve bit, DP, PF, and PS fields
combined into a single 18 bit value.

Example: The ID 0xCF004EE can be divided into the following fields in table 2.

0x0C 0xF0 0x04 0xEE


000 011 0 0 11110000 00000100 11101110
--- Prio R DP PF PS SA

Table 2. PGN example.

PGN = the R, DP, PF and PS fields - in this case 0x0F004.


PF = 0xF0 = 240, i.e. this is a PDU2 (broadcast) message
PS = 0x04, i.e. the Group Extension = 4
The last 8 bits of the identifier contain the address of the device transmitting the message. The address is the label or
"handle" which is assigned to provide a way to uniquely access a given device on the network. For a given network,
every address must be unique (254 available). This means that two different devices (ECUs) cannot use the same
address.

Addresses and Names (J1939/81)


The Name is a 64 bit (8 bytes) long label which gives every ECU a unique identity.
The Name is composed of 10 fields and has the following structure shown in table 3.

Table 3. Structure of the Name.


1. Arbitrary address bit
2. Industry group, length 3 bits
3. Vehicle system instance, length 4 bits
4. Vehicle system, length 7 bits
5. Reserved bit
6. Function, length 8 bits
7. Function instance, length 5 bits
8. ECU instance, length 3 bits
9. Manufacturer code, length 11 bits
[Link] number, length 21 bits
Byte number in CAN message Contents/Meaning
0 Identity number, LSB
1 Identity number
2 Bits 0-4: Identity number, MSB
Bits 5-7: Manufacturer code, LSB
3 Manufacturer code, MSB
4 Bits 0-2: ECU instance
Bits 3-7: Function instance
5 Function
6 Bit 0: Reserved bit
Bits 1-7: Vehicle system
7 Bits 0-3: Vehicle system instance
Bits 4-6: Industry group
Bit 7: Arbitrary address bit

The main purpose of the Name is to describe an ECU. The lower Function field values, 0 to 127, are pre-assigned to
"standard" functions or devices. The values 128 to 254 are dependent on the Industry Group and the Vehicle System
values. This dependence makes it possible to have the same arrangement of functions in different vehicles. This system
also allows devices such as trailers and agricultural equipment to limit their search for an available address and thus
minimize the time and difficulty of dynamically claiming an address. When claiming an address, the Name is used to
determine which ECU has higher priority and therefore will get the address that was claimed.

Each device on the network will be associated with at least one Name and one address. However, multiple device
Names and multiple addresses may coexist within a single ECU. For example, an engine and engine brake (retarder)
residing in a common device with a single physical bus connection. The device address defines a specific
communications source or destination for messages. The Name identifies the functionality and adds a unique instance
number of that functionality when multiple devices of the same type coexist on the network. Only 254 different devices
of the same type can coexist on the network due the address limit. Address 255 is reserved as a global address for
broadcast and address 254 is reserved as the "null address" used by devices that have not yet claimed an address or
failed to claim an address.

Address Claim
In general, most addresses are pre-assigned and used immediately upon power up. In order to permit J1939 to
accommodate future devices and functions which have not yet been defined, a procedure has been specified for
dynamically assigning addresses. Each device must announce which address it is associated with. This is the
identification (address claim) feature. Two options are available:

1. Send an Address Claim message to claim an address.

When a device sends an Address Claim message to claim an address, all devices compare this newly claimed address to
their own table of devices on the network. If the address is already claimed by a device with a higher priority, that
device transmits an Address Claim message indicating that the address is already in use. The Name, which is sent as
data in the Address Claim message, determines which device has higher priority.

2. Send a Request for Address Claim.

When a device sends a Request for Address Claim, all devices respond by transmitting their Address Claimed
messages. This permits transitional devices (tools, trailers, etc.) or devices powering up late to obtain the current address
table so that an available address can be selected and claimed. See figure 2.

Dynamic address assignment support is optional and only those devices which might be expected to encounter address
conflicts must support this capability. To eliminate the need to support dynamic address assignment and speed up this
“identity process”, most ECUs are associated with a preferred address. These preferred addresses are described in the
document J1939/71. If the preferred address is already in use by another ECU, the device can attempt to claim another
address if self-configuration is supported by the device.

Transmitting Messages (J1939/21 and J1939/7x)


To send a particular data item, a message must be constructed with overhead that describes the data to be sent. Related
data items are typically packed together within a message to reduce overhead. J1939/71 defines some standard PGNs
which describe the parameters to be sent in a message. The J1939/71 document also includes information about
message priority and transmission rate. Note that when a device does not have data available for a given parameter, the
byte that should have contained this parameter is set to "not available" (0xFF) so that a receiver knows that the data is
missing. Messages which need more than eight bytes of data can be sent as multi-packet messages. Multi-packet
messages are transmitted by means of the Transport Protocol Functions defined in J1939/21. However there are two
ways of transmitting multi-packet messages:

[Link] Announce Message (TP_BAM) [Link] Management (TP_CM)

TP_BAM messages

TP_BAM messages use a global destination address which means that all devices on the network will receive these
messages. The transmission is started with a Connection Management (CM) message, PGN = 0x00EC00, with a
Control byte indicating TP_BAM. The message data follows in Data Transfer (DT) messages, PGN = 0x00EB00.

TP_CM messages
TP_CM messages are sent point to point between two devices. The transmission starts with a CM message with a
Control byte indicating Request To Send (RTS). The receiving device responds with a CM message with the Control
byte indicating Clear To Send (CTS). The transmitting device then sends the portion of the data indicated in the CTS
using DT messages. This handshake of CTS then DT messages continues until the entire message is transmitted. The
connection is terminated at the completion of the message by the receiver transmitting a CM message with a Control
byte indicating End Of Message Acknowledgement (EOM). Note that for this process to work, the CM message
contains additional data based on what the control byte is. The RTS includes: number of bytes, number of packets and
the PGN whose data will be transported. The CTS includes the number of packets the receiver expects next and the
packet number to start with.

Receiving Messages (J1939/21 and J1939/7x)


There are various techniques (and chips) available for capturing selected messages off the network. Several general
observations can be made, however regarding received messages:

1) If a message is a destination specific request or command, the device must determine if the destination address
matches an address claimed by the device. If there is a match, the receiving device must process the message and
provide some type of acknowledgment.

2 ) If a message is a global request, every device, even the originator, must process the request and respond if the data
is available.

3) If a message is broadcast, each device must determine if the content is of relevance or not.

ECU Design (J1939/1x, J1939/21, and J1939/7x)


Although every manufacturer will have different performance requirements for the electronic control unit (ECU)
contained within their product,
several observations should be made regarding the resources needed to support J1939.
The current data rate of J1939 is 250 Kbps.
A typical message containing 8 data bytes is 128 bits long (excluding bits used for bit stuffing) which in time is
approximately 500 microseconds.
The shortest message is 64 bits long. This means that a new message could be sent every 250 microsecond.
Although not every message is relevant, nor is the bus loading likely to be above 50%,
the receiving processor must be able to handle (or buffer) back to back messages for short bursts of time.
This will require some RAM space as well as processor time for memory transfers.

Wiring Topology - Physical Layer (J1939/1x)


The J1939 network is intended to be a single, linear, shielded twisted pair of wires running around the vehicle to each
ECU. A short stub is permitted between the ECU and the "bus". This simplifies routing the main bus wiring by not
requiring the main bus to connect directly to each ECU. The linear bus is necessary at a data rate of 250 Kbps in order
to minimize electrical signal reflections. The termination resistor at each end of the bus also reduces reflections.

The J1939 network may actually be composed of multiple segments, with an in-line device known as a bridge present
between them. These segments do not need to be directly compatible with each other. For instance, the segments may
run at different data rates or use a different physical medium. The main function of the bridge is to provide electrical
isolation between segments. In the event of a break on the wire between the tractor and trailer, the main J1939 segment
on the tractor will continue to function. The bridge can also selectively filter which messages need to be stored and
forwarded from one segment to another.

Example of how to interpret a J1939 message


This example is intended to provide the principles of how to interpret a J1939 message. Let’s look at a J1939 message
with the following content:

CAN identifier: 0xCF00401


Data Bytes: 0xFF FF 82 DF 1A FF FF FF

What information does the CAN-ID provide?


First two bytes = 0x0C = 00001100 in binary format. The first 3 bits aren’t used since the identifier only consists of 29
bits. The following 3 bits represents the message priority which in this case is 3. Thereafter follows a reserved bit and
then the data page which are used to determine the complete PGN.

The last byte of the CAN-ID is the Source Address (address of the sending device) which in this case is 1.

The PGN = 0x0F004 which corresponds to the Electric Engine Controller #1 (EEC1) according to the J1939/71
document. This document also describes the parameters and their position within the data bytes. The data field consists
of the following bytes in this example:

Data bytes FF FF 82 DF 1A FF FF FF
Position 1 2 3 4 5 6 7 8

Data bytes 1, 2, 6, 7 and 8 in this example are not available and are therefore set to 0xFF. No raw parameter value
(single byte) could have the value 0xFF.

Data byte 3 is the parameter Actual engine percent torque. The raw value 0x82 is 130 decimal. According to the
J1939/71 document the scaling 1% per bit and the offset is -125. Therefore, the actual value for this parameter is 5%.

Data bytes 4 and 5 form the parameter Engine speed. The first byte (4) is the least significant (Intel byte order). The
raw value 0x1ADF = 6879 decimal. The scaling is 0.125 rpm per bit and the offset is 0. The actual value for this
parameter is therefore just under 859.875 rpm.

Shortcuts

Icon:

Place: Remote Data\


J1939 – General Settings

Setting Description Default

Interval Time between Minimal Time between two messages before reporting an error
1000
Messages (50-100000 in milli-seconds

Update Time channel Data to When this protocol running on Server, IOServer uses this time to
Plugin update channel values 1000
(50-100000 in milli-seconds

Can Speed Speed Setting for Canbus 125K, 250k, 500k 1M etc. 250k

Use Address Claim Login Procedure to Canbus - yes/no no

Unit Number (this) Unit Address Number of Plugin 208


Engine Unit Number Unit Address Number of Engine 128

Use PGN Resolution* when receiving channel value scale to a certain resolution - yes/no yes

Use PGN Offset* when receiving channel value recalc with a certain offset - yes/no yes

* remark : resolution and offset are configured inside J1939 Messages List.

See also:

J1939 Plugin
J1939 – Connection List

From the current selected row message definition is shown.

Field Description
Nr Number, row number
PGN PGN hex Number, see Message List
Channel Channel to retrieve Value from (Analog in)
eq. Leaving field empty, this will delete entry
Desc Description of PGN

See also:

J1939 Plugin
J1939 – Messages List

Field Description
Nr row index of this grid, this number will be used in connection list
PGN indentifier of message which will be received and handle by this plugin
PGN_16 same as PGN now displayed in hex code
Byte Order Index number where data starts
Description commentary on message for documentation only
Nr Of Bytes data size of value
Priority Priority level of Message
Resolution value scale to engineering unit
Offset value scale with offset
BitNr start of bit number for digital status only

See also:

J1939 Plugin
J1939 – Diagnostic List

Field Description
Nr row index of this grid
Channel Digital Channel which will be triggered into alarm/status high when fault occurs
SPN Suspect Parameter Number
FMI Failure Mode Identifier
Description FMI Description

J1939 DTC

In SAE J1939, the acronym DTC stands for Diagnostic Trouble Code, also known as a fault code, and serves to
identify the failed parameter. A DTC contains the Suspect Parameter Number (SPN) for the failed parameter, how
many times failure has occured (OC), and how it has failed (FMI).

Active DTCs are transmitted by the DM1* message while non-active DTCs (i.e. historic) are transmitted by the
DM2 message. The DM1 and DM2 messages may contain multiple DTCs which mean the message may be
transmitted using the Transport Protocol (TP). Both the DM1 and DM2 messages are defined by the J1939-73
specification.

DTC Definition:
Suspect Parameter Number (SPN) 19 bits
Failure Mode Identifier (FMI) 5 bits
Occurrence Count (OC) 7 bits
SPN Conversion Method (CM) 1 bit

Note :DM1 message has PGN_16 on Canbus of "0xFECA"


What is an SPN?

Each parameter used in the J1939 network is described by the standard.


A Suspect Parameter Number (SPN) is a number that has been assigned by the SAE committee to a specific
parameter.
Each SPN has the following detailed information associated with it:

-data length (in bytes)


-data type
-resolution
-offset
-range
-and a tag (label) for reference.

SPNs that share common characteristics will be grouped into a Parameter Group (PG) and will be transmitted to the
network using the same PGN.

See also:

J1939 Plugin
LI – Line In Plugin

After selecting ‘Remote Data’ and LineIn

There are several items of this remote data:

1. Line In - General Settings

2. Line In - Connection List

Line In Protocol only receives ASCII Messages

Message Format

<String>

In detail:

<Sub String 1>…< Sub String N ><End Of Line>

Where a sub string is a text to identify a unique line in the received data

Examples:
4:59p07aprAlarm! 66 PIR BD FBD P In Area #2 BRIDGE DECK
5:02p07aprRestore! 70 PIR BD AFT S In Area #2 BRIDGE DECK

Shortcuts

Icon:

Place: Remote Data\


LineIn – General Settings

Setting Description Default


Com Port Comport to use (1-4) 2
Baudrate Communication Speed
1200
(1200, 2400, 4800, 9600, 19200)
Data Bits Number of Data bits (7, 8) 8
Parity Communication Parity
None
(None, Odd, Even, Space, Mark)
Stop Bits Number of Stop Bits (0, 1, 2) 1
End Of Line Separator Separator between two received lines <LF><CR>
Case Sensitive if Checked, use lower case and upper case chars from
configuration
Maximum number of chars in one
Max. length of received line 128
line

See also:

Line In Plugin
LineIn – Connection List

Field Description
Channel Channel number to update (Analog in; Digital in; Analog out; Digital out)
Sub String
first find string
1
Sub String
second find string
2
Sub String
third find string
3
Value Update value, (if setuped line is received, channel is updated with this value) (Alarm/Normal for
Digital in/out or numeric value for Analog in/out)
Description Channel Description, information

Remarks:

For faster configuration it is possible to use CTRL+D:

configure one complete row

select one column and multiple empty rows

press CTRL+D, automaticially a default will filled in

By double-clicking on channel column header sort action is performed.

See also:

Line In Plugin
MBM – Modbus Master Plugin

After selecting ‘Plugins’ and MBM – RD xx

There are several items of this plugin:

1. MBM - General Settings

2. MBM – Force Connection List

3. MBM - Query Table 01..04 or 15..16 or 23

4. MBM – Read Connection List

This plugin supports the following modbus functions:

Inputs

01 – Coils (Digital, error code 0x81)

02 – Status (Digital, error code 0x82))

03 – Hold Registers (Analog, error code 0x83)

04 – Input Registers (Analog, error code 0x84)

Outputs

05 – Write Single Coil (Digital, error code 0x85)

06 – Write Single Register (Analog, error code 0x86)

15 - Write Multiple Coils (Digital, error code 0x8F)

16 - Write Multiple registers (Analog, error code 0x90)

Inputs and Outputs

23 - Read/Write Multiple registers (Analog, error code 0x97)

Remark: There is no use for a treeview items like "MBM - Query Table 05" or 06.
Because the number of registers is 1 at function 05 and 06.
In this case Modbus Master will send a complete message with only one status or value.
Structures are sent according Motorola (MSB LSB or Big Endian) processor set.

Register Values are handled depending of configuration:

Register Range Signed Unsigned 8000H Offset


Negative -32768..-1 -32768..-1
(8000.. FFFF) (0..7FFF)
Positive 0..32767 0..65535 0..32767
(0000..7FFF) (0000..FFFFF) (8000..FFFF)
Error Value -32768 65535 -32768
(Out of range) (8000) (FFFF) (0000)
(Values) use hex notation

For value extension and value precision another types of register handling is available.

The base types of these are:

long (signed 32 bits)

ulong (unsigned 32 bits)

float (32 bits, contains one sign bit and exponent (two complement) and 23 bit mantissa)

Furthermore there could be a distinction between low byte and high byte sending/receiving order. (Abbreviation
L/H or H/L) Normally H/L is most frequently used.

Therefore a Modbus register is always 16 bits, two registers addresses are used for a 32 bit value presentation.

Example Function 02 digital status request

RTU

SlaveNr Function Nr Address Nr of statusses CRC


(one byte) (one byte) (two bytes) (two bytes) (two bytes)
0x01 0x02 0x01 0x00 0x00 0x09 CRC

ASCII

Header SlaveNr Function Nr Address Nr of statusses LRC Footer


(two byte) (two byte) (four bytes) (four bytes) (two bytes) CR+LF
: 01 02 0100 0009 LRC CR+LF

Example Function 02 digital status reply

SlaveNr Function Nr Byte Count Data CRC


(one byte) (one byte) (one byte) (Byte Count bytes) (two bytes)
0x01 0x02 0x02 0xFF 0xFF CRC

:010202FFFF
LRC+ Example Function 02 digital status exception reply

SlaveNr Function Nr Exception code CRC


(one byte) (one byte) (one byte) (two bytes)
0x01 0x82 0x02 CRC

:018202LRC+CR+LF

To get the status of the points with MODBUS address 100 to 113, when e.g. the points on address 103 and 108 are
'on' and the other points are 'off':

Slave number : 1

Data start field : 100 (0064 hex)

Data number : 14 (000E hex)

MODBUS request : 01 02 00 64 00 0E B8 11 (hex)

MODBUS reply : 01 02 02 08 01 7F B8 (hex)

Note: that the second data byte in the reply contains 2 dummy coils, their value is supposed random (here taken to
be 'off') but do contribute to the CRC.

Function 23 (0x17) Read/Write Multiple registers


This function code performs a combination of one read operation and one write operation in a single MODBUS
transaction.
The write operation is performed before the read. Holding registers are addressed starting at zero.
Therefore holding registers 1-16 are addressed in the PDU as 0-15.
The request specifies the starting address and number of holding registers to be read as well as the starting address,
number of holding registers, and the data to be written.
The byte count specifies the number of bytes to follow in the write data field.
The normal response contains the data from the group of registers that were read.
The byte count field specifies the quantity of bytes to follow in the read data field.

Request:
Description Size Range
Slave Number 1 Byte 0x01 .. 0xFF
Function code 1 Byte 0x17
Read Starting Address 2 Bytes 0x0000 .. 0xFFFF
Quantity to Read 2 Bytes 0x0001 .. 0x007D
Write Starting Address 2 Bytes 0x0000 .. 0xFFFF
Quantity to Write 2 Bytes 0x0001 .. 0X0079
Write Byte Count 1 Byte 2 x N*
Write Registers Value N*x 2 Bytes -
Error Check 2 Bytes CRC
*N = Quantity to Write

Response:
Description Size Range
Slave Number 1 Byte 0x01 .. 0xFF
Function code 1 Byte 0x17
Byte Count 1 Byte 2 x N*
Read Registers Value N*x 2 Bytes -
Error Check 2 Bytes CRC
*N' = Quantity to Read

Expection Codes:
01 ILLEGAL FUNCTION
The function code received in the query is not an allowable action for the server (or slave).
This may be because the function code is only applicable to newer devices, and was not implemented in the unit
selected.
It could also indicate that the server (or slave) is in the wrong state to process a request of this type,
for example because it is unconfigured and is being asked to return register values.

02 ILLEGAL DATA ADDRESS


The data address received in the query is not an allowable address for the server (or slave).
More specifically, the combination of reference number and transfer length is invalid.
For a controller with 100 registers, the PDU addresses the first register as 0, and the last one as 99.
If a request is submitted with a starting register address of 96 and a quantity of registers of 4,
then this request will successfully operate (address-wise at least) on registers 96, 97, 98, 99.
If a request is submitted with a starting register address of 96 and a quantity of registers of 5,
then this request will fail with Exception Code 0x02 “Illegal Data Address” since it attempts to operate on registers
96, 97, 98, 99
and 100, and there is no register with address 100.

03 ILLEGAL DATA VALUE


A value contained in the query data field is not an allowable value for server (or slave).
This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is
incorrect.
It specifically does NOT mean that a data item submitted for storage in a register has a value outside the
expectation
of the application program, since the MODBUS protocol is unaware of the significance of any particular value of
any particular register.

04 SLAVE DEVICE FAILURE


An unrecoverable error occurred while the server (or slave) was attempting to perform the requested action.

05 ACKNOWLEDGE
Specialized use in conjunction with programming commands.
The server (or slave) has accepted the request and is processing it, but a long duration of time will be require
dto do so. This response is returned to prevent a timeout error from occurring in the client (or master).
The client (or master) can next issue a Poll Program Complete message to determine if processing is completed.

06 SLAVE DEVICE BUSY


Specialized use in conjunction with programming commands.
The server (or slave) is engaged in processing a long–duration program command.
The client (or master) should retransmit the message later when the server (or slave) is free.

08 MEMORY PARITY ERROR


Specialized use in conjunction with function codes 20 and 21
and reference type 6, to indicate that the extended file area failed to pass a consistency check.
The server (or slave) attempted to read record file, but detected a parity error in the memory.
The client (or master) can retry the request, but service may be required on the server (or slave) device.

0A GATEWAY PATH UNAVAILABLE


Specialized use in conjunction with gateways, indicates that the gateway was unable to allocate an internal
communication path
from the input port to the output port for processing the request.
Usually means that the gateway is misconfigured or overloaded.

0B GATEWAY TARGET DEVICE FAILED TO RESPOND


Specialized use in conjunction with gateways, indicates that no response was obtained from the target device.
Usually means that the device is not present on the network.

For more information reference the Modbus Specification PI_MBUS_300.pdf Revision A, See
[Link]

Shortcuts

Icon:

Place: Plugins\
MBM – General Settings

Header settings

Field Options/Values and Function


Remote data Remote data number which is being configured
Running on Server: Protocol runs on the Server as a Plug-in
or on LCD / XP / TFT : Processor Number
Protocol Order: 1-4 for XP, 1-2 for TFT, 1 for LCD

Protocol settings

Field Options/Values and Function


Slave Single slave number, is used for entire plug-in.
(default 1)
The “SLAVE” field of the conection list and of all valid query blocks in the database using this
plug-in must be updated to hold this number
Multi-drop Slave number is ignored and multiple slave numbers can be entered in the other Configuration
mode screens.
(default unchecked/off)
Format RTU: binary data exchange (Device 8 databits)
ASCII: text data exchange (Device 7 databits)
(default RTU)
Register How are Registers Handled (Inhibits configuration of this Field in Queries and connectionlist)
Handling Value Function
Free Query or Connection list Register handling is used
Signed Negative/Positive values (Sign bit)
Unsigned Positive values
8000H Offset zero point becomes 0x08000 (no Sign bit)

(default Signed)

Device settings

Field Options/Values and Function


Port Communication port which is used for communication.
1 till 20
(Default 1)
Server: No other plug-in/applications must use the same COM port
XP: COM1 - COM4
Baudrate Baudrate of the Com Port,
1200, 2400, 4800, 9600 or 19200
(default: 19200)
Databits Databits per byte used to communicate, depending on protocol format
5, 6, 7, 8
(default: 7 (Ascii),8 (RTU))
Parity Parity used to communicate
NONE, ODD, EVEN, MARK, SPACE
(default: NONE)
Stopbits Stopbits per byte used to communicate
1, 2
(default: 1)
Use Redundant Comport special feature to use a second comport ('Port'+1)
some engines, PLC's supports this feature
(default unchecked/off)
Tx and Rx on both Comports this feature depends of 'Use Redundant Comport'
all queries will be send/receive on both Comports
(default unchecked/off)

Timing settings

Field Options/Values and Function


Refresh Rate Time between same Queries, when refresh rate is too small the Communication runs as fast as
possible, Time is used divided by configured Queries (Also function 5 and 6) to spread Queries
instead of burst sending.
200-300000 millisec (default: 1000)

Response Time Maximum Time between Query and Answer, when time expires a retry is done.
Out Modbus Slave Device must supply this information
50-5000 millisec
(default: 200)
Number Of Number of re-queries before a slave not present is generated.
Retries Before 0 - 10
Failure (default: 3)
Check Interval Time between queries to not present Slaves to see if they are present now. 200-300000 millisec
(default: 5000)
Inter Time allowed between received bytes, is not trustworthy on Server.
Character 0-10000 bits
Length (default: 3000)
value may NOT be smaller when protocol running on Server
Processor XP eq. 125, when long Queries are retried increase value until responses are
received.
Values to zero after a certain time ('Refresh time' * 'Number Of Retries Before Failure')
if no and nothing is received (no response on any Query)
communication the to be received values and statusses will be defaulted to zero
(default unchecked/off)

See also:

MBM - General Information Register Handling etc.


MBM - Query Table
MBM – Read Connection List
MBM – Force Connection List
MBM –Query Table

Grid Options/Values and Function


Column
Slave Nr Slave Number, can be forced by General Settings, 1..255

First Address value, 0..65535


Address
Nr Of Number of registers to be received or be sent, when too many registers are queried multiple
Registers queries are automatically generated, 0..65535

Register How is register handled, can be forced by General Settings


Handling - 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)

By pressing on column “Slave Nr” a sort action is performed, first time ascending second descending.

Field/Control Function

Query Table Modbus function number of shown queries


Address Offset so Configured Modbus addresses are in accordance with the Modbus list and queries with
Offset hardware Modbus addresses used, certain plc’s send 40001 as 0 and 10001 as 0., 0..65535

Check Button Check if all connection list items are inside the configured modbus queries

Remark: There is no use for a treeview items like "MBM - Query Table 05" or 06.
Because the number of registers is 1 at function 05 and 06.
In this case only configuration at force connection list is sufficient.

Example: Function 23, one query configured by two lines.

See also:

MBM - General Settings

MBM – Force Connection List


MBM – Read Connection List
MBM – Read Connection List

Grid Options/Values and Function


Column
Channel Channel to receive the data; type in an existing digital/analog channel number, or get here from
the channel’s configuration form (status/value link)
Slave Nr Slave Number, can be forced by General Settings, 1..255

Function Modbus function number, 01,02,03 or 04

Address Modbus address of modbus function where value is retrieved from. 0...65535

Bit Nr Bit to extract from register


0..15 or (nothing) where (nothing) means ‘no bit’ or entire register
Type How is register handled
- 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Scale Scale factor of send register values
*1000, *100, *10, 1, /10, /100 or /1000 (Default 1)
Channel for showing channel description
Description this field is read only

By pressing on column “Channel” or “Slave” or “Function” or “Address” a sort action is performed. First time
ascending second time descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

Tip: For fast configuration, configure a field, select one column and multiple rows by mouse, (click on first
column, keep mouse left button down, drag mouse pointer to next row) and press CTRL+D
Slave field in single slave mode will not be editable and show general slave number.

Register-handling field is non-editable when overruling Register Handling is active this is when:
- General Register Handling isn't Free
- Queries Register Handling for the Modbus Slave/Function where Modbus Address is part of isn't free
- Digital status/coil or binary packed register

Scale 1 means rounded whole channel values are send.


Scale *10 means rounded whole 'channel values*10' are send.
Scale /10 means rounded whole 'Channel values/10' are send.

It is possible to have different colors at 'Channel' field


It marks a configuration error.
In this example it says that a channel is not configured as remote data.
But this is required because MBM has to write it's received value to a channel!

Example: Function 23

See also:

MBM - General Settings

MBM – Force Connection List

MBM - Query Table


MBM – Forced Connection List

Grid Options/Values and Function


Column
Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the
channel’s configuration form (status/value link)
Slave Nr Slave Number, can be forced by General Settings, 1..255

Function Modbus function number, 05,06,15 or 16

Address Modbus address of modbus function where value is send to.


0...65535

Register Bit Bit in register


0..15 or (nothing) where (nothing) means ‘no bit’ or entire register
Register How is register handled, can be forced by General Settings or Query Settings
Handling - 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Scale Scale factor of send register values
*1000, *100, *10, 1, /10, /100 or /1000 (Default 1)
Channel for showing channel description
Description this field is read only

By pressing on column “Channel” or “Slave” or “Function” or “Address” a sort action is performed. First time
ascending second time descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

Tip: For fast channel configuration, configure last line complete, press not enter at the last column, go back to first
column, give a channel range in (like 10101-10125) and press enter, now multiple rows are created!

Slave field in single slave mode will not be editable and show general slave number.

Register-handling field is non-editable when overruling Register Handling is active this is when:
- General Register Handling isn't Free
- Queries Register Handling for the Modbus Slave/Function where Modbus Address is part of isn't free
- Digital status/coil or binary packed register
Scale 1 means rounded whole channel values are send.
Scale *10 means rounded whole 'channel values*10' are send.
Scale /10 means rounded whole 'Channel values/10' are send.

Example: Function 23

See also:

MBM - General Settings

MBM - Query Table

MBM – Read Connection List


MBS – Modbus Slave Plugin

After selecting ‘Remote Data’ and MBS – RD xx

There are several items of this remote data:

1. MBS - General Settings

2. MBS - Read Connection List

3. MBS – Forced Connection List

This plugin supports the following modbus functions:

Outputs (Read Connection List)

01 – Coils (Digital, error code 0x80)

02 – Status (Digital, error code 0x82))

03 – Hold Registers (Analog, error code 0x83)

04 – Input Registers (Analog, error code 0x84)

Inputs (Forced Connection List)

05 – Single Coil (Digital, error code 0x85)

06 – Single Register (Analog, error code 0x86)

15 - Multiple Coils (Digital, error code 0x8F)

16 - Multiple registers (Analog, error code 0x90)

Structures are sent according Motorola (MSB LSB or Big Endian) processor set.

For Read Connection list it’s possible to send with function 03 or 04 16 digital values mapped to one modbus
address. For each value specify the bitnumber within this address. (not for modicon addressing)

For more information reference the Modbus Specification PI_MBUS_300.pdf Revision A, See
[Link]

Shortcuts

Icon:

Place: Remote Data\


MBS – General Settings

Header settings

Field Options/Values and Function


Remote data Remote data being configured
Running on Server: Protocol runns on the Server as a Plug-in
Processor LXX (LBB-LBB): Protocol on Processor board
(L = Link, XX = Processor number, BB = Board number)
eq. Processor 203 (215-221)

Protocol settings

Field Options/Values and Function


Slave Slave number
1-255
(default 1)
Address Mode One of three options can be selected:
Value Function
Mapping Addresses are used on the serial line as configured
Mapping-1 Configured Addresses are used with a offset of - 1 to the serial line
eq. PAL 40001 -> Line 40000
Modicon Style MODICON Offsets are used for each modbus function
See Forced or Read Connection-list for offsets

(default Mapping)
Value 8000H Offset Selected zero point becomes 0x8000 (replaces sign bit) (default: deselected)
Inhibits Masks Alarm true: if channel is inhibited all alarm bits return zero irrespective their actual value
false: all alarm bits return actual value whether inhibited or not

Device settings

Field Options/Values and Function


Com Port Communication port which is used for communication.
1 till 20
(Default 2)
Baudrate Baudrate of the Com Port,
1200, 2400, 4800, 9600 or 19200
(default: 19200)
Databits Databits per byte used to communicate
8
(default: 8 (RTU))
Parity Parity used to communicate
NONE, ODD, EVEN, MARK, SPACE
(default: NONE)
Stopbits Stopbits per byte used to communicate
1, 2
(default: 1)

Timing settings

Field Options/Values and Function


Time to wait between Receiving complete query and processing and sending Answers.
Response time (ms) Needed if Modbus master needs time to switch handshaking.
(default: 100)
Master Time that has to expire before diagnostics are triggered, see Diagnostics.
disconnected - No communication, on serial line no bytes are received
timeout (ms) - No master query, no valid requests received since last answer send
time of 0 disables these diagnostics.
(default: 10000)
Inter Character Time allowed between received/send bytes, is not trustworthy on Server.
Length 0-10000 bits
(default: 3000)
Server is not trustworthy use value of 3000
Processor a lower value can be used eq 35 (3,5 charachterlength)

Remarks:
When protocol running on Processor only the com2 port can be used and is overruled in the board software.
When protocol running on Server a com port can only be used by one Application/Plug-in.

See also:

Modbus Slave Plugin


Modbus Slave Diagnostics
Modbus slave read connection list
Modbus slave forced connection list
MBS – Read Connection List

Column Options or Values


Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the
channel’s configuration form (status/value link)
Value or one of the status bits
Type Value, Very Low, Low, High, Very High, Sensfail, Average, Any Alarm, Inhibited, Skipped
(default depends on channel)
Scale value before send
Scale *1000, *100, *10, 1, /10, /100, /1000
(default 1)
Function number, like 01/02 or 03/04
Function
for MODICON addressing like 01, 02, 03 or 04
Address Address value
bit number, applies to function 03 or 04 with status connection only
Bit Nr. 00, 01 till 15
(default 00)

A modbus master receives channel information from the slave. (=Output List)

Sorting
By pressing on column “Channel” or ”Function” a sort action is performed, first time ascending second descending.

Addres field of actual message depends on Addres Mode, MBS - General Settings
Option Conversion
“Mapping / No Offset” straight copy of address
“Mapping / Offset - 1” address - 1
“Modicon Style” Function Conversion
01 address - 1
02 address - 10001
03 address - 40001
04 address - 30001

Tips: For fast channel configuration, configure the last line complete, press not enter at the last column, go back to
first column, give a channel range in (like 10101-10125) and press enter, now multiple rows are created!

See also:

Modbus Slave Plugin


Modbus slave forced connection list
MBS – Forced Connection List

Column Options or Values


Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the
channel’s configuration form (status/value link)
Type Value or one of the status bits (only “Low” is supported yet)
Scale Scale value after received
Function Function number, like 05/15 or 06/16
Address Address value
Bit Nr. bit number, status only

A modbus master send channel information to the slave. (=Input List)

By pressing on column “Channel” a sort action is performed, first time ascending second descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

Addres field of actual message depends on Addres Mode, MBS - General Settings
Option Conversion
“Mapping / No Offset” straight copy of address
“Mapping / Offset - 1” address - 1
“Modicon Style” Function Conversion
05/15 address - 1
06/16 address - 40001

Tips: For fast channel configuration, configure the last line complete, press not enter at the last column, go back to
first column, give a channel range in (like 10101-10125) and press enter, now multiple rows are created!

See also:
Modbus Slave Plugin
Modbus slave read connection list
MBS - Diagnostics

Diagnostics are used to report Failures or important statusses


the modbus slave plugin has the following diagnostics

MBS: RD(%RD32) ComPort Error

Diagnostic is generated when the comport can not be used, while active the plugin will try to open the
comport.

Solution: Configure an unused comport; Close application using comport or attach the USB device

(i) Only triggered on server


(i) Make sure you put the usb cable in the right usb connector, each connector has it's own Comport
MBS: RD(%RD32) Error of Receive of Master

Diagnostic is generated when runtime receives no reply from Modbus slave device

Solution: Check Modbus master if it generates messages correctly

MBS: RD(%RD32) Answer Not Transmitted

Diagnostic is generated when modbus slave receives data before an Answer can be made/send

Problem timing issue, Solution: change timing on Master/Slave side

MBS: RD(%RD32) No Communication

Diagnostic is generated when Modbus slave receives no data for a "Master disconnected timeout" time

Solution: check if all wires are correct from Modbus Master to Modbus slave

MBS: RD(%RD32) No Master Query

Diagnostic is generated when Modbus slave receives no requests for it's Slave Number for a "Master
disconnected timeout" time

Solution: check in Modbus master if data is retrieved from configured Slave number, or change Modbus
slave Slave number

Legend
Tag Replaced by
(RD%32) Remote data number eq. 31

See also:

Modbus Slave Plugin


Modbus slave general settings
MRU – Plugin

After selecting ‘Remote Data’ and MRU – RD xx

There are several items of this remote data:

1. MRU - General Settings

2. MRU - Connection List

3. MRU - Message List

MRU Protocol only receives binair messages

This communication protocol is associated with the 3DM-GX1™ Gyro Enhanced Orientation Sensor delivered by
MicroStrain.

Example of message:

Send Gyro-Stabilized Euler Angles & Accel & Rate Vector

Function: The 3DM-GX1™ will transmit the gyro-stabilized Euler Angles and the Instantaneous Acceleration
Vector and the drift compensated Angular Rate vector.

Number Description
Command Byte: 0x31
Command Data: None
Response: 23 bytes defined as follows
Byte 1 Header byte = 0x31
Byte 2 Roll MSB
Byte 3 Roll LSB
Byte 4 Pitch MSB
Byte 5 Pitch LSB
Byte 6 Yaw MSB
Byte 7 Yaw LSB
Byte 8 Accel_X MSB
Byte 9 Accel_X LSB
Byte 10 Accel_Y MSB
Byte 11 Accel_Y LSB
Byte 12 Accel_Z MSB
Byte 13 Accel_Z LSB
Byte 14 CompAngRate_X MSB
Byte 15 CompAngRate_X LSB
Byte 16 CompAngRate_Y MSB
Byte 17 CompAngRate_Y LSB
Byte 18 CompAngRate_Z MSB
Byte 19 CompAngRate_Z LSB
Byte 20 TimerTicks MSB
Byte 21 TimerTicks LSB
Byte 22 Checksum MSB
Byte 23 Checksum LSB

Euler

This is the set of three Euler angles (Pitch, Roll, and Yaw) which describe the orientation of the 3DM-GX1™ with
respect to the fixed earth. These angles are calculated according to the “ZYX” or “Aircraft” coordinate system.
Users should be aware that there are other valid formulations of Euler Angles that will yield different results. The
earth fixed coordinate system has X pointing North, Y pointing East, and Z pointing down. The Euler quantities are
derived from the Accel and MagField vectors, and therefore do not incorporate any gyroscopic stabilization. If the
3DM-GX1™ is exposed to linear accelerations, or magnetic interference, artifacts will be present. The Roll and
Yaw angles have a range of –32768 to +32767 representing –180 to +180 degrees. The Pitch angle has a range of –
16384 to +16383 representing –90 to +90 degrees. To obtain angles in units of degrees, the integer outputs should
multiplied by the scaled factor (360/65536).

The user should be aware that the Euler angle formulation in general contains a mathematical singularity at Pitch =
+90 or –90 degrees. In practice, poor numerical results will be present if the Pitch angle exceeds +/-70 degrees. In
applications where the Pitch angle cannot be guaranteed to exceed these values, it is recommended that the
orientation matrix output be utilized instead.

SMC2

The Ship Data is received at a message frequency of 100Hz +/- 1Hz, and at a timing interval (first byte of
successive messages) of 10ms +/-1 ms. This ensures a regular and consistent data input to the system.

The serial messages are sent at 38400 bps, 8 data bits, 1 start bit, 1 stop bit, even Parity. (total 11 bits per
character).
The interface will be receive-only. No software or hardware handshaking will be employed. Messages will be
checked on receipt for parity and credible data content.

Message Segment Byte Description Hex Remark


Header (32 Bits) SOH 0x01 Start of Header Byte
- Message Length 0x0D Remaining No. of Bytes to Follow
- Message Type 0x00 Message Code
- EOH 0x1E End of Header
1 - Data 32 Bits representing Ship’s (absolute) Pitch as a signed integer
+ive Pitch = Bow up;
Pitch Byte 1 LSB
-ive Pitch = Bow down.
See Note 1 for precision.
- Pitch Byte 2 - -
- Pitch Byte 3 - -
- Pitch Byte 4 MSB -
2 - Data 32 Bits representing Ship’s (absolute) Roll as a signed integer.
+ive Roll = Port up;
Roll Byte 1 LSB
-ive Roll = Port down.
See Note 1 for precision.
- Roll Byte 2 - -
- Roll Byte 3 - -
- Roll Byte 4 MSB -
3 - Data Invalidity byte flag:
Pitch Invalid - 0x00 = Valid;
0x01-0xFF = Invalid;
4 - Data Roll Invalid - -
Footer EOM 0x04 End of Message

NOTES
Note 1 : Pitch/Roll Value = 360/(232).
0 (0000000000 Hex) = 0 degrees
1 (0000000001 Hex) = +0.00000008382 Degrees
-1 (0FFFFFFFF Hex)= -0.00000008382 Degrees

HPR 400

Header Information
Index Content Size
000 Start character BYTE
001 Block length N WORD_16
003 Message type BYTE
004 Destination BYTE
005 Data Block with N bytes
N+5 Sumcheck WORD_16
N+7 Stop character BYTE

Start character The start character is 55 hex.

Block length The block length defines the length of the data block.

Message type The message type defines the message transmitted. It is a number between 1 and 255.

Destination The destination defines the device to which this telegram is transferred. It is not in use, and it is
always set to 0.

Data block The data block contains the message itself.


The length N depends on the Message type. The data block for the different message types are explained in the next
chapters.
Sumcheck The sumcheck is the 16 bit sum of all bytes in the telegram, except the sumcheck itself and the stop
character. The sum is calculated by byte+byte addition.

Stop character The stop character is equal to 0AAH.

Transponder position data


The position message telegram contains SSBL transponder position data and sensor data related to the position
measurement. It is transmitted each time a new position is calculated.

Data Block of Message 1


Nr Block content Size
1 Tp_index WORD_16
2 Operation_mode BYTE
3 Sync_mode BYTE
4 Tp_type BYTE
5 Tp_operation BYTE
6 Pos_data_form BYTE
7 Reply_status BYTE
8 Filt_X_pos REAL
9 Filt_Y_pos REAL
10 Filt_Z_pos REAL
11 X_pos REAL
12 Y_pos REAL
13 Z_pos REAL
14 Slant_range REAL
15 P_course REAL
16 P_roll REAL
17 P_pitch REAL
18 Td_beam BYTE
19 Td_type BYTE
20 Td_num WORD_16
21 Diagnostic WORD_16
22 Stand_dev REAL
23 Instr_data (*) REAL

LBL position

The LBL position telegram contains a position relative to the origin of the Tp array.
The position is of the vessel or of another object.
The telegram is transmitted each time a new position is calculated.
If the Transponder array is north oriented, the coordinates are relative to true North, else they are relative to local
north.
Data Block of Message 2
Nr Block content Size
1 Sequence_number WORD_16
2+3 Time_header (7)* BYTE
4 Interrogation_age WORD_16
5 Tp_array BYTE
6 Td_num BYTE
7 Pos_east REAL_64
8 Pos_north REAL_64
9 Depth REAL
10 Hor_err_ellipse_direction REAL
11 Hor_err_ellipse_major REAL
12 Hor_err_ellipse_minor REAL
13 Z_standard_deviation REAL
14 Pos_type BYTE
15 Pos_status BYTE
16 P_course REAL
17 P_roll REAL
18 P_pitch REAL
19 Diagnostic WORD_16
*splitted into date and time

LBL Ranges

The LBL_ranges message contains raw measured ranges to the transponders, and VRU and compass data.
This Message is transmitted just after the Message 2 (LBL position).
The two messages have the same sequence number.

Data Block of Message 4


Nr Block content Size
1 Sequence_number WORD_16
2..9 Range_age (8) BYTE
10 Tp_array BYTE
11 Td_num BYTE
12 Operation_mode BYTE
13 Sync_mode BYTE
14 Pos_type BYTE
15..22 Reply_status (8) BYTE
23..30 Range (8) BYTE
31 P_course REAL
32 P_roll REAL
33 P_pitch REAL
34 Diagnostic WORD_16
EM3000

The EM3000 format consists of a fixed length message using single byte unsigned, 2-byte unsigned and 2-byte two
complement integer data elements. For the 2-byte elements, the least significant byte is transmitted first.
Data sent:
Roll
Pitch
Heave
Heading (SMC output 0)

Nr - Element Scaling Format Bytes Value


1 - Status byte - Unsigned 1 -
Header - Unsigned 1 90 Hex
2 - Roll 0.01 degrees Integer 2 -17999 to 17999
3 - Pitch 0.01 degrees Integer 2 -17999 to 17999
4 - Heave 1 cm Integer 2 -999 to 999
5 - Heading 0.01 degrees Unsigned 2 SMC output 0

Roll is positive with port side up. Pitch is positive with bow up. Heave is positive up.
The status byte information:
Value Interpretation
90 Hex Normal mode
91 Hex Unsettled mode

Shortcuts

Icon:

Place: Remote Data\


MRU – General Settings

Setting Description Default

Com Port Comport to use (1-16) 1

Baudrate Communication Speed


38400
(1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200)

Data Bits Number of Data bits (7, 8) 8

Parity Communication Parity


None
None, Odd, Even

Stop Bits Number of Stop Bits (0, 1, 2) 1

Time Out Minimal Time between two messages before reporting an error
1000
(50-100000 in milli-seconds

Number Of Retries amount of retries before reporting an error (0..7) 1

Type Protocol MRU, SMC2, HPR3000 or EM3000 MRU

See also:

MRU Plugin
MRU – Connection List

From the current selected row message definition is shown.

Field Description
Number, row number
Nr of definiton Number, see Message List
Nr In Message values are separated by commas, this number gives position in the message
Channel Channel to retrieve Value from (Analog in)
eq. Leaving field empty, this will delete entry
EU/1000 Channel Value is stored as value*1000

Example of SMC2

For HPR-300

Nr Of Definition Nr in Message
1 1 - 23 + Time Stamp
2 1 - 19 + Time Stamp
4 1 - 34 + Time Stamp
Example of EM3000

See also:

MRU Plugin
MRU – Messages List

Field Description
Nr row index of this grid, this number will be used in connection list
Message indentifier of message which will be received and handle by this plugin
Return Msg Size number of bytes of the message
TimeStamp message contains timestamp or not (1 or 0)
Checksum message contains checksum or not (1 or 0)
Description commentary on message for documentation only

Example of SMC2:

Example of HPR 300:

Example of EM3000:

See also:

MRU Plugin
MTUS – Plugin

After selecting ‘Remote Data’ and MTUS – RD xx

There are several items of this remote data:

1. MTU – Blocks and Timing


2. MTU – Protocol List
3. MTUS - General Settings
4. MTUS - Connection List

MTU stands for Motors- and Turbines-Union.

S for Slave.

Communication is Full Duplex over a serial line both systems are sending and receiving data in cycles.

Send cycle is independent of receive cycle.

Cycles consist of a number of blocks being transmitted/received.

Block is a Message send over the serial line in the Motorola storage format (MSB … LSB)

Block Type:

03 Analog measurement value block


02 Binary measurement value block
01 Request block

Request Block

Start_1 Start_2 Block_No Block Type Frame Size Checksum End_1 End_2
(1 byte) (1 byte) (2 bytes) (2 bytes) (4 bytes) (4 bytes) (1 byte) (1 byte)

Example 1: Request Block

FA Start 1

F5 Start 2

00 00 Block_No: Request block

00 01 Block Type: Request block

00 00 00 10 Frame size 16 (=size of entire message, no data)

00 00 02 00 Checksum

AF End 1

5F End 2

Analog Measurement Value Block


Start_1 Start_2 Block_No Block Type Frame Size [Link](s) Checksum End_1 End_2
(1 byte) (1 byte) (2 bytes) (2 bytes) (4 bytes) (m*4 bytes) (4 bytes) (1 byte) (1 byte)
m = number of measurement values

Example 2: Analog Measurement Value Block

FA Start 1

F5 Start 2

00 01 Block_No: 1

00 03 Block Type: Analog values

00 00 00 20 Frame size 32 (=4 Analog Values)

00 06 B1 27 Value 438567

00 0E D6 7A Value 972410

00 00 C4 A4 Value 50340

00 00 3A B8 Value 15032

00 00 06 A9 Checksum

AF End 1

5F End 2

Digital Measurement Value Block

Start_1 Start_2 Block_No Block Type Frame Size [Link] Checksum End_1 End_2
(1 byte) (1 byte) (2 bytes) (2 bytes) (4 bytes) (m*1 byte) (4 bytes) (1 byte) (1 byte)
m = number of measurement values

Shortcuts

Icon:

Place: Remote Data\


MTUS – General Settings

Setting Description
Communication port which is used for sending the output
Com Port No other plug-in must use the same COM port (only if plugin is on
running on server)
Settings Fix settings, Baudrate = 9600, Databits =8, Stopbits = 1,Parity = None
Selected Classifiable or Standard (default: Classifiable)
Synchronize MTU EU Settings to Synchronize channels with settings from Protocol list
channels (Synchronize button in connection list has to be used to update channels):

Engineering unit range low


Engineering unit range high
Engineering unit
Description

See also:

MTUS Plugin
MTU – Blocks and Timing

- Block Block Number, 1..8


- Direction Direction of block Send / Receive
- Type Type of Block

Send block timeout: Time between start of send cycle

Receive block timeout: Time between start of receive cycle

Time between blocks: Time between blocks (Send and/or receiving)

See also:

MTUS Plugin
MTUS – Connection List

Setting Description
Channel to receive/send the data
Channel Type in an existing digital/analog channel number,
or get here from the channel’s configuration form (status/value link)
Block Block where value is stored in
Index Index in block where value is stored
Description Description of value
EU Low Engineering unit range low
EU High Engineering unit range high
Units Engineering units
Scaling Scaling factor between send/received value and EU Value

By pressing on column “Channel” or “Block” a sort action is performed, first time ascending second descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

See also:

MTUS Plugin
MTU – Protocol List

Setting Description
Block Block where value is stored in
Index Index in block where value is stored
Description Description of value
EU Low Engineering unit range low
EU High Engineering unit range high
Units Engineering units
Scaling Scaling factor between send/received value and EU Value

It is not possible to change standard protocol list.

See also:

MTUS Plugin
NMEA – Listener Plugin

After selecting ‘Plugins’ and NMEA Listener – RD xx

There are several items of this plugin:

1. NMEA in - General Settings

2. NMEA in - Connection List

3. NMEA - Message List

Protocol Description

Based on

- Standard IEC 1162-1 (DIS 80/105/DIS) based on

- NMEA 0183 version 2.01

Sentence going over the Serial line:

$aaccc,c---c*hh<CR><LF>

Sentence description

$ Start of sentence, Start delimiter


HEX: 24
Aa Address field, Talker ID
P means custom message Mnemonic can take up to 7 characters
Ccc fields Address field, Sentence formatter mnemonic:
Identifying the data type and string format of the successive fields.
Mnemonics will be used as far as possible to facilitate read-outs by users.
, Field Delimiter
Starts each field except Address and checksum fields.
HEX: 2C
c---c Data sentence block:
Follows address filed and is a series of data fields containing all of the data to be transmitted. Data field
sequence is fixed and identified by third and subsequent characters of the address field (Sentence
formatter) Data fields may be of variable length and are preceded by delimiters “,”.
Checksum Delimiter (Optional)
Follows last data field of the sentence it indicates that the following two alphanumeric characters show
the HEX value of the checksum.
HEX: 2A
Hh Checksum field (Optional)
The absolute value calculated by exclusive-OR’ing the eight data bits of each character in the sentence,
between, but excluding “$” and “*”. The hexadecimal value of the most significant and least significant
four bits of the result is converted to two ASCII characters (0-9, A-F) for transmission. The most
significant character is transmitted first. The checksum field is optional, except when indicated as
mandatory.
<CR><LF> End of Sentence:
Sentence terminating delimiter
HEX: 0D 0A

Field types (Supported)

[Link] Latitude
Degrees, Minutes and Decimal – two fixed digits of degrees, two fixed digits of minutes and a
variable number of digits for decimal fraction of minutes. Leading zeros always included for
degrees a minutes to maintain fixed length. The decimal point and associated decimal fraction are
optional if full resolution is not required.
[Link] Longitude
See Latitude
[Link] Time
Hours/Minutes/Seconds and decimal - two fixed digits of hours; two fixed digits of minutes; two
fixed digits of seconds and a variable number of digits for decimal fraction of seconds. Leading
zeros always included for hours; minutes and seconds to maintain fixed length. The decimal point
and associated decimal fraction are optional if full resolution is not required.
b Binair Value 0 or 1
bbbb Binair Packed Value, do not use more than 32 b's (32 bits value)
h Hexadecimal Value 0..F
hhhh Hex Packed Value, do not use more than 8 h's (32 bits value)
x Value with whole numbers
x.x Value with fraction
[Link] Latitude high resolution
[Link] Longitude high resolution

cx extended value splitted into two values,


example: T1, value1 = T, value2 = 1
xc extended value splitted into two values,
example: 1T, value1 = 1, value2 = T
cxi extended multiple values with input-buffer splitted into two values
example: B1, B2, B5, value1 = B / value2 = 1 or 2 or 5
xci extended multiple values with input-buffer splitted into two values
example: 1B, 2B, 5B, value1 = 1 or 2 or 5 / value2 = B
xi extended multiple value with input-buffer splitted into one value
example 1, 2, 5, value1 = 1 or 2 or 5

Icon:
Place: Plugins\
NMEA in – General Settings

Com Port Communication port which is used for sending the output. No other plug-in must have the same COM
port (only if plugin is on running on server)

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Time Out 200-300000 millisec Timeout between NMEA Messages (default: 2000)

See also:

NMEA Listener Plugin


NMEA in – Connection List

Field Description
Channel Channel to receive/send the data; type in an existing digital/analog channel number, or get here from
the channel’s configuration form (status/value link)
Formatter Formatter from configured NMEA Message List
Value
Position number in message, like 01,02,03 or 04
Position
Eng. Unit Channel where to send/receive its value
[10101-49668] (Configured Analog in; Digital in; Analog out; Digital out)
Selector
Multiple Message identifier 1, See: Special Codes
1
Selector
Multiple Message identifier 2, See: Special Codes
2
Time Out Update Time between two Updates of one message, 1000-25500 msec, 0=No Timeout, (if this time is
passed a sensor failure on input channel will be triggered when configured )

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

For Special Codes see:

NMEA in Message List

For Character Engineering Unit Code see:

NMEA Listener Plugin


NMEA in – Messages List

Field Description
Formatter Formatter NMEA Message List
Sentence Sentence Description
See: Character Engineering Unit Code
See: Special Codes

Special codes

>x;y Select from list (x or y) (eq E or W)

># Select Number (0-9) (eq 0 or 8)

-x x means negative value else positive for previous value

(eq S)

For Character Engineering Unit Code see:

NMEA Listener Plugin


NMEA – Talker Plugin

After selecting ‘Remote Data’ and NMEA Talker – RD xx

There are several items of this remote data:

1. NMEA out - General Settings

2. NMEA out - Connection List

3. NMEA out - Message List

Protocol Description

Based on

- Standard IEC 1162-1 (DIS 80/105/DIS) based on

- NMEA 0183 version 2.01

Sentence going over the Serial line:

$aaccc,c---c*hh<CR><LF>

Sentence description

$ Start of sentence, Start delimiter


HEX: 24
Aa Address field, Talker ID
P means custom message Mnemonic can take up to 7 characters
Ccc fields Address field, Sentence formatter mnemonic:
Identifying the data type and string format of the successive
, Field Delimiter
Starts each field except Address and checksum fields.
HEX: 2C
c---c Data sentence block:
Follows address filed and is a series of data fields containing all of the data to be transmitted. Data
field sequence is fixed and identified by third and subsequent characters of the address field (Sentence
formatter) Data fields may be of variable length and are preceded by delimiters “,”.
Checksum Delimiter (Optional)
Follows last data field of the sentence it indicates that the following two alphanumeric characters
show the HEX value of the checksum.
HEX: 2A
Hh Checksum field (Optional)
The absolute value calculated by exclusive-OR’ing the eight data bits of each character in the
sentence, between, but excluding “$” and “*”. The hexadecimal value of the most significant and
least significant four bits of the result is converted to two ASCII characters (0-9, A-F) for
transmission. The most significant character is transmitted first. The checksum field is optional, except
when indicated as mandatory.
<CR><LF> End of Sentence:
Sentence terminating delimiter
HEX: 0D 0A
Field types (Supported)

x Value with whole numbers


x.x Value with fraction

Shortcuts

Icon:

Place: Remote Data\


NMEA out – General Settings

Com Port Communication port which is used for sending the output. No other plug-in must have the same COM
port (only if plugin is on running on server)

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Data Bits Number of Data bits of Com Port, 7or 8

Parity Kind of Parity of Com Port, like None, Odd or Even

Stop Bits Number of Stop Bits of Com Port, 1 or 2

Interval Time between Messages Minimal Time to wait between two NMEA messages (in milli-seconds)

See also:

NMEA Talker Plugin


NMEA out – Connection List

From the current selected row message definition is shown.

-Type in Channel Number where value is coming from, like 10560

-Type characters in variable text fields

Field Description
Formatter Formatter from configured NMEA Message List
Value (Channel Channel to receive/send the data; type in an existing digital/analog channel number, or get here from
or Text) the channel’s configuration form (status/value link)

Example with alarm list

next options are available:


.Desc
.Tag
.LimL
.LimH
.Time
remark: these options are case sensitive

See also:

NMEA Talker Plugin


NMEA out – Messages List

For learning purposes four NMEA messages are default created.

Field Description
Nr Line number of all messages or message number
Formatter Formatter NMEA Message List
Sentence Sentence Description
Description Information about this message

Special codes

>x;y Select from list (x or y) (eq E or W)

># Select Number (0-9) (eq 0 or 8)

-x x means negative value else positive for previous value

(eq S)

Remove the messages if you don’t want to use then. After that insert de message(s) you like to use.

A NMEA message exits of formatter (header of message) and sentence which contains channel value(s) and/or characters
which are separated by a comma.

Formatter start usually with two - which are known as “don’t cares” (Like --DBK).

More about Sentence:

-x.x one channel value, like 10101, variable width

-xxxx.x one channel value, like 10101, fixed width

-cc two variable characters like mA

-xb1..xb8 status packed (VDR) with a maximum of (8*4 =) 32 channel statuses

-M, f, F a fixed character

Example of AlarmList;
Be aware 'A' will be channel status: A = exceeded (alarm/on) and V = not exceeded (normal/off)

See also:
NMEA Talker Plugin
General information OPC
Terms used:
OPC Item Process value.
OPC group Collection of OPC Items that are accessed at the same time.
OPC Client Application that uses process values
OPC Server Application that supplies access to process values

Technology
OPC is a technology to access Process data. The client Server model is used, so a distributed control network can
be established. The communication between the client and server is standardized so interoperability is possible.

OPC clients connect to the OPC server to access the process values, process values can be read and written.

OPC Servers provide Process data retrieved from computer memory; PLCs or other devices, on Process Value
changes the clients who registered the OPC Item will get an update.

General information OPC OPC Client


OPC Client

Requirements:
1. OPC Server must be OPC DA 2.05 Compatible.
2. Runs on the Marine PC
3. OPC Core Components run on Local Machine
4. OPC Enumerator runs on Target Machine

Read the Installation Instructions when OPC Client is used for the first time.

For more information reference "OLE for Process Control Data Access Custom Interface Standard Version 2.0 (Release Candidate 5)" April
10, 1998 opcda205_cust.pdf, See [Link]

Plugin buildup:
The plugin consists of:

PAL Configuration part


IOServer Plugin Runtime

PAL Plugin Configuration:


Inserting Plugin:

After selecting 'Remote Data' and OPC - RD xx In field filename enter [Link] The plugin shows the following
Tree items:

After configuring groups additional Tree items are shown:

There are several tree items of this plugin:

1. OPC - Server Settings to configure server settings and functionality


2. OPC - Group Overview to assign Goups to OPC Groups that are created on the server
3. OPC - Connection List [xx-yy] to assign channels to the OPC Items

IOServer Plugin Runtime:


Plugin startup:

retrieves the configuration from the config database

The runtime:

States:
Connect
Connect to OPC Server
Creates OPC Groups
Creates OPC Group Items
Register OPC Item updates (on change)
Exchange
Write values
Process changed values
disconnect
Unregister OPC Item updates (on change)
Delete OPC Group Items
Delete OPC Groups
Disconnect to OPC Server
Reconnect
Reconnect after opc server shutdown

Common functionality:

Update diagnostics
Watchdog to see if Runtime is running at the expected rate

Special functionality:

Resend All

Plugin shutdown:

Remove configuration.

Diagnostics:

OPC: RD(%RD32) Server disconnected


OPC Server is down; unreachable or being connected to.

OPC: RD(%RD32) Server shutdown


OPC Server is shutdown for maintainance

OPC: RD(%RD32) Server Busy


OPC Server is Busy, not responded in Busy Timeout.

See also:
General information OPC OPC Client
OPC Client Forms Server Settings Group Overview Connection List
Appendix A:Value Conversion
Appendix B:RSLinx OPC Server
Appendix C:Installation
OPC Functionality
OPC Functionality does OPC Related Special Functionality:

Resend All

Functionality has Inputs or Outputs that can be:

(none)
Channel
Constant
OPC Item

Depending on the configuration of the functionality certain IO options are disabled.


Column Description
Tag Functionality Tag describing IO
Input or
IO
Output
(none)
Channel
ConnType
Constant
OPC Item
Channel number
Reference Constant Value
OPC Item
boolean
ValType double word
double

Resend All Functionality

Brief:

After a trigger send all Written data anew to OPC Server and give feedback when completed.

Requirements before functionality works:

Configure Trigger
Configure Timeout
Configure PulseTime

Description:
After a UP Edge of input 'Trigger' of the IO, input 'Timeout' and 'PulseTime' are latched
Output 'In Progress' goes HIGH
All OPC Items in all configured OPC Groups, that are configured as writeable, are written
When Writing is finished in the Timeout value, Output 'Feedback' goes HIGH, Output are 'In Progress' goes
LOW
When Writing isn't finished in the Timeout value, Output 'Failed' goes HIGH, Output are 'In Progress' goes
LOW
After the 'PulseTime' is expired the 'Feedback' or 'Failed' output goes LOW
Before a new Trigger is detected the 'Trigger' input needs to be seen LOW, continue on top of the list.

Name Input Description ConnType


Output
Trigger Input Triggers functionality, UP Edge Triggered Channel
OPC Item
Feedback Output High when All Data is written successfully (none)
Channel
OPC Item
Timeout Input Time out value (ms) between trigger and Failure output Channel
Constant
OPC Item
InProgress Output High when Functionality is in progress (none)
Channel
OPC Item
Failed Output High when Failed to send all Write opc items OR Timeout (none)
Channel
OPC Item
PulseTime Input Timespan (ms) that Outputs are High Channel
Constant
OPC Item

See also:
General information OPC OPC Client
OPC Client Forms Server Settings Group Overview Connection List
Installation Instructions
Installing on a Clean Marine PC
The Following steps need to be done:

A. Install Ship Automation System on Local Machine


- Follow instructions in Installation Guide

Upgrading on a Marine PC
The Following steps need to be done:

1. Upgrade Ship Automation System on Local Machine


- Follow instructions in Installation/Upgrade Guide

2. OPC Core Components run on Local Machine


- Install by clicking on "OPC Core Components 2.00 Redistributable [Link]"
- Follow instructions on screen

3. OPC Enumerator runs on Target Machine


- Install by clicking on "[Link]" - Follow instructions on screen

Make sure OPC Enum Service runs in same account as the Ship Automation Software.

4. Install OPC Server on Target Machine


- Follow instructions delivered by OPC Server

Make sure OPC Server runs in same account as the Ship Automation Software.
Make sure OPC Server supports OPC DA 2.05

See also:
General information OPC OPC Client
OPC Client Forms Server Settings Group Overview Connection List
OPC client form server settings

The form is used to define the server and client to server connection behaviour.
Also OPC Functionality is defined here.

Setting Description
Server Machine where OPC Server(s) resides.
Empty means local machine. (Needed for OPC Servers that don't accept remote
connections)
OPC Server Name of OPC Server (Dropdown shows some examples)
Reconnect time When an OPC Server communication failure occurs the Client disconnects,
after the reconnect time the OPCServer is connected again.
Shutdown reconnect When an OPC Server shuts down for maintainance the Client disconnects,
time after the shutdown reconnect time the OPCServer is connected again.
Busy time OPC Client get server state 10 times per second, when OPC Server is busy it will not
respond.
Here a time can be given so that a Busy diagnostic is triggered.
Busy disconnect time When an OPC Server is busy the cause can be network failure,
here a timeout can be given after which the OPC Client disconnects.

See also:
General information OPC OPC Client
OPC Client Forms Server Settings OPC Functionality Group Overview Connection List
OPC client form group overview
The form is used to add/remove/modify Group assignments to OPC Groups.

Column Description
Nr Group Number
Group Group used to supply channels from.
'(none)' means the channels can be retrieved from the entire system.
Description Brief description of group (used in group connection-list tree items)
Update Time Time between updates
Deadband Percentage Deadband of full scale EU Range, before values are send.
Active Group is active in Client Group is not used in runtime

See also:
General information OPC OPC Client
OPC Client Forms Server Settings Group Overview Connection List
OPC client form Connection list

The form is used to assign/remove or modify channel connections to OPC Items.

Setting Description
ChannelO Channel to receive/send the data; type in an existing digital/analog channel number, or get here from
the channel’s configuration form (status/value link)
OPC
ID of OPC Item to retrieve values from
Item
Access OPC Servers can supply multiple ways to retrieve data, here a fixed route can be selected.
Path ‘(none)’ means the OPC Server may decide how to retrieve the data.
Type Data type to retrieve value in.
Subtype Description

Boolean Contains either True or False.

Byte Contains integer in the range 0 to 255.

Integer Contains integer in the range -32,768 to 32,767.

Long Contains integer in the range -2,147,483,648 to 2,147,483,647.

Single Contains a single-precision, floating-point number in the range -


3.402823E38 to -1.401298E-45 for negative values; 1.401298E-45 to
3.402823E38 for positive values.

Double Contains a double-precision, floating-point number in the range -


1.79769313486232E308 to -4.94065645841247E-324 for negative
values; 4.94065645841247E-324 to 1.79769313486232E308 for
positive values.

Write Data is written from Client to Server Data is read from Server to Client

The Online button is used to retrieve the OPC Items 'live' from the OPC Server, afterwards the OPC Item can be
selected from a drop down list.

See also:
General information OPC OPC Client
OPC Client Forms Server Settings Group Overview Connection List
Appendix A:Value Conversion
OPC client process value conversions
The OPC Client has to convert the Variant (Process Value from OPC Server) to/from a channel value.

Channel value have a limited range, so certain values are not allowed.
Out of range values are not updated to the Channels.

Read conversions (1 decimal)


Type Range low Range High Channel EU Low Channel EU High Connection
Boolean 0 1 Normal Low Alarm STATUS

-3.402823e 38 to 1.401298e -45 to


Single -214,748,364.8 214,748,364.7 VALUE
-1.401298e -45 3.402823e 38
-1.797693134862 4.9406564584124
Double 32e 308 to -4.9406 7e -324 to 1.79769 -214,748,364.8 214,748,364.7 VALUE
5645841247e -324 313486232e 308
Read conversions (3 decimals)
Type Range low Range High Channel EU Low Channel EU High Connection
Boolean 0 1 Normal Low Alarm STATUS

-3.402823e 38 to 1.401298e -45 to


Single -2,147,483.648 2,147,483.647 VALUE
-1.401298e -45 3.402823e 38
-1.797693134862 4.9406564584124
Double 32e 308 to -4.9406 7e -324 to 1.79769 -2,147,483.648 2,147,483.647 VALUE
5645841247e -324 313486232e 308

Write conversions (1 decimal)


Channel EU Low Channel EU High Connection Type Range low Range High
Normal Low Alarm STATUS Boolean 0 1

-3.402823e 38 to 1.401298e -45 to


-214,748,364.8 214,748,364.7 VALUE Single
-1.401298e -45 3.402823e 38
-1.797693134862 4.9406564584124
-214,748,364.8 214,748,364.7 VALUE Double 32e 308 to -4.9406 7e -324 to 1.79769
5645841247e -324 313486232e 308
Write conversions (3 decimals)
Channel EU Low Channel EU High Connection Type Range low Range High
Normal Low Alarm STATUS Boolean 0 1

-3.402823e 38 to 1.401298e -45 to


-2,147,483.648 2,147,483.647 VALUE Single
-1.401298e -45 3.402823e 38
-1.797693134862 4.9406564584124
-2,147,483.648 2,147,483.647 VALUE Double 32e 308 to -4.9406 7e -324 to 1.79769
5645841247e -324 313486232e 308
Notes:
Single values use:

23 bits for the fraction value


8 bits for signed exponent
1 bit for the sign

Unscaled whole values: -16,777,216 to 16,777,215

Double values use:

52 bits for the fraction value


11 bits for signed exponent
1 bit for the sign

Unscaled whole values: -9,007,199,254,740,991 to 9,007,199,254,740,990

See also:
General information OPC Client
OPC Client Forms Connection List
Appendix A:Value Conversion
SIM – Simulation Plugin

After selecting ‘Remote Data’ and SIM – RD xx

There are several items of this remote data:

1. SIM - General Settings

2. SIM - Connection List

The Simulation DLL can be used for demo purpose to show Graphic and Monitoring Windows software with
dynamic values. The channels have to be configured on board 80 of link 0, in range 0 to 19.
Each channel has to be configured as a remote data channel.

See next table for exact channel information:

UpDownRamps:

Channel Scanrate RangeMin RangeMax Step Init InitUpOrDown


8000 360 ms 650,00 850,00 0,8000 790,000 UP
8001 334 ms 325,00 425,00 0,4000 395,000 DOWN
8002 242 ms 26,00 34,00 0,0320 32,160 UP
8003 1200 ms 2,60 3,40 0,0032 3,224 DOWN
8004 180 ms 1,30 1,70 0,0080 1,616 UP
8005 190 ms 0,65 0,85 0,0040 0,792 DOWN
8006 200 ms 475,45 634,05 3,1720 589,642 UP
8007 210 ms 51,00 79,00 0,5600 71,440 DOWN

Ramps:

Channel Scanrate RangeMin RangeMax Step Init


8008 150 ms 450,00 550,00 0,5000 500,000
8009 200 ms 225,00 275,00 0,2500 250,500
8010 250 ms 18,00 22,00 0,0200 20,080
8011 1500 ms 1,80 2,20 0,0010 2,012
8012 111 ms 0,90 1,10 0,0022 1,008
8013 200 ms 0,45 0,55 0,0010 0,505
8014 227 ms 321,35 401,65 0,7300 366,318
8015 229 ms 23,00 37,00 0,1167 30,980

Digital:

Channel Init TimebeforeOn (Sec) TimebeforeOff (Sec)


8016 ON 100 1
8017 OFF 200 10
8018 ON 20 120
8019 OFF 10 10

Legend:

Item Description
Channel Channel number in the Virtual board
Scanrate Time before a new value is generated
RangeMin Lowest Engineer uint value generated
RangeMax Highest Engineer uint value generated
Step Value increments per scanrate
Init Initial value
InitUpOrDown Initial direction of value
TimeBeforeOn Time the value is low before going high
TimeBeforeOff Time the value is high before going low

Steps to take for configuration:

1. In PAL, setup virtual board 80 (see "Virtual" branch in the "System Parameters" branch)
2. Setup channel 8000 to 8015 as Analog Input, Remote Data, take ranges from above table,
3. Setup channel 8016 to 8019 as Digital Input, Remote Data.
4. Use the channels in mimics and alarms as you whish.
5. Add Remote Data [Link]

See next picture for Virtual board 80:


Shortcuts

Icon:

Place: Remote Data\


SIM – General Settings

Not implemented yet!

See also:

Simulation Plugin
SIM – Connection List

A channel list which can't be changed.

See also:

Simulation Plugin
SystemIO – System Input/Output Plugin

After selecting ‘Remote Data’ and SystemIO – RD xx

There are several items of this remote data:

1. SystemIO - General Settings

2. SystemIO - Connection List

3. SystemIO – UPS List

Shortcuts

Icon:

Place: Remote Data\


SystemIO – General Settings

Refresh Rate 200-300000 millisec (default: 1000)

See also:

SystemIO Plugin
SystemIO – Connection List

Field Description
Channel Channel to receive/send the data
Type in an existing digital/analog channel number,
or get here from the channel’s configuration form (status/value link)
Direction points out, which side data is flows
Function Function, like Attended Output, Group, etc.
Data Function data, like group number or diagnostic number

By pressing on column “Channel” or “Direction” a sort action is performed, first time ascending second
descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

For Direction <-

Attended input
UnAttended input
Reset Timer
GEA Input
Key Switch / Timer Off
Reset GEA Input
Acknowlegde Input
Stop Horn Input
Stop Horn1 Input
Stop Horn2 Input
Select Engineer On Duty
Start Stop Patrol Timer
Bridge Calls Cabin:
ECR Calls Cabin:
Bridge Calls All
ECR Calls All

For Direction ->

Attended Output
UnAttended Output
Timer Expired Output
GEA or DeadMan Output
Horn 1 Output
Horn 2 Output
Group alarms
Diagnostic
Group acknowledged alarms
Group not acknowledged alarms
Server Ack
Server Stop Horn
Server Ack + Stop Horn
Hourcounter
Current GMT Time
DeadMan Output
GEA Output
Timer On Output
Hourcounter (seconds)
Hourcounter (minutes)
Hourcounter (hours)
On Duty Selection
Along Side Output
Sailing Output
Output Bridge Calls Cabin:
Output ECR Calls Cabin:
Output Bridge Calls All
Output ECR Calls All

See also:

SystemIO Plugin
SystemIO – UPS List

Field Description
Channel Channel to receive/send the data; type in an existing digital/analog channel number, or get here from
the channel’s configuration form (status/value link)
Message message description of UPS status
Client
Computer name
Name

By pressing on column “Channel” a sort action is performed, first time ascending second descending.

See also:

SystemIO Plugin
TankCalc – Tank Calculation Plugin

After selecting ‘Remote Data’ and TankCalc – RD xx

There are several items of this remote data:

1. TankCalc - General Settings

2. TankCalc - Connection List

This Remote Data is a plugin that does the following functions:

Retrieve sounding tables from a predefined location on the system


Read trim, list and sounding data from channels
Convert sounding data to tank contents according the tables
Place tank contents into channels

Tank Table = An Excel .xls file containing the sounding data for one tank.

TANK TABLES

For each tank a separate xls file must be present with extension “xls” in the native Excel file format, located
in an appropriate folder.
For each list a separate sheet must exist with as name the corresponding list value in ‘floating point’
notation; e.g. “-1.200” (not the quotes!).

Any number of sheets is allowed.

Sheet order is not important; keep it in ascending list value order for clarity.
If list correction is not used, only one sheet should be present; its name is irrelevant.
Per sheet:
Don’t use any headers; all formatting/styling is allowed.
All cells holding a value should be of type ‘number’ and hold a floating point value.
The first row holds the trim values in ascending order on each alternate column; start from ‘B1’.
The first column holds the measurement values (sounding/pressure), related to the first trim value, in
ascending order; start from ‘A2’.
The second column (below first trim value) holds the corresponding contents values (volume); start
from ‘B2’.
The third column holds the measurement values, related to the second trim value; start from ‘C2’.
The fourth column (below second trim value) holds the corresponding contents values; start from ‘D2’.
Etc.
Any dimension is allowed; but all columns, must have the same length per sheet (repeating the last
sounding-volume pair if needed).
example:

If trim correction is not used, only one measurement column and one corresponding contents column
should be present; its trim value is irrelevant, but still start from row 2 (A2-B2)!

Shortcuts

Icon:

Place: Remote Data\


TankCalc – General Settings

Refresh Rate update time for all tanks; 2000-300000 millisec (default: 5000)
Folder folder path, path were all tanks tables are stored; if left empty each table can have its own specific
(browse) path (default: empty)
when only tables (Excel xls spreadsheet files) are changed, press this button to ensure they are
Update Tank reloaded by the run-time; the button is dimmed if reloading will already take place
Tables minimum difference in value before a new calculation is performed; 0.1-20000.0 (default: 0.1)
scale factor from channel to tank table; “/1000” – “*1000” (default: “/1000”)
scale factor from tank table to channel; “*1000” – “/1000” (default: “*1000”)
Deviation select if trim correction is to be performed; if off but table still holds trim data, trim = 0 is
presumed; if on but table holds no trim data, trim settings are ignored (default: off)
Scale ->table select if list correction is to be performed; if off but table still holds list data, list = 0 is presumed; if
on but table holds no list data, list settings are ignored (default: off)
Scale - input channel; 10101-49668, if left empty the corresponding selection is forced to off (default:
>channel empty)
for input channel and tank tables the sign can be defined
TRIM forepeak / starboard up = negative value
forepeak / starboard up = positive value (default)

LIST

Channel

Sign
Definition
Channel/Table

Channel/Table
+

See also:
Tank Calculation Plugin
TankCalc – Connection List

Field Description
Channel Channel to receive the calculated tank contents, type in an existing analog channel number or get here
from the channel’s configuration form value link
Tank Name of the Excel .xls file with the tank sounding data with or without a preceding path, “.xls” must
File be present; it is appended to the folder path entered on the General Settings form, if selected with the
(browse) browse button, the complete path is set when the folder on the General Settings form was left empty;
just the filename only is set if a folder path was entered
Input
Channel which holds the sounding value, type in an existing analog channel number
Channel

By pressing on column “Channel” or “Tank File” or “Input Channel” a sort action is performed, first time
ascending second descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value
link)

See also:

Tank Calculation Plugin


TCP/IP – Plugin

After selecting ‘Remote Data’ and TCP/IP– RD xx

There are several items of this remote data:

1. TCP - General Settings

2. TCP - Connection List

3. TCP - Message List

Protocol Description

Three types are support yet:


TCP/IP – Type Protocol VVVF
TCP/IP – Type Protocol BS
TCP/IP – Type Protocol PATDX

See Also:

TCP/IP Registry Settings

Shortcuts

Icon:

Place: 5HPRWH 'DWD\


TCP/IP – General Settings

Remote data Remote data being edited, 1-32

Running on Server or Protocol Plug-in running on Marine PC


Processor LXX (LBB-LBB) Protocol running on Processor (IO, Terminal, control Processor)
not possible so a message will be given.
L = Link, XX = Processor number, BB = Board number

TCP Name Name, documentation only

Type Protocol VVVF / BS / PATDX

Type Processor Intel or Motorola (used for sending/receiving data) (BS only)

IP Address : Port TCP/IP Address + Port

IP Address Secondary TCP/IP Address

Refresh Rate Time to do a complete cycle, 1000

Number Of Retries Number of retries before failure, 2

Wait Time Wait time after a complete cycle, 100

Remarks:
This protocol is always running on server.
An IP port can only be used by one application or plug-in.
Wait time is used in PAT DX as send or receive timeout.

See also:

TCP/IP - Plugin

TCP/IP – Type Protocol VVVF

TCP/IP – Type Protocol BS

TCP/IP – Type Protocol PATDX


TCP/IP – Type Protocol VVVF

TCP/IP Plugin will open the communication

TCP/IP Plugin will start sending data every 1 second

VVVF will reply with data every time.

TCP/IP Plugin will send the following message to VVVF:

Variable Type (size) Initial value


Length WORD (2 bytes) 104
Message Type BYTE 2. x02

Data Type BYTE 0x0


Communication Type BYTE 0x0
Message Number BYTE 1.

Counter WORD (2 bytes) 0


DW [99] WORD (99 * 2 bytes) 0 – 10000

In reply to this message VVVF will send to TCP/IP Plugin:

Variable Type (size) Initial value


Length WORD (2 bytes) 104
Message Type BYTE 2. x02

Data Type BYTE 0x0


Communication Type BYTE 0x0
Message Number BYTE 101
Counter WORD (2 bytes) 0
DW [99] WORD (99 * 2 bytes) 0 – 10000

Header: Length contains the number of bytes of message (excluding this one)

Header: MessageType always contains 0x02. It is used in our system, and identifies these structures.

Header: DataType contains 0x0. Not defined

Header: Communication Type identifies message delivery service over the network, contains 0x0 = virtual
circuit service (in which the connection between the connected nodes is periodically checked automatically)

Header Message Number: identifies the message block (1 in the provided information)

Header Counter: identifies current counter, change every time when a correct send and receive is done

Data: DW variable contains a list of 99 values in the message block

On this manner several blocks of information can be send between the systems.

See also:

TCP/IP Plugin
TCP/IP – Type Protocol BS

BS stands for Bakker Sliedrecht. A company PLC interface

TCP/IP Plugin will open the communication

BS will start sending data every 2 seconds

TCP/IP Plugin will reply with data every time.

BS will send the following message to TCP/IP Plugin:

Variable Type (size) Initial value


MessageType WORD (2 bytes) 0x02
Length WORD (2 bytes) 5
MessageRequest WORD (2 bytes) 53
MessageNumber WORD (2 bytes) 1.

DW [5] WORD (6 * 2 bytes) 0 - 10000

In reply to this message TCP/IP Plugin will send to BS:

Variable Type (size) Initial value


MessageType WORD (2 bytes) 2. x02

Length WORD (2 bytes) 16


MessageRequest WORD (2 bytes) 1.

MessageNumber WORD (2 bytes) 53


DW [16] WORD (16 * 2 bytes) 0 - 10000

Header: MessageType always contains 0x02. It is used in our system, and identifies these structures.

Header: Length contains the number of values in the DW list.

Header: MessageRequest identifies which message must be returned, zero (0) means none.

Header: MessageNumber identifies the message block (53 in the provided information)

Data: DW variable contains a list of 16 values in the message block

On this manner several blocks of information can be send between the systems. If there is nothing to send
MessageNumber is set to 0. If nothing should be returned, MessageRequest is set to 0. The BS sends messages
(with information and request for information) with intervals of 10 seconds. (If a longer interval is sufficient, that is
preferred)

The system is redundant. If the BS is not responding at the primary tcp-ip address, TCP/IP Plugin will try to
connect to/communicate with the secondary tcp-ip address.

See also:

TCP/IP Plugin
TCP/IP – Type Protocol PATDX

PAT DX data exchange possibilities:


- Value word ( 16 bits, signed )
- Binary packed word ( 16 separate bits )
- Value double float ( IEEE )

TCP is used for remote equipment to receive data from, or send data to MEGA-GUARD via any communication method
supporting TCP/IP. Such equipment will be referred to as "remote system".

-MEGA-GUARD TCP Plugin opens communication.


-MEGA-GUARD TCP Plugin sends data 2 times per second to both remote systems,
in a data-send from MEGA-GUARD TCP a requests for data is given, remote system replies with data every time.
SYSTEMTIME Structure

SYSTEMTIME Type (size) Description

wYear WORD (2 bytes) Specifies the current year. The year must be greater than 1601.

Wmonth WORD (2 bytes) Specifies the current month; January = 1, February = 2, and so on.

WdayOfWeek WORD (2 bytes) Specifies the current day of the week; Sunday = 0, Monday = 1, and so on.

Wday WORD (2 bytes) Specifies the current day of the month.

Whour WORD (2 bytes) Specifies the current hour.

WMinute WORD (2 bytes) Specifies the current minute.

WSecond WORD (2 bytes) Specifies the current second.

WMilliseconds WORD (2 bytes) Specifies the current millisecond.

System time is in Coordinated Universal Time (UTC), words are aligned and in Intel format (LSB,MSB)

Message layout

Remote system sends following message to MEGA-GUARD TCP plugin:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x03

Length WORD (2 bytes) n

MessageRequest WORD (2 bytes) 101

MessageNumber WORD (2 bytes) 1

Counter WORD (2 bytes) C

Timestamp SYSTEMTIME (16 bytes) Current UTC Time

Data [n] WORD (n * 2 bytes) -10000 – 10000

In this message, Counter c starts at 1. In reply to this message MEGA-GUARD TCP plugin sends to remote system:
Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x03

Length WORD (2 bytes) N

MessageRequest WORD (2 bytes) 2

MessageNumber WORD (2 bytes) 101

Counter WORD (2 bytes) c=c+1

Timestamp SYSTEMTIME (16 bytes) Current UTC Time

Data [n] WORD (n * 2 bytes) -10000 - 10000

In reply to this message remote system sends following message to MEGA-GUARD TCP plugin:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x04

Length WORD (2 bytes) n

MessageRequest WORD (2 bytes) 102

MessageNumber WORD (2 bytes) 2

Counter WORD (2 bytes) c=c+1

Timestamp SYSTEMTIME (16 bytes) Current UTC Time

Data [n] DOUBLE (n * 8 bytes) IEEE standard

In reply to this message MEGA-GUARD TCP plugin sends to remote system:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x04

Length WORD (2 bytes) n

MessageRequest WORD (2 bytes) 0

MessageNumber WORD (2 bytes) 102

Counter WORD (2 bytes) c=c+1

Timestamp SYSTEMTIME (16 bytes) Current UTC Time

Data [n] DOUBLE (n * 8 bytes) IEEE standard

If no request, communication loop has finished here. A new request can be started:

Header: MessageType always contains 0x03. It is used in our system, and identifies these structures.
Header: Length contains the number of values in the DW list.
Header: MessageRequest identifies which message must be returned, zero (0) means none.
Header: MessageNumber identifies a message block (1 to 99 for Remote System and 101 to 199 for MEGA-GUARD)
Counter: Range 0-65535. This number starts at zero and increases with each message that is send. When it reaches 65535 it
jumps back to 0 and continue increasing from there.
Timestamp is UTC creation time of the message.
Data: Variable contains a list of n values in the message block. In message type 0x03 these are 16 bit words that can contain
a Boolean value per bit, or just integer values in the range -32767 to 32766. In message type 0x04 Data are doubles in 8 bytes
according IEEE with a sign bit, 11-bit exponent, and 52-bit mantissa.

If values must be send that are larger then the limits allow, the maximum value will be send.

Note that

MessageType 0x02 is used with "VVVF",

MessageType 0x02 is also used "TCP 02",

MessageType 0x03 and 0x04 are used with "PAT DX" (this protocol).

For example

First an example with system time 2005-07-05 01:02:03.004 noted as below in a message

Timestamp SYSTEMTIME (16 bytes) 2005; 07; 2; 05; 01; 02;03; 004

In system time structure it then looks as below

wYear WORD (2 bytes) 2005

wMonth WORD (2 bytes) 07 (July)

wDayOfWeek WORD (2 bytes) 2 (Tuesday)

wDay WORD (2 bytes) 05

wHour WORD (2 bytes) 01

wMinute WORD (2 bytes) 02

wSecond WORD (2 bytes) 03

wMilliseconds WORD (2 bytes) 004

MEGA-GUARD TCP plugin sends to remote system:

Variable Type (size) Example values

MessageType WORD (2 bytes) 0x03

Length WORD (2 bytes) 2

MessageRequest WORD (2 bytes) 101

MessageNumber WORD (2 bytes) 1


Counter WORD (2 bytes) 1

Timestamp SYSTEMTIME (16 bytes) 2005; 07; 2; 05; 01; 02;03; 004

Data [0] WORD (2 bytes) 1234

Data [1] WORD (2 bytes) 5678

Reply to this message remote system sends to MEGA-GUARD TCP plugin:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x03

Length WORD (2 bytes) 3

MessageRequest WORD (2 bytes) 0

MessageNumber WORD (2 bytes) 101

Counter WORD (2 bytes) 2

Timestamp SYSTEMTIME (16 bytes) 2005; 07; 2; 05; 01; 02;03; 112

Data [0] WORD (2 bytes) 9999

Data [1] WORD (2 bytes) 8888

Data [2] WORD (2 bytes) 7777

After that MEGA-GUARD TCP plugin sends to remote system:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x04

Length WORD (2 bytes) 5

MessageRequest WORD (2 bytes) 102

MessageNumber WORD (2 bytes) 2

Counter WORD (2 bytes) 3

Timestamp SYSTEMTIME (16 bytes) 2005; 07; 2; 05; 01; 02;03; 225

Data [0] DOUBLE (8 bytes) 1.234

Data [1] DOUBLE (8 bytes) 2.345

Data [2] DOUBLE (8 bytes) 3.456

Data [3] DOUBLE (8 bytes) 4.567

Data [4] DOUBLE (8 bytes) 5.678


In reply to this message remote system sends:

Variable Type (size) Initial value

MessageType WORD (2 bytes) 0x04

Length WORD (2 bytes) 2

MessageRequest WORD (2 bytes) 0

MessageNumber WORD (2 bytes) 102

Counter WORD (2 bytes) 4

Timestamp SYSTEMTIME (16 bytes) 2005; 07; 2; 05; 01; 02;03; 338

Data [0] DOUBLE (8 bytes) 1.234

Data [1] DOUBLE (8 bytes) 2.345

See also:

TCP/IP Plugin
TCP/IP – Connection List

Grid Options/Values and Function


Column
Channel Channel to receive/send the data; type in an existing digital/analog channel number, or get here
from the channel’s configuration form (status/value link)
Msg Nr 1..255, be sure configure first the message
(see: TCP – Message List)

Msg Type Msg Type related to Msg Number, 1 till 255

Index which word in data array, 1 - Size of Message

Bit empty for analog value, 0..15 one bit for digital value

Description documentation, what kind of value

Remarks:

For faster configuration it is possible to use CTRL+D:


-configure one complete row
-select one column and multiple empty rows
-press CTRL+D, automaticially smart default will filled in

See also:

TCP/IP - Plugin
TCP/IP – Messages List

Field Description
Message Nr Message Number, 1..255
Message Type Message Type, Sub Protocol dependant, 1 till 255
Size Count of Values in message, 0 till 255
Direction Kind of message Sending or Receiving

Remarks:
Message need to be configured as sub protocol defines
BS; TCP 02; VVVF Message Type always 2
PAT DX Message Type 3 or 4 are supported

See also:

TCP/IP - Plugin
TCP/IP - Registry Settings

Windows:

Be sure the following key values are existent:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Value: KeepAliveInterval (DWORD, 500 decimal)

Value: KeepAliveTime (DWORD, 1000 decimal)

Value: TcpMaxConnectRetransmissions (DWORD, 0 decimal)

Remark: After adding/editing these keys windows needs to be restarted.

IOServer:

HKEY_CURRENT_USER\Software\Praxis\IOServer\Settings

Value: RemoteDataShutDownDelay (DWORD, 30000 decimal)* (VVVF Fast, 12000 decimal)

Remark: After editing this key ioserver needs to be restarted.

(*30 sec = plugin1(=25 sec) + 5 sec, if 2 plugins, 55 sec = plugin1 + plugin2 + 5 sec)

Plugin Itself:

HKEY_CURRENT_USER\Software\Praxis\tcp\Settings

Value: ShutDownDelay (DWORD, 25000 decimal) (VVVF Fast, 5000 decimal)

Value: ReceiveTimeOut (DWORD, 8000 decimal) (VVVF Fast, 1500 decimal)

Remark: After editing this key plugin (could be done by restart of ioserver) needs to be restarted.

VVVF Fast, could only be used for VVVF protocol type and fast shutdown is required. If not required please use
defaults. This feature cannot be used for protocol type BS.

See also:

TCP/IP Plugin
TTP - Plugin

After selecting ‘Remote Data’ and TTP – RD xx

There are several items of this remote data:

1. TTP - General Settings

2. TTP - Connection List

3. TTP - Message List

Protocol Description

Based on

- NMEA 0183 version 2.01

Sentence going over the Serial line:

$aaccc,c---c*hh<CR><LF>

Sentence description

$ Start of sentence, Start delimiter


HEX: 24
Aa Address field, Talker ID
P means custom message Mnemonic can take up to 7 characters
Ccc fields Address field, Sentence formatter mnemonic:
Identifying the data type and string format of the successive fields.
Mnemonics will be used as far as possible to facilitate read-outs by users.
, Field Delimiter
Starts each field except Address and checksum fields.
HEX: 2C
c---c Data sentence block:
Follows address filed and is a series of data fields containing all of the data to be transmitted. Data
field sequence is fixed and identified by third and subsequent characters of the address field (Sentence
formatter) Data fields may be of variable length and are preceded by delimiters “,”.
Checksum Delimiter (Optional)
Follows last data field of the sentence it indicates that the following two alphanumeric characters
show the HEX value of the checksum.
HEX: 2A
Hh Checksum field (Optional)
The absolute value calculated by exclusive-OR’ing the eight data bits of each character in the
sentence, between, but excluding “$” and “*”. The hexadecimal value of the most significant and
least significant four bits of the result is converted to two ASCII characters (0-9, A-F) for
transmission. The most significant character is transmitted first. The checksum field is optional, except
when indicated as mandatory.
<CR><LF> End of Sentence:
Sentence terminating delimiter
HEX: 0D 0A
Character Engineering Unit codes

A Ampere
F Fathoms
f Feet
I Inches
K Kilometers
k Kilograms
l Liter per second l/s
M Meters
N Nautical Miles
P Pascal (pressure)
R RPM
S Statute miles
V Volt

Field types (Supported)

[Link] Latitude
Degrees, Minutes and Decimal – two fixed digits of degrees, two fixed digits of minutes and a variable
number of digits for decimal fraction of minutes. Leading zeros always included for degrees a minutes
to maintain fixed length. The decimal point and associated decimal fraction are optional if full
resolution is not required.
[Link] Longitude
See Latitude
[Link] Time
Hours/Minutes/Seconds and decimal - two fixed digits of hours; two fixed digits of minutes; two fixed
digits of seconds and a variable number of digits for decimal fraction of seconds. Leading zeros always
included for hours; minutes and seconds to maintain fixed length. The decimal point and associated
decimal fraction are optional if full resolution is not required.
b Binair Value 0 or 1
bbbb Binair Packed Value, do not use more than 32 b's (32 bits value)
h Hexadecimal Value 0..F
hhhh Hex Packed Value, do not use more than 8 h's (32 bits value)
x Value with whole numbers
x.x Value with fraction

Shortcuts

Icon:

Place: Remote Data\


TTP – General Settings

Com Port Communication port which is used for sending the output. No other plug-in must have the same COM
port (only if plugin is on running on server)

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Data Bits Number of Data bits of Com Port, 7 or 8

Parity Kind of Parity of Com Port, like None, Odd or Even

Stop Bits Number of Stop Bits of Com Port, 1 or 2

Time Out Maximum time before next message will be processed (in milli-seconds), diagnostic could be displayed

Number Of Retries Number of times to try when message is not received before error is reported

Interval Time Minimal Time to wait between two messages (in milli-seconds)

Field separator separator for data fields, default comma

See also:

TTP Plugin
TTP – Connection List

From the current selected row message definition is shown.

-Type in Channel Number where value is coming from, like 10560

-Type characters in variable text fields

Field Description
Nr Number from configured TTP Message List
Type Output or Input Type from configured TTP Message List
Formatter Formatter from configured TTP Message List
Value
Channel to receive/send the data; type in an existing digital/analog channel number, or get here
(Channel or
from the channel’s configuration form (status/value link)
Text)

See also:

TTP Plugin
TTP – Messages List

For learning purposes four messages are default created.

Next picture shows a configuration of a combination of one output and one input message.

Field Description
Nr Line number of all messages or message number
Type Output or Input, Message to Send = Output, Message to Receive = Input
Formatter Formatter TTP Message List
Sentence Sentence Description
Checksum Add Checksum to message, *HH or *hh or empty
Description Information about this message

Special codes

>x;y Select from list (x or y) (eq E or W)

># Select Number (0-9) (eq 0 or 8)

-x x means negative value else positive for previous value

(eq S)

Remove the messages if you don’t want to use then. After that insert de message(s) you like to use.

A TTP message exits of formatter (header of message) and sentence which contains channel value(s) and/or characters
which are separated by a comma.

Formatter has usually with two - which are known as “don’t cares” (Like $--DBK).

More about Sentence:

-x.x one channel value, like 10101, variable width

-xxxx.x one channel value, like 10101, fixed width


-x or xx one channel status, like 10101, value is equal to 0 => status normal, value is not equal to 0 => status high

-cc two variable characters like mA

-xb1..xb8 status packed (VDR) with a maximum of (8*4 =) 32 channel statuses

-M, f, F a fixed character

See also:

TTP Plugin
TXT – Text Plugin

After selecting ‘Remote Data’ and TXT – RD xx

There are several items of this remote data:

1. TXT – [Link] General Settings

2. TXT – [Link] import/export List

3. TXT - Overview

The Remote Data Txt Plugin is a remote data that does the following functions:

- Place channel data into a text file

- Retrieve channel data from a text file

The Format the data is written to file is:

<Data><Seperator>…<Data><End of line Separator>

….

<Data><Seperator>…<Data><End of line Separator>

Example File, Comma Separated

21-02-2002,15:02:02

345.3,1.3

1800.0,0.0,1000.0,0.0,0.0,0.0,0.0

0.0,0.0,15.0

0.0,0.0,0.0

0.0,0.0,980.0

0.0,0.0,0.0

There is a Special Separator and that is ‘Fixed Width’, this means that instead of a Separator the width of a column
and orientation have to be specified.

<Width x, Left Aligned, Data>…< Width y, Right Aligned, Data ><End of line Separator>

<Width x, Left Aligned, Data>…< Width y, Right Aligned, Data ><End of line Separator>

Example File, Fixed width separated:

10101 0.1
10102 0.5

10105 25.0

10110 9999.9

Shortcuts

Icon:

Place: Remote Data\


TXT – Overview

Before you can configure Tables you have to add them, there is a Maximum of 32 Tables per Remote Data.

-Double click on the last table entry, or press a numeral key.

-Select a Table number to Add and confirm with Enter

Field Description
Table Table number (1-32)
Filename name of .txt file, which is used
Type How is the file used, as Export or Import
Enable Enable or Disable, (Active or Not)
Status of configured parts.

See also:

TXT Plugin
TXT – ([Link]) General Settings

Setting Description
Enabled Change table creation/processing
on/off
Type Select table type
import/export
Filename Name of the File where data is stored to/ retrieved from.
Folder Local directory or network map where filename resides.
Columns Number of Cells Maximal in one row, max 64
Rows Number of Rows in the table, max 256
Update Cycle Time Time between read/write action
Update Time out Time before diagnostic is generated
Separator Type Select Separator
Type Fixed Width or Separator
Separator Cell Separator to use when type is Separator
Separator end of line Separator to use between rows

See also:

TXT Plugin
TXT – ([Link]) Export/Import List

Import and export lists are the same in buildup, but channel criteria is different.

Select via mouse button click a cell in normal view. Set it's cell properties via the porperties table view.

Normal view:
Field Description
A Column 1, show contents of this cell
B Column 2, show contents of this cell

Properties:
Field Description
Selection Current selection in other view
Cell type Select Cell type:

NONE (when selected in a cell, for this row is 'End of Line')

Channel Status

Channel Value

Text

Date

Time
Default Channel Related, Text to be written when channel value cannot be retrieved or Cell Width isn’t big
enough to show Value.
Reference Channel Number
Table type export: installed channel
Table type import: channel with Remote Data Source.
Nr of Digits behind Value
Decimals 0,1,2 or 3
Alignment Fixed Width: place cell data on left or Right side and fill up with spaces
Width Fixed Width: Size of Cell data that can be written.
Time
Select Time format to use.
Format
Date
Select Date format to use.
Format

Criteria for channel cells:


At table type Import - Make sure that channel type that supports remote data. If not during configuration channel
type will be changed
At table type Export - Installed Channel.

Criteria for Text:


At table type Import - Do not check content
At table type Export - Write Text into file.

Criteria for Date Time:


At table type Import - Check date/time falls between (current GMT – cycle time). and current GMT.
At table type Export - Write current GMT date/time into file.

Configuration Tips:

Select Multiple cells to change properties of multiple cells. In this case channel reference can not be changed.

Select entire column to change the Width attribute of cells.

Check Button:
Use Check Button to do a consistency check of the Database.

Return Button:
Return from gateway, only available when getting there from a channel configuration (status/value link)

By pressing right mouse, a menu with many functions is appearing:

Besides 'normal view' there is also so-called 'Channel reference view'.


When activated users would just type in normal channel numbers.
See also:

TXT Plugin
MBM_TCP – Modbus Master TCP/IP Plugin

After selecting ‘Remote Data’ and MBM_TCP – RD xx

There are several items of this remote data:

1. MBM_TCP - General Settings

2. MBM_TCP – Force Connection List

3. MBM_TCP - Query Table 01..04 or 15..16

4. MBM_TCP – Read Connection List

This remote data supports the following modbus functions:

Inputs:
01 – Coils (Digital, error code 0x81)
02 – Status (Digital, error code 0x82))
03 – Hold Registers (Analog, error code 0x83)
04 – Input Registers (Analog, error code 0x84)

Outputs:
05 – Write Single Coil (Digital, error code 0x85)
06 – Write Single Register (Analog, error code 0x86)
15 - Write Multiple Coils (Digital, error code 0x8F)
16 - Write Multiple registers (Analog, error code 0x90)

Remark: There is no use for a treeview items like "MBM_TCP - Query Table 05" or 06.
Because the number of registers is 1 at function 05 and 06.
In this case Modbus Master will send a complete message with only one status or value.

Structures are sent according Motorola (MSB LSB or Big Endian) processor set.

Register Values are handled depending of configuration:

Register Range Signed Unsigned 8000H Offset


Negative -32768..-1 -32768..-1
(8000.. FFFF) (0..7FFF)
Positive 0..32767 0..65535 0..32767
(0000..7FFF) (0000..FFFFF) (8000..FFFF)
Error Value -32768 65535 -32768
(Out of range) (8000) (FFFF) (0000)
(Values) use hex notation

For value extension and value precision another types of register handling is available.
The base types of these are:

long (signed 32 bits)

ulong (unsigned 32 bits)

float (32 bits, contains one sign bit and exponent (two complement) and 23 bit mantissa)

Furthermore there could be a distinction between low byte and high byte sending/receiving order. (Abbreviation
L/H or H/L) Normally H/L is most frequently used.

Therefore a Modbus register is always 16 bits, two registers addresses are used for a 32 bit value presentation.

MBM TCP/IP message exists of:


MBAP Header Function Number Data

This message provides some differences compared to the MODBUS RTU application data unit used on serial line:

The MODBUS ‘slave address’ field usually used on MODBUS Serial Line is replaced by a single byte ‘Unit
Identifier’ within the MBAP Header. The ‘Unit Identifier’ is used to communicate via devices such as bridges,
routers and gateways that use a single IP address to support multiple independent MODBUS end units.

All MODBUS requests and responses are designed in such a way that the recipient can verify that a message is
finished. For function codes where the MODBUS PDU has a fixed length, the function code alone is sufficient. For
function codes carrying a variable amount of data in the request or response, the data field includes a byte count.

When MODBUS is carried over TCP, additional length information is carried in the MBAP header to allow the
recipient to recognize message boundaries even if the message has been split into multiple packets for transmission.
The existence of explicit and implicit length rules, and use of a CRC-32 error check code (on Ethernet) results in
an infinitesimal chance of undetected corruption to a request or response message.

MBAP Header

Fields Length Description Client Server


Transaction Identification of a MODBUS Request / Initialized by the Recopied by the server
2 Bytes
Identifier Response transaction. client from the received request
Protocol Initialized by the Recopied by the server
2 Bytes 0 = MODBUS protocol
Identifier client from the received request
Length Initialized by the Initialized by the server (
2 Bytes Number of following bytes
client ( request) Response)
Unit Identification of a remote slave
Initialized by the Recopied by the server
Identifier 1 Byte connected on a serial line or on other
client from the received request
buses.

The header is 7 bytes long:

• Transaction Identifier - It is used for transaction pairing, the MODBUS server copies in the response the
transaction identifier of the request.

• Protocol Identifier – It is used for intra-system multiplexing. The MODBUS protocol is identified by the value 0.

• Length - The length field is a byte count of the following fields, including the Unit Identifier and data fields.

• Unit Identifier – This field is used for intra-system routing purpose. It is typically used to communicate to a
MODBUS+ or a MODBUS serial line slave through a gateway between an Ethernet TCP-IP network and a
MODBUS serial line. This field is set by the MODBUS Client in the request and must be returned with the same
value in the response by the server.

Example Function 02 digital status request

MBAP Header Function Nr Address Nr of statusses


(seven bytes) (one byte) (two bytes) (two bytes)
header 0x02 0x01 0x00 0x00 0x09

Example Function 02 digital status reply

MBAP Header Function Nr Byte Count Data


(seven bytes) (one byte) (one byte) (Byte Count bytes)
header 0x02 0x02 0xFF 0xFF

Example Function 02 digital status exception reply

MBAP Header Function Nr Exception code


(seven bytes) (one byte) (one byte)
header 0x82 0x02

To get the status of the points with MODBUS address 100 to 113, when e.g. the points on address 103 and 108 are
'on' and the other points are 'off':

For more information reference the Modbus Specification:


Modbus_Messaging_Implementation_Guide_V1_0b.pdf

See [Link]

Shortcuts

Icon:

Place: Remote Data\


MBM_TCP – General Settings

Header settings
Field Options/Values and Function
Remote data Unique Number of selected Remote Data Plugin
Running on Server: Protocol runs on the Server as a Plug-in
Board (LBB-LBB): Protocol runs on Processor board
(L = Link, BB = Board number) eq. Board (101-108)

Protocol settings
Field Options/Values and Function
Slave Single slave number used for all queries.
(default 1)
The “SLAVE” field in the connection list will be updated to this number for all query blocks.
Multi-drop When Multi-drop is enable the Slave number will be ignored and
mode multiple slave numbers can be entered via the Slave / Address / Port Configuration list.
(default unchecked/off)
Force Zero Force registers values to zero for functions (05/06 or 15/16) when channels are not available
Value or the registers are not configured
(default unchecked/off)
Format RTU: binary data exchange (Device 8 databits)
ASCII: text data exchange (Device 7 databits)
(default RTU)
Modbus over Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead of
TCP/IP serial comport.
The Server uses an IP Address therefore a SlaveID is not needed.
(default unchecked/off)
Register Options for Registers Handling:
Handling Value Function
Free Query or Connection list Register handling is used
Signed Negative/Positive values (Sign bit)
Unsigned Positive values
8000H Offset zero point becomes 0x08000 (no Sign bit)
This overrules configuration of this Field in Queries and connection list.
(default Signed)

Example: Multi-drop Mode

Device settings
Field Options/Values and Function
IP Address Network Address of Modbus Machine
Port communication port for Ethernet usage
(default: 502)

Timing settings
Field Options/Values and Function
Refresh Rate Update cycle time for one time execution of all configured queries.
Each query takes 100ms. Low refresh rate will increase load on network and CPU.
When refresh rate is minimal time required to transmit and receive all queries once.
If a lower number is entered it will not be used.
The refresh time must be equal or larger than required time for the queries.
For example: 10 queries take 10 x 100ms = 1000ms => Refresh time must be
1000ms or larger.

Other CPU Tasks will also consume time which needs to be taken into account.
The modbus update cycle can be delayed because of this.
For example an 1131 program with execution time of more 50 ms will slowdown
MBM_TCP.

XP will run 20 cycles per second (if it is not overloaded).


So one cycle per 50ms. A request is send out every cycle, a Reply is received and
handled next cycle.
Because of this one query takes at least 100 ms.

When using multi-drop mode on XP some software optimizations were


implemented
which speed up MBM_TCP process.
200-300000 ms (default: 1000)
Response Time Out Maximum time between a message request and reply.
When this time expires the retry sequence starts.
Check Modbus Slave Manual from the Slave device manufacturer for response time
as an minimal of this value.
Set it to larger time as indicated to prevent faults and false retries.
For example: if Slave response time is 100ms then set Response Time Out to 200ms
or higher.
50-5000 ms (default: 200)
Number Of Retries The number of times after each other a timeout has been occured. This will generate
Before Failure a diagnostic: 'Slave Not Present'.
0 - 10 (default: 3)

Remark: only when the sending goes well, in that case there is a connection.
1) TCP Master(=Client) sends a request
2) TCP Slave(=Server) receives request
3) TCP Slave(=Server) sends an ACK
4) ACK is received by TCP Master(=Client)
5) but further on there is no answer is coming on the request.

In General:
no communication diagnostic comes after 5 sec (hard-coded) when is no connection
at all.
In that case the sending part is failed, no ACK is received
Check Interval Time between queries for checking Slaves to see if they are present.
If a Slave is not present, this time will be waited before a Slave will be retried.
200-300000 millisec (default: 5000)
Receive Timeout (ms) Defines maximum time the process will wait for answer before triggering a
communication error.
Used via Windows TCP Socket Setting. Not used on XP.
200-300000 millisec (default: 5000)
Transmit Timeout (ms) Defines maximum time the process will wait for confirmation (Acknowledgement)
before triggering a communication error.
Used on Windows as TCP Socket Setting. Not used on XP.
200-300000 millisec (default: 5000)
Values to zero if no When no communication error occurs; all channel values are set to zero.
communication Involved all channels which are set with function 01/02/03/04.
On/Off (default unchecked/off)

An Internet Protocol address (IP address) is a numerical label assigned to each device (e.g., computer, printer)
participating in a computer network that uses the Internet Protocol for communication
Single Slave Mode: Time Diagrams
Multi-drop Mode: Time Diagrams

See also:

MBM_TCP - General Information Register Handling etc.


MBM_TCP - Query Table
MBM_TCP – Read Connection List
MBM_TCP – Force Connection List
MBM_TCP –Query Table

Grid Options/Values and Function


Column
Slave Nr Slave Number, can be forced by General Settings, 1..255

First Address value, 0..65535


Address
Nr Of Number of registers to be received or be sent, when too many registers are queried multiple
Registers queries are automatically generated, 0..65535

Register How is register handled, can be forced by General Settings


Handling - 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)

By pressing on column “Slave Nr” a sort action is performed, first time ascending second descending.

Field/Control Function

Query Table Modbus function number of shown queries


Address Offset so Configured Modbus addresses are in accordance with the Modbus list and queries with
Offset hardware Modbus addresses used, certain plc’s send 40001 as 0 and 10001 as 0., 0..65535

Check Button Check if all connection list items are inside the configured modbus queries

Remark: There is no use for a treeview items like "MBM_TCP - Query Table 05" or 06.
Because the number of registers is 1 at function 05 and 06.
In this case only configuration at force connection list is sufficient.

See also:

MBM_TCP - General Settings

MBM_TCP – Force Connection List

MBM_TCP – Read Connection List


MBM_TCP – Read Connection List

Grid Options/Values and Function


Column
Channel Channel to receive the data; type in an existing digital/analog channel number, or get here from the channel’s
configuration form (status/value link)
Slave Nr Slave Number, can be forced by General Settings, 1..255

Function Modbus function number, 01,02,03 or 04

Address Modbus address of modbus function where value is retrieved from. 0...65535

Register Bit Bit to extract from register


0..15 or (nothing) where (nothing) means ‘no bit’ or entire register
Register How is register handled
Handling - 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Scale Scale factor of send register values
examples: 1000, 100, 10, 1, 0.1, 0.01, 0.001 (Default 1.0)
for digital channel only "-1.0" for inverse value
Offset offset factor of send register values
examples: 10.0 or 1000 (Default 0.0)

By pressing on column “Channel” or “Slave” or “Function” or “Address” a sort action is performed. First time ascending
second time descending.
Return Button: Return from gateway, only available when getting there from a channel configuration (status/value link)

Tip: For fast channel configuration, configure last line complete, press not enter at the last column, go back to first column, give
a channel range in (like 10101-10125) and press enter, now multiple rows are created!

Slave field in single slave mode will not be editable and show general slave number.

Register-handling field is non-editable when overruling Register Handling is active this is when:
- General Register Handling isn't Free
- Queries Register Handling for the Modbus Slave/Function where Modbus Address is part of isn't free
- Digital status/coil or binary packed register

Scale 1.0 and Offset 0.0 means rounded whole channel values are send.
Scale 10.0 and Offset 0.0 means rounded whole 'channel values*10' are send.
Scale 0.1 and Offset 0.0 means rounded whole 'Channel values/10' are send.
Scale 10.0 and Offset 1000.0 means rounded whole 'channel values*10 + 1000' are send.

See also:

MBM_TCP - General Settings

MBM_TCP – Force Connection List

MBM_TCP - Query Table


MBM_TCP – Forced Connection List

Grid Options/Values and Function


Column
Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the channel’s
configuration form (status/value link)
Slave Nr Slave Number, can be forced by General Settings, 1..255

Function Modbus function number, 05,06,15 or 16

Address Modbus address of modbus function where value is send to.


0...65535

Register Bit Bit in register


0..15 or (nothing) where (nothing) means ‘no bit’ or entire register
Register How is register handled, can be forced by General Settings or Query Settings
Handling - 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Scale Scale factor of send register values
examples: 1000, 100, 10, 1, 0.1, 0.01, 0.001 (Default 1.0)
for digital channel only "-1.0" for inverse value
Offset offset factor of send register values
examples: 10.0 or 1000 (Default 0.0)

By pressing on column “Channel” or “Slave” or “Function” or “Address” a sort action is performed. First time ascending second
time descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value link)

Tip: For fast channel configuration, configure last line complete, press not enter at the last column, go back to first column, give a
channel range in (like 10101-10125) and press enter, now multiple rows are created!

Slave field in single slave mode will not be editable and show general slave number.

Register-handling field is non-editable when overruling Register Handling is active this is when:
- General Register Handling isn't Free
- Queries Register Handling for the Modbus Slave/Function where Modbus Address is part of isn't free
- Digital status/coil or binary packed register

Scale 1.0 and Offset 0.0 means rounded whole channel values are send.
Scale 10.0 and Offset 0.0 means rounded whole 'channel values*10' are send.
Scale 0.1 and Offset 0.0 means rounded whole 'Channel values/10' are send.
Scale 10.0 and Offset 1000.0 means rounded whole 'channel values*10 + 1000' are send.

See also:

MBM_TCP - General Settings

MBM TCP - Query Table

MBM_TCP – Read Connection List


SF Control Plugin

After selecting ‘Plugins’ and SF Control – RD xx

There are several items of this plugin:

1. SF Control - General Settings

2. SF Control - Connection List

This protocol is based on LevelDatic 100s. Electropneumatic level measurement system from the company with the
name SF-Control.

This is using for gauging systems

Shortcuts

Icon:

Place: Plugins\
SF Control – General Settings

Com Port Communication port which is used for sending the output. No other plug-in must have the same COM
port (only if plugin is on running on server)

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Refresh Rate 200-300000 millisec (default: 1000)

Response Time Out 50-5000 millisec (default: 200)

Data Bits Com. Port setting: 7 or 8 (default: 8)

Stop Bits Com. Port setting: 1 or 2 (default: 1)

Parity Com. Port setting: None, Odd or Even (default: None)

Check Interval 200-300000 millisec (default: 5000)

Number Of Retries Before Failure 0-10 (default: 3)

Level- / Pressure- / Density Scaling “/1000” – “*100” (default: “*1”)

Three additional special input fields are available to set the channel display format for each type:

Set Level / Set Pressure / Set Density Display Format:

“[Link]” – “xxxxxxX” (default: “xxxxX.X”)

See also:

SF Control Plugin
SF Control – Connection List

Field Description
Channel Channel to receive the data; type in an existing analog channel number, or get here from the channel’s
configuration form (value link)
Type Type, H, PH, D, SD
Point Point, range 1..999

By pressing on column “Channel” or “Type” or “Point” a sort action is performed, first time ascending second
descending.

Command for asking output level message:

<ESC>SEND xx X<CR>

X is taken from the “TYPE” field of the current point

The cabinet number xx is calculated from the current point:

1+ENTIER((Point–1)/10)

Example: <ESC>SEND_03_H<CR>
Send level data message from cabinet 3. After SEND command cabinet 3 will answer the following:
Output level message (unit = meters or feets)

<CR><LF>
C03_Hm_1013.3_--PPPPPPPPPPP*<CR><LF>
H021/_4.01_H022/15.27_H023/10.09_H024/_5.98_H025/22.37_<CR><LF>
H026/11.34_H027/12.78_H028/_9.54_H029/28.28_H030/_0.07_<CR><LF>
#<CR><LF>

Explanations :

<CR><LF> = Line clear (2 marks, HEX 0D (carriage return), HEX 0A (line feed)).

C03_Hm_1013.3_--PPPPPPPPPPP*<CR><LF> = LD 100S status line (30 marks).

H021/_4.01_H022/15.27_H023/10.09_H024/_5.98_H025/22.37_<CR><LF> =
First LD 100S measurement data line (57 marks).

H026/11.34_H027/12.78_H028/_9.54_H029/28.28_H030/_0.07_<CR><LF> =
Second LD 100S measurement data line (57 marks).

#<CR><LF> = End of message (3 marks HEX 23, HEX 0D, HEX 0A)

Following types are supported:


Level = H
Pressure= PH
Density = D
Setting Density = SD

H,PH, D are values from received from Level Datic 100S system.
SD are values send to Level Datic 100S system.

See also:

SF Control Plugin
CANOpen – Plugin

After selecting ‘Plugins’ and CANOpen – RD xx

There are several items of this plugin:

1. CANOpen - General Settings

2. CANOpen - Object List

3. CANOpen - Receive List

4. CANOpen - Send List

Introduction (from Wikipedia)


CANopen is a communication protocol and device profile specification for embedded systems used in automation.
In terms of the OSI model, CANopen implements the layers above and including the network layer.
The CANopen standard consists of an addressing scheme, several small communication protocols and an application
layer defined by a device profile.
The communication protocols have support for network management, device monitoring and communication between
nodes,
including a simple transport layer for message segmentation/desegmentation.
The lower level protocol implementing the data link and physical layers is usually Controller Area Network (CAN),
although devices using some other means of communication (such as Ethernet Powerlink, EtherCAT) can also
implement the CANopen device profile.

The basic CANopen device and communication profiles are given in the CiA 301 specification released by CAN in
Automation.
Profiles for more specialized devices are built on top of this basic profile,
and are specified in numerous other standards released by CAN in Automation,
such as CiA 401 for I/O-modules and CiA 402 for motion control.

Device model
Every CANopen device has to implement certain standard features in its controlling software.

- A communication unit implements the protocols for messaging with the other nodes in the network.

- Starting and resetting the device is controlled via a state machine. It must contain the states Initialization,
Pre-operational, Operational and Stopped. The transitions between states are made by issuing a network management
(NMT) communication object to the device.

- The object dictionary is an array of variables with a 16-bit index. Additionally, each variable can have an 8-bit
subindex.
The variables can be used to configure the device and reflect its environment, i.e. contain measurement data.

- The application part of the device actually performs the desired function of the device, after the state machine is set
to the operational state.
The application is configured by variables in the object dictionary and the data are sent and received through the
communication layer.

Object dictionary
CANopen devices must have an object dictionary, which is used for configuration and communication with the device.
An entry in the object dictionary is defined by:

Index, the 16-bit address of the object in the dictionary

Object name, a symbolic type of the object in the entry, such as an array, record, or simple variable

Name, a string describing the entry

Type, gives the datatype of the variable (or the datatype of all variables of an array)

Attribute, which gives information on the access rights for this entry, this can be read/write, read-only or write-
only

The Mandatory/Optional field (M/O) defines whether a device conforming to the device specification has to
implement this object or not

The basic datatypes for object dictionary values such as booleans, integers and floats are defined in the standard
(their size in bits is optionally stored in the related type definition, index range 0x0001-0x001F),
as well as composite datatypes such as strings, arrays and records (defined in index range 0x0040-0x025F).
The composite datatypes can be subindexed with an 8-bit index;
the value in subindex 0 of an array or record indicates the number of elements in the data structure, and is of type
UNSIGNED8.

For example, the device communication parameters, standardized in the basic device profile CiA 301[4] are mapped in
the index range 0x1000-0x1FFF ("communication profile area").

The first few entries in this area are as follows:

Index Object name Name Type Attribute M/O


0x1000 VAR device type UNSIGNED32 ro M
0x1001 VAR error register UNSIGNED8 ro M
.. - - - - -
0x1008 VAR manufacturer device name Vis-String const O

Given suitable tools, the content of the object dictionary of a device, based on an electronic data sheet (EDS),
can be customized to a device configuration file (DCF) to integrate the device into a specific CANopen network.
According to CiA 306, the format of the EDS-file is the INI file format.
There is an upcoming XML-style format, that is described in CiA 311.

Communication objects
CAN bus, the data link layer of CANopen, can only transmit short packages consisting of an 11-bit id, a remote
transmission request (RTR) bit and 0 to 8 bytes of data.
The CANopen standard divides the 11-bit CAN frame id into a 4-bit function code and 7-bit CANopen node ID.

This limits the number of devices in a CANopen network to 127 (0 being reserved for broadcast).

An extension to the CAN bus standard (CAN 2.0 B) allows extended frame ids of 29 bits, but in practice CANopen
networks big enough to need the extended id range are rarely seen.

In CANopen the 11-bit id of a CAN-frame is known as communication object identifier, or COB-ID.

In case of a transmission collision, the bus arbitration used in the CAN bus allows the frame with the smallest id to be
transmitted first and without a delay.
Using a low code number for time critical functions ensures the lowest possible delay.

Contents of a standard CANopen frame:

- COB-ID RTR Data length Data


Length 11 bits 1 bit 4 bits 0-8 bytes

The default COB-ID mapping sorts frames by attributing a function code (NMT, SYNC, EMCY, PDO, SDO...) to the
first 4 bits, so that critical functions are given priority.
This mapping can however be customized for special purposes (except for NMT and SDO, required for basic
communication).

- Function code Node ID


Length 4 bits 7 bits

The standard reserves certain COB-IDs to network management and SDO transfers.
Some function codes and COB-IDs have to be mapped to standard functionality after device initialization, but can be
configured for other uses later.

Communication models
Different kinds of communication models are used in the messaging between CANopen nodes.

- In a master/slave relationship, one CANopen node is designated as the master, which sends or requests data from
the slaves.
The NMT protocol is an example of a master/slave communication model.

- A client/server relationship is implemented in the SDO protocol, where the SDO client sends data (the object
dictionary index and subindex) to an SDO server,
which replies with one or more SDO packages containing the requested data (the contents of the object dictionary at
the given index).

- A producer/consumer model is used in the Heartbeat and Node Guarding protocols.


In the push-model of producer/consumer, the producer sends data to the consumer without a specific request, whereas
in the pull model, the consumer has to request the data from the producer.

Electronic Data Sheet


Electronic Data Sheet (EDS) is a file format, defined in CiA306, that describes the communication behaviour and the
object dictionary entries of a device.
This allows tools such as service tools, configuration tools, development tools, and others to handle the devices
properly.
Those EDS files are mandatory for passing the CiA CANopen conformance test. A free EDS checker is CANchkEDS.

Glossary of CANopen terms


PDO: Process Data Object - Inputs and outputs. Values of type rotational speed, voltage, frequency, electric
current, etc.

SDO: Service Data Object - Configuration settings, possibly node ID, baud rate, offset, gain, etc.

COB-ID: CAN Object Identifiers.

CAN ID: CAN Identifier. This is the 11-bit CAN message identifier which is at the beginning of every CAN
message on the bus.

EDS: Electronic Data Sheet. This is an INI style or XML style formatted file.

DCF: Device Configuration File. This is a modified EDS file with settings for node ID and baud rate.

Remark:
At this time, MEGA-GUARD has only very little of the complete CANOpen protocol implemented.
An object list with CAN Messages which works with communiction model producer/consumer can be handled.

Shortcuts

Icon:

Place: Plugins\
CANOpen – General Settings

Setting Description Default

Interval Time between Minimal Time between two messages before reporting an error
1000
Messages (50-100000 in milli-seconds

Update Time channel Data to When this protocol running on Server, IOServer uses this time to update
Plugin channel values 1000
(50-100000 in milli-seconds

Can Speed Speed Setting for Canbus 125K, 250k, 500k 1M etc. 500k

Unit Number (this) [in hex] Unit Address Number of Plugin 0xCE

Engine Unit Number [in hex] Unit Address Number of Engine 0x80

Turn Debug Output On connect on comport1, text output what messages are received on Canbus -
no
yes/no

See also:

CANOpen Plugin

How to use Debug Output


CanOpen – Object List

Create Messages Button to create some messages for communication with Valence U-BMS System.

Field Description
ID indentifier of message which will be received and handle by this plugin
IDRange for range of indentifiers
Description description of indentifier
Nr Of Bytes data size of value
MultiPacket is this message a multi-packet
NrOfPackets multi-packets, number of packets which forms the complete message
Pos Nr Packet multi-packets, position in message of packet counter, range 1-32

ID Enter your ID in hex with 4 digits.


Example: C0 have to be entered as 00C0.

IDRange Insert in a range from a value through value (always positive range)
example: 0350 - 03BD (03BD is last valid ID in this range)

Multi-Packet example
Number of packets is 3
Position number packet is 1 (0-7, second data byte)
See also:

CANOpen Plugin
CANOpen – Receive List

Update Desc button, updates desc field when it is known to software (hard-coded)

Field Description
Nr Number, row number
ID ID hex Number + description, see Object List
Byte Order start byte in message, 0..7
Bit Nr start bit in message, 0..7
Bit Cnt number of bits, 1 = digital, 8 = byte, 16 = word, 32 = dword
Use Byte 0 first byte in message should equal to ..
Leaving this field empty, it will not be used
Use Byte 1 second byte in message should equal to ..
Leaving this field empty, it will not be used
MP Byte when having multi-packet message, this number equals packet number
Leaving this field empty, it will not be used
Channel Channel to retrieve value/status from
eq. Leaving this field empty, this will delete entry
Divider received value with be calculated with this divider
before placing it into a channel value
1/100 or *50 Remark: *50 will be shown as 50 / 1
Offset received value will be added to this offset
before placing it into a channel value
Desc Details description depends on contents on message

See also: CANOpen Plugin


CANOpen – Send List

Field Description
Nr row index of this grid
Channel Channel contains value to be sent
ID [in hex] Canbus ID for Message
Byte Order byte number where to store value in message, 0-7
Bit Nr bit number where value to start, 0-7
Bit Cnt number of bits, 1 = digital, 8 = byte, 16 = word, 32 = dword
Message Size number of data bytes to be sent in this message, 0-8
Trigger Channel when digital channel is status on, message will be sent,
leaving blank: message is always sent
Channel Description Description of Channel

See also:

CANOpen Plugin
CANOpen - How to use Debug Output

Set option 'Turn Debug Output on' to on by checking this box (see: CANOpen - General Settings)

Create a serial connection between XP processor and PC.


The processor could have ComPort 1 - 4. The initial version (product version 6008) is the debug option always on
ComPort 2
For a serial link (each comport) on a control processor a serial link isolator product ID [Link] is required.

By opening a putty client (serial port, 115200, 8, N, 1, flow control off) on PC


debug information can be retrieved for displaying it on a screen.
It will show text output which contains the canbus messages are received on Control Processor.

See also:

CANOpen - General Settings


Caterpillar CCM – Plugin

After selecting ‘Plugins’ and CCM – RD xx

There are several items of this plugin:

1. CAT - General Settings

2. CAT - Connection List

3. CAT - Protocol List

Caterpillar is protocol that receives/sends data from/to diesel engines.

CCM = Customer Communication Module

At first login procedure is done, after that Single Parameter Read Request is send and a Single Parameter Read
Response is returned.

Examples:

IID 24 - Single Parameter Read Request

$50 00 24 zz 00 24 F515 cs 0D

IID 25 - Single Parameter Read Response

$50 01 25 zz 00 24 F515 dddd cs 0D

Bytes:

1-4 standard preamble

5 Reply Format ($00 =ASCII or $01 = Binary)

6 Unit Number ($24 [Link] Controller, $61 = CCM)

7-8 PID Parameter Identifier

dddd data value of parameter

cs – checksum following by carriage return

Standard preamble:

$50 = M5X protocol

$00 = User host device or $01 = CCM

$24 Instruction Identifier (=IID) like 24 = Single Parameter Read Request

zz = is number of bytes in message after this byte

Shortcuts
Icon:

Place: Plugins\
CAT – General Settings

Com Port Communication port, No other plug-in should have the same COM port

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Refresh Rate 200-300000 millisec (default: 1000)

Response Time Out 50-5000 millisec (default: 200)

Unit Number 21,22,24,61, (default 61)

Nr of Retries before Failure 0-10 (default: 3)

Inter Character Length 0-10000 bits (default: 100)

Number of Request per Second 0-10 (default: 3)

Use Login Procedure true or false via checkbox

See also:

Caterpillar CCM Plugin


CAT – Connection List

Field Description
Channel Channel to receive the data; type in an existing digital channel
number, or get here from the channel’s configuration form
(status/value link)
PID Parameter identifier 0-FFFF, hex value, via droplist see protocol list
for the ones supported
Bit Nr 0 or empty / (abcd ) a1..a8 / b1..b8 / c1..c8 / d1..d8

By pressing on column “Channel” or “PID” a sort action is performed, first time ascending second descending.

See also:

Caterpillar CCM Plugin


CAT – Protocol List

List of Parameter Identifiers 0000-FFFF supported for this protocol

Examples:

$0015 Throttle Position

$0040 Engine RPM

$0044 Engine Coolant Temp

$AA8A Login Password (not needed to setup, automatic done if “Use Login Procedure” is checked,see also CAT -
General Settings)

$FC07 Warning Status (abcd)

$FC08 ShutdownStatus (abcd)

$FC09 Engine Derate Status (abcd)


ATA – Plugin

After selecting ‘Plugins’ and ATA – RD xx

There are several items of this plugin:

1. ATA - General Settings

2. ATA - Connection List

ATA is protocol that receives data from heavy machines.

Joint SAE/TMC Electronic Data Interchange between Microcomputer systems in heavy duty vehicle applications.
(SA J1587)

Transmission Data (ASCII string without spaces ending):

MID PID Data Checksum

Message Identifier start of each message

-example: 0x80 (128)

Parameter Identification character

-example: 0xBE (190) – Engine Speed

Normally:

PID 000 127 has 1 data char

PID 128-191 has 2 data chars

PID 192-253 has variabel data chars

Shortcuts

Icon:

Place: Plugins\
ATA – General Settings

Com Port Communication port which is used for receiving the input.
No other plug-in is allowed to have the same COM port number.
This applies only if plugin is on running on server.

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Refresh Rate 200-300000 millisec (default: 1000)

Response Time Out 50-5000 millisec (default: 200)

Nr of Retries before Failure 0-10 (default: 3)

Inter Character Length 0-10000 bits (default: 3000)

Number of Request per Second 0-10 (default: 3)

Unit Number 0-255, (default 80) Message Identifier

See also:

ATA Plugin
ATA – Connection List

Field Description
Channel Channel to receive the data; type in an existing channel number
PID Parameter identifier 0-FF, hex value
EU/1000 0 – 10000, bit resolution, example Engine Speed has bit resolution 0.25 rpm -> 250 have to be filled
Bit in
Signed True or False
FMI Failure Mode Identifier, bit nr 0-15
Only support with PID like 100-01 “Low oil pressure warning” with Diagnostic Message (194, fixed
so 194 don’t be filled in)

By pressing on column “Channel” or “PID” a sort action is performed, first time ascending second descending.

See also:

ATA Plugin
IHCS – System Plugin

After selecting ‘Plugins’ and IHCS – RD xx

There are several items of this plugin:

1. IHCS - General Settings

2. IHCS - Connection List

IHC Systems stands for Industrial Handels* Combination (*=Business, trans. dutch)

A band of companies who are dealing in automation systems for dregding industry.

This protocol is sending protocol only.

Shortcuts

Icon:

Place: Plugins\
IHCS – General Settings

Com Port Communication port which is used for sending the output. No other plug-in must have the same COM
port (only if plugin is on running on server)

Baudrate Baudrate of Com Port, 1200, 2400, 4800, 9600 or 19200 (default: 19200).

Refresh Rate 200-300000 millisec (default: 1000)

Data Order Big Endian(Intel based), Little Endian(Motorola based processors)

See also:

IHC Systems Plugin


IHCS – Connection List

Field Description
Channel Channel to receive the data; type in an existing channel number, or get here from the channel’s
configuration form (status/value link)
Type Type of Channel Status # or Value @
Scale Scale of channel value
Block Sending Block Number, not editable, shows message layout

By pressing on column “Channel” a sort action is performed, first time ascending second descending. REMARK:
NO EDITING IS ALLOWED AFTER SORTING ON CHANNEL, BE SURE SORTED FIRST ON BLOCK!

By pressing on column “Block” sending block information is shown more detailed. After pressing again sending
block information is hidden except start identifier.

More than one occurrence of the same channel is allowed.

‘0’ can be entered to create a spare location within the message (you do not have to enter spares at the end of the
last analog and last digital message).

When “INSERT MODE” is on, a blank row is created after the channel just entered.

When the “CHANNEL” field is (made) empty, the row is deleted.

Tips: For fast channel configuration, give a channel range in (like 10101-10125) and press enter, when analog
channels are in that given range a popup-dialog is shown. After selecting a scale and value multiple rows are
created!

See also:

IHC Systems Plugin


MBS_TCP – Modbus Slave TCP Plugin

After selecting ‘Plugins’ and MBS_TCP – RD xx

There are several items of this plugin:

1. MBS_TCP - General Settings

2. MBS_TCP - Read Connection List

3. MBS_TCP – Forced Connection List

This plugin supports the following modbus functions:

Outputs (Read Connection List)

01 – Coils (Digital, error code 0x80)

02 – Status (Digital, error code 0x82))

03 – Hold Registers (Analog, error code 0x83)

04 – Input Registers (Analog, error code 0x84)

Inputs (Forced Connection List)

05 – Single Coil (Digital, error code 0x85)

06 – Single Register (Analog, error code 0x86)

15 - Multiple Coils (Digital, error code 0x8F)

16 - Multiple registers (Analog, error code 0x90)

For Read Connection list it’s possible to send with function 03/04:
16 digital statuses mapped to one modbus address.
For each status specify the bitnumber within this address. (not for modicon addressing)

Structures are sent according Motorola (MSB LSB or Big Endian) processor set.

Register Values are handled depending of configuration:

Register Range Signed Unsigned 8000H Offset


Negative -32768..-1 -32768..-1
(8000.. FFFF) (0..7FFF)
Positive 0..32767 0..65535 0..32767
(0000..7FFF) (0000..FFFFF) (8000..FFFF)
Error Value -32768 65535 -32768
(Out of range) (8000) (FFFF) (0000)
(Values) use hex notation

For value extension and value precision another types of register handling is available.
The base types of these are:

long (signed 32 bits)

ulong (unsigned 32 bits)

float (32 bits, contains one sign bit and exponent (two complement) and 23 bit mantissa)

Furthermore there could be a distinction between low byte and high byte sending/receiving order. (Abbreviation
L/H or H/L) Normally H/L is most frequently used.

Therefore a Modbus register is always 16 bits, two registers addresses are used for a 32 bit value presentation.

MBM TCP/IP message exists of:


MBAP Header Function Number Data

This message provides some differences compared to the MODBUS RTU application data unit used on serial line:

The MODBUS ‘slave address’ field usually used on MODBUS Serial Line is replaced by a single byte ‘Unit
Identifier’ within the MBAP Header. The ‘Unit Identifier’ is used to communicate via devices such as bridges,
routers and gateways that use a single IP address to support multiple independent MODBUS end units.

All MODBUS requests and responses are designed in such a way that the recipient can verify that a message is
finished. For function codes where the MODBUS PDU has a fixed length, the function code alone is sufficient. For
function codes carrying a variable amount of data in the request or response, the data field includes a byte count.

When MODBUS is carried over TCP, additional length information is carried in the MBAP header to allow the
recipient to recognize message boundaries even if the message has been split into multiple packets for transmission.
The existence of explicit and implicit length rules, and use of a CRC-32 error check code (on Ethernet) results in
an infinitesimal chance of undetected corruption to a request or response message.

MBAP Header

Fields Length Description Client Server


Transaction Identification of a MODBUS Request / Initialized by the Recopied by the server
2 Bytes
Identifier Response transaction. client from the received request
Protocol Initialized by the Recopied by the server
2 Bytes 0 = MODBUS protocol
Identifier client from the received request
Length Initialized by the Initialized by the server (
2 Bytes Number of following bytes
client ( request) Response)
Unit Identification of a remote slave
Initialized by the Recopied by the server
Identifier 1 Byte connected on a serial line or on other
client from the received request
buses.

The header is 7 bytes long:

• Transaction Identifier - It is used for transaction pairing, the MODBUS server copies in the response the
transaction identifier of the request.

• Protocol Identifier – It is used for intra-system multiplexing. The MODBUS protocol is identified by the value 0.

• Length - The length field is a byte count of the following fields, including the Unit Identifier and data fields.

• Unit Identifier – This field is used for intra-system routing purpose. It is typically used to communicate to a
MODBUS+ or a MODBUS serial line slave through a gateway between an Ethernet TCP-IP network and a
MODBUS serial line. This field is set by the MODBUS Client in the request and must be returned with the same
value in the response by the server.

Example Function 02 digital status request

MBAP Header Function Nr Address Nr of statusses


(seven bytes) (one byte) (two bytes) (two bytes)
header 0x02 0x01 0x00 0x00 0x09

Example Function 02 digital status reply

MBAP Header Function Nr Byte Count Data


(seven bytes) (one byte) (one byte) (Byte Count bytes)
header 0x02 0x02 0xFF 0xFF

Example Function 02 digital status exception reply

MBAP Header Function Nr Exception code


(seven bytes) (one byte) (one byte)
header 0x82 0x02

To get the status of the points with MODBUS address 100 to 113, when e.g. the points on address 103 and 108 are
'on' and the other points are 'off':

For more information reference the Modbus Specification: Modbus_Messaging_Implementation_Guide_V1_0b.pdf


See [Link]

Shortcuts

Icon:

Place: Plugins\
MBS_TCP – General Settings

Run Details
Field Options/Values and Function
Remote data Remote data being configured
Running on Server: Protocol runs on the Server as a Plug-in
Processor XX : Protocol on Processor board
(XX = Processor number / Protocol Index)
eq. Processor - 04 / Protocol - 1

Protocol settings
Field Options/Values and Function
Slave Slave number
1-255
(default 1)
Port communication port for Ethernet usage
(default: 502)
Address Mode One of three options can be selected:
Value Function
Mapping Addresses are used on the serial line as configured
Mapping-1 Configured Addresses are used with a offset of - 1 to the serial line
eq. PAL 40001 -> Line 40000
Modicon Style MODICON Offsets are used for each modbus function
See Forced or Read Connection-list for offsets

(default Mapping)
Inhibits Masks true: if channel is inhibited all alarm bits return zero irrespective their actual value
Alarm false: all alarm bits return actual value whether inhibited or not
Value 8000H Selected zero point becomes 0x8000 (replaces sign bit) (default: deselected)
Offset
Force Zero Value Force registers values to zero for functions (05/06 or 15/16) when channels are not
available or the registers are not configured
(default unchecked/off)
Accept Second for setup an extra Ethernet connection, only when protocol is running on Server
Connection (default: unchecked/off)
Port Two communication port for Ethernet usage, when 'Accept Second Connection' is checked
(default: 503)
Modbus over Modbus RTU message transmitted with a TCP/IP wrapper and sent over a network instead
TCP/IP of serial comport.
The Server uses an IP Address therefore a SlaveID is not needed.
(default unchecked/off)

Timing settings
Field Options/Values and Function
Time to wait between Receiving complete query and processing and sending Answers.
Response time (ms) Needed if Modbus master needs time to switch handshaking.
(default: 100)
Master Time that has to expire before diagnostics are triggered, see Diagnostics.
disconnected - No communication, on line no bytes are received
timeout (ms) time of 0 disables these diagnostics.
(default: 10000)

Add All Channels - Running on Server Only


To put all channels in system into this plugin, when checked: no read connection list is needed to be configured.

See also:

Modbus Slave TCP Plugin


Modbus Slave TCP Diagnostics
Modbus Slave TCP Read Connection List
Modbus Slave TCP Forced Connection List
MBS_TCP – Read Connection List

Column Options or Values


Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the channel’s configuration form
(status/value link)
Value or one of the status bits
Type Sensfail, Any Alarm, Inhibited, Skipped, All Status
(default depends on channel)
Scale value before send
Scale *1000, *100, *10, 1, /10, /100, /1000
(default 1)
Function number, like 01/02 or 03/04
Function
for MODICON addressing like 01, 02, 03 or 04
Address Address value
bit number, applies to function 03 or 04 with status connection only
Bit Nr. 00, 01 till 15
(default 00)
Register Format How is register handled
- 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Channel
Description of channel for documentation only
Description

A modbus master receives channel information from the slave. (=Output List)

Sorting
By pressing on column “Channel” or ”Function” a sort action is performed, first time ascending second descending.

Addres field of actual message depends on Addres Mode, MBS_TCP - General Settings

Option Conversion
“Mapping / No Offset” straight copy of address
“Mapping / Offset - 1” address - 1
“Modicon Style” Function Conversion
01 address - 1
02 address - 10001
03 address - 40001
04 address - 30001

Export All Channels


See: MBS_TCP - General Settings to make this option active.
The Export option to creates a .csv file with all channel specifications from the AMCS system.

CSV file Example with column header and example data


Channel , TagName, Type , Scale , Function , Address , Signedness , Description
1001 , 01001 , DS , 1 , 3 , 0001 , Unsigned , TIMER KEYSWITCH ON/OFF TEST
1017 , 01017 , DS , 1 , 3 , 0017 , Unsigned , DEADMAN ALARM
1020 , 01020 , AV , 1 , 3 , 0018 , Signed , BAROMETRIC SENSOR
1020 , 01020 , AS , 1 , 3 , 0019 , Unsigned , BAROMETRIC SENSOR
1021 , 01021 , DS , 1 , 3 , 0020 , Unsigned , BAROMETRIC SENSOR FAIL

TagName Column:
Tag name is a 10 character unique name for channel. Each analog channel has value register row and a status register row.

Type Column:
DS : digital status
AV : analog value
AS : analog status

Scale Column:
Multiplier to allow usage of decimal numbers in integer format.

Function Column:
Modbus function for transmitting value to master.

Signed / Unsigned Column:


Analog values use signed, digital values (bits) are using unsigned.

The size of a single signed value is 2 bytes. For large values such as latitude/longitude and hour counters the register holds the lower 16 bits.

Description Column:
Description is textual information with maximum length of 40 characters.
This data is displayed on screen and logged on file in alarm lists and group information.

Status register format (with Type column value AS, DS):


Description Value (hex)
Normal 0x00
Very Low 0x01
Low & Boolean value* 0x02
High 0x04
Very High 0x08
Average 0x20
Sensor Fail 0x40
Not Available 0x80
Skip 0x100
Inhibit 0x200
Ack All 0x400

* Boolean values for digital status channels are stored in Bit 2.


When using normally open:
- for open relay "Register Value or 0x02 = False"
- for closed relay "Register Value or 0x02 = True"
When using normally closed above values are inverted.

Tip: For fast channel configuration, configure the last line complete,
press not enter at the last column, go back to first column, give a channel range in
(like 10101-10125) and press enter, now multiple rows are created!

See also:

Modbus Slave TCP Plugin


Modbus Slave TCP Forced Connection List
MBS_TCP – Forced Connection List

Column Options or Values


Channel Channel to send the data; type in an existing digital/analog channel number, or get here from the channel’s configuration form
(status/value link)
Type Value or one of the status bits (only “Low” is supported yet)
Scale Scale value after received
Function Function number, like 05/15 or 06/16
Address Address value
Bit Nr. bit number, status only
Register Format How is register handled
- 8000H Offset means zero point becomes 0x08000
Signed, Unsigned, 8000H Offset or Free (default Signed)
Long (H/L), Long (L/H), ULong (H/L), ULong (LH), Float (H/L), Float (L/H)
Channel
Description of channel for documentation only
Description

A modbus master send channel information to the slave. (=Input List)

By pressing on column “Channel” a sort action is performed, first time ascending second descending.

Return Button: Return from gateway, only available when getting there from a channel configuration (status/value link)

Addres field of actual message depends on Addres Mode, MBS_TCP - General Settings

Option Conversion
“Mapping / No Offset” straight copy of address
“Mapping / Offset - 1” address - 1
“Modicon Style” Function Conversion
05/15 address - 1
06/16 address - 40001

Tips: For fast channel configuration, configure the last line complete, press not enter at the last column, go back to first column, give a channel range in
(like 10101-10125) and press enter, now multiple rows are created!

See also:

Modbus Slave TCP Plugin


Modbus Slave TCP Read Connection List
MBS_TCP - Diagnostics

Diagnostics are used to report Failures or important statusses


the modbus slave plugin has the following diagnostics

MBS_TCP: RD(%RD64) TCP/IP Socket Error

Diagnostic is generated when the socket can not be used, while active the plugin will try to open this
socket/port.

(i) Only triggered on server

MBS_TCP: RD(%RD64) No Communication

Diagnostic is generated when Modbus slave receives no data for a "Master disconnected timeout" time

Solution: check if all wires are correct from Modbus Master to Modbus Slave

MBS_TCP: RD(%RD64) TCP Socket Error 2nd Port

Diagnostic is generated when the socket can not be used, while active the plugin will try to open this
socket/port.

MBS_TCP: RD(%RD64) No Communication 2nd Port

Diagnostic is generated when Modbus slave receives no data for a "Master disconnected timeout" time

Solution: check if all wires are correct from Modbus Master to Modbus Slave

Legend
Tag Replaced by
(RD%64) Remote data number

See also:

Modbus Slave TCP Plugin


Modbus Slave TCP general settings
EAC3 Plugin

After selecting ‘Plugins’ and EAC

There are several items of this plugin:

1. EAC3 - General Settings

2. EAC3 - Connection List

AutroCARGO 2000 Product contains a EAC-300 unit the IO-Processor talk to.

ASAP (AUTRONICA STANDARD ASCII PROTOCOL) is a protocol for asynchronous serial communication
between AUTRONICA products and systems.

The describes the protocol frame contents for data exchange to/from the EAC-300 microcomputer is based on the
ASAP protocol.
We will use the ASAP Definitions in this document.

The protocol only applies to point to point half duplex transmission mode where the EAC-300 microcomputer is
regarded as a slave to a IO-Processor.
The transmission is done by RS 232C, by 4 20 mA current loop or by RS-422.

The following ASAP directive is used to request data for a number of sensors:

#EA0CxxCSAnnn

E means a data read from the EAC-300 microcomputer


xx is function code, see table below
nnn is number of data/sensor values to read
is frame parity character, see calculation example chapter 5.
is carriage return character

This is the answer from EAC-300:

#EA0CxxCSAnnn<data 1><data 2>...<data nnn><Block parity><fp><CR>

<data 1> to <data nnn> is 7 characters each as shown in column Format in the table below.
<Block parity> is 7 characters and is the sum of all values after removing the comma.
<fp> is frame parity character, see calculation example chapter 5.
<CR> is carriage return character>

Example:

Reading 4 ullage values from EAC-300 with function code 40:

ASAP request: #EA0C40CSA004<CR>


ASAP answer: #EA0C40CSA004019.060004.360013.897013.8340051151l<CR>

That is:
ullage1 = 019.060, ullage2 = 004.360, ullage3 = 013.897, ullage4 = 013.834
Block parity = 0051151
Function code summary
* = normally for Autronica use only

xx = function number Format, 7 characters <unit>

40 = Cargo ullage [Link] <m >


41 = Cargo level [Link] <m >
42 = Cargo volume [Link] <m3 >
.. nnnnn.n (large tanks)
43*= Cargo line press. alarms nnnnnnn <integer>
44 = Cargo weight [Link] <Mt >
.. nnnnn.n (large tanks)
45*= Cargo avg. temp. in liquid alarms nnnnnnn <integer>
46 = Cargo avg. temperature in liquid nnnnn.n <°C >
.. [Link] (LNG ships)
47 = Cargo calc. Density [Link] <Mt/m3 >
48 = Inert gas pressure nnnnnnn <mmH2O >
50 = Cargo weight rate nnnnn.n <Mt/h >
51*= Cargo ullage alarms nnnnnnn <integer>
52*= HB, Cargo tank dimension nnnnnnn <mm >
53*= HR, Cargo tank dimension nnnnnnn <mm >
54*= HT, Cargo tank dimension nnnnnnn <mm >
55*= Cargo temp. sensors error nnnnnnn <integer>
56 = Cargo line pressure [Link] <Bar >
57*= Inert gas alarms nnnnnnn <integer>
58*= Vapour alarms nnnnnnn <integer>
59 = Vapour pressure nnnnnnn <mmH2O >
60*= LON alarms nnnnnnn <integer>
70 = Water ballast level nnnnnnn <mm >
71 = Water ballast volume nnnnn.n <m3 >
72*= Water ballast alarm nnnnnnn <integer>
73 = Service level nnnnnn <mm >
74 = Service tanks volume nnnnn.n <m3 >
75 = Service temperature nnnnn.n <°C >
76*= Service level alarms nnnnnnn <integer>
77 = Misc. pressure [Link] <Bar >
78 = Misc. temperature nnnnn.n <°C >
79*= Misc. pressure alarms nnnnnnn <integer>
80 = Atm/Draft/Trim/List Sensor 1..17 next page
81 = Cargo lower temperature nnnnn.n <°C >
.. [Link] (LNG ships)
82 = Cargo mid temperature nnnnn.n <°C >
.. [Link] (LNG ships)
83 = Cargo upper temperature nnnnn.n <°C >
.. [Link] (LNG ships)
86*= Class reason error codes ... ...
87*= Service temperature alarms nnnnnnn <integer>
88*= Misc. temperature alarms nnnnnnn <integer>
89*= LR, Cargo tank dimension nnnnnnn <mm >
90*= Reserved - -
91 = Cargo 4th temperature nnnnn.n <°C >
.. [Link] (LNG ships)
92 = Cargo 5th temperature nnnnn.n <°C >
.. [Link] (LNG ships)
93 = Resistance 1 value nnnnnnn <0.01 %>
94 = Resistance 2 value nnnnnnn <0.01 %>
95 = Cargo avg. temperature in gas alarms nnnnnnn <integer>
96 = Cargo avg. temperature in gas nnnnn.n <°C >
.. [Link] (LNG ships)
97 = Cargo temp. sensor in liquid indication nnnnnnn <integer>
98 = Cargo 6th temperature nnnnn.n <°C >
.. [Link] (LNG ships)

Sensor definition for function number 80:

xx = function number Format, 7 characters <unit>

1 = Atm. Pressure nnnnnnn <mmH2O >


2 = Draft Fore calculated nnnnnnn <mm >
3 = Draft Mid calculated nnnnnnn <mm >
4 = Draft Aft calculated nnnnnnn <mm >
5 = Trim nnnnnnn <mm >
6 = List nnnnnnn <0.01 degr.>
7* = Manual trim <mm >
nnnnnnn
0099999=auto trim
8* = Manual list <0.01 degr.>
nnnnnnn
0099999=auto list
9* = Manual atm. Pressure <mmH2O >
nnnnnnn
0099999=auto atm.
10*= Seagoing mode nnnnnnn 0099999= not seagoing
11*= Draft sensor errors nnnnnnn <integer>
12 = Draft Mid Port calculated nnnnnnn <mm >
13 = Draft Mid Stb calculated nnnnnnn <mm >
14*= Draft Fore sensor nnnnnnn <mm >
15*= Draft Mid Port sensor nnnnnnn <mm >
16*= Draft Mid Stb sensor nnnnnnn <mm >
17*= Draft Aft sensor nnnnnnn <mm >

Shortcuts

Icon:

Place: Plugins\
EAC3 – General Settings

Setting Description Default


Com Port Comport to use (1-4) 2
Baudrate Communication Speed
1200
(1200, 2400, 4800, 9600, 19200)
Data Bits Number of Data bits (7, 8) 8
Parity Communication Parity
None
(None, Odd, Even, Space, Mark)
Stop Bits Number of Stop Bits (0, 1, 2) 1

See also:

EAC3 Plugin
EAC3 – Connection List

Field Description
Channel Channel number to update (Analog in; Digital in; Analog out; Digital out)
Function function definition
Element element from function
EAC-300 Description Description, information

Remarks:

For faster configuration it is possible to use CTRL+D:

configure one complete row

select one column and multiple empty rows

press CTRL+D, automaticially a default will filled in

By double-clicking on channel column header sort action is performed.

See also:

EAC3 Plugin
MG – Plugin

After selecting ‘Plugins’ and LineIn

There are several items of this plugin:

1. MG - General Settings

2. MG - Connection List

MG Protocol runs only XP processor

MG = MEGA-Guard
It connects source channels from MEGA-Guard (Stand-Alone / Mini-Guard) Panels to local XP channels
by sending/receiving channel information over ethernet.

It uses a special multicast group (=60) to accomplish this:


Treeview from the PAL
Example: Multicast group 60 configured.

Shortcuts

Icon:

Place: Plugins\
MG – General Settings

Setting Description Default


Response Timeout Timeout before an error will be triggered 1000

See also:

MG Plugin
MG – Connection List

Field Description
Source Channel source Channel number, which value needs to be sent
Source Description channel tag and channel description
Destination Channel destination Channel number where received value is stored and used
Destination Description channel tag and channel description

Example shows AMS channels from XP05, which are sent to serveral panels, to create a central dimming function.

See also:

MG Plugin
NMEA2K – Plugin

After selecting ‘Plugins’ and NMEA2K – RD xx

There are several items of this plugin:

1. NMEA2K - General Settings

2. NMEA2K - Message List

3. NMEA2K - Connection List

4. NMEA2K - Send List

5. NMEA2K - Diagnostic List

Introduction (from Internet)


NMEA 2000, abbreviated to NMEA2k or N2K and standardised as IEC 61162-3, is a plug-and-play communications
standard used for connecting marine sensors and display units within ships and boats.
Communication runs at 250 kilobits-per-second and allows any sensor to talk to any display unit or other device
compatible with NMEA 2000 protocols.
Electrically, NMEA 2000 is compatible with the Controller Area Network ("CAN Bus") used on road vehicles
and fuel engines.
The higher-level protocol format is based on SAE J1939, with specific messages for the marine environment.

It takes a backbone
The key to a NMEA 2000 network is the "backbone," (or "trunk") a central cable running throughout the vessel.
The backbone is connected to the boat's power and ground, and your NMEA 2000 devices are connected to the
backbone
via special T-connectors, sometimes referred to as "drop tees."

The beauty of this networking system is that it allows different devices (even ones from different manufacturers)
to communicate with one another.
It's ahead of the stacks of various devices found on so many ships, and it's a lot easier than wiring all this stuff in one by
one.

We could use the phrase "plug and play," which is a reasonably accurate description of the connection itself.
The actual installation will probably involve some challenges,
but that really depends on your ship and the network you're trying to build.
Several marine electronics manufacturers have networks of their own. Some of them work with NMEA 2000,
while others are proprietary, and require adapters to plug into a backbone.
When you see the phrase "NMEA 2000 Certified" on a piece of electronic gear, from,
let's say, FUSION, you'll know that the device will work with your existing NMEA 2000 network.
So, how will NMEA 2000 work for me?
The size of the network you build will mostly depend on the size of the ship you have.
On a smaller ships, a receiver and a chartplotter are probably all you need,
but if you have a larger vessel or a frequent need to have remote controllers handy,
we can add more NMEA 2000-compatible devices.
The limit is 50, which is more than the average ship will need.

Next follows a table with NMEA 2000 vs NMEA 0183,


it gives some insight how some general formatters are converted to new PGN.(=Parameter Group Number)
Shortcuts

Icon:

Place: Plugins\
NMEA2K – General Settings

Setting Description Default

Interval Time between Minimal Time between two messages before reporting an error
1000
Messages (50-100000 in milli-seconds

Update Time channel Data to When this protocol running on Server, IOServer uses this time to
Plugin update channel values 1000
(50-100000 in milli-seconds

Can Speed Speed Setting for Canbus 125K, 250k, 500k 1M etc. 250k

Unit Number (this) [in hex] Unit Address Number of Plugin 0xCE

Engine Unit Number [in hex] Unit Address Number of Engine 0x80

Turn Big Endian how to handle values greater than 1 byte - yes/no
(Motorola/SPARC) On In computing, endianness refers to the order of bytes yes
within a binary representation of a number.

Turn Debug Output On connect on comport1, text output what messages are received on
no
Canbus - yes/no

See also:

NMEA2K Plugin

How to use Debug Output


the description is for CANOpen, but is same for NMEA2K.
NMEA2K – Connection List

Update Default button, updates fields when it is known to software (hard-coded), see below, same as for send list.

Field Description
Nr Number, row number
ID ID Number + description, see Message List
Byte Order start byte in message, 0..255
Bit Nr start bit in message, 0..7
Bit Cnt number of bits, 1 = digital, 8 = byte, 16 = word, 32 = dword
Source ID 1 first byte in message should equal to ..
Leaving this field empty, it will not be used
Source ID 2 second byte in message should equal to ..
Leaving this field empty, it will not be used
Channel Channel to retrieve value/status from
eq. Leaving this field empty, this will delete entry
Divider received value with be calculated with this divider
before placing it into a channel value
1/100 or *50 Remark: *50 will be shown as 50 / 1
Offset received value will be added to this offset
before placing it into a channel value
Desc Details description depends on contents on message

Update Default:
Add default configuration fields of a certain ID string.
First select ID on empty line and afterthat press on 'Update Default' button.
Fields (which are known by the plugin) are automaticially filled in.

See also: NMEA2K Plugin


NMEA2K – Message List

Create Messages Button to create some messages for communication with NMEA2K bus.

Field Description
ID indentifier of message which will be received or sent by this plugin
Description description of indentifier
Nr Of Bytes data size of message
Receive this message will be received from external device
like Engine, GPS or Sensor
Send this message will be sent to external device

ID Enter your PGN in decimal.


Example: 127250 (Vessel Heading)

See also:

NMEA2K Plugin
NMEA2K – Send List

Field Description
Nr row index of this grid
Channel Channel contains value to be sent
ID NMEA2K ID for Message
Byte Order byte number where to store value in message, 0-7
Bit Nr bit number where value to start, 0-7
Bit Cnt number of bits, 1 = digital, 8 = byte, 16 = word, 32 = dword
Divider send value will be calculated with this divider
before putting it into the message
1/100 or *50 Remark: *50 will be shown as 50 / 1
Offset send value will be calculated with this offset
before putting it into the message
channel range -100 .. 100, send value range 0 - 200 (positive)
Trigger Channel when digital channel is status on, message will be sent,
leaving blank: message is always sent
Channel Description Description of Channel

Update Default:
Add default configuration fields of a certain ID string.
First select ID on empty line and afterthat press on 'Update Default' button.
Fields (which are known by the plugin) are automaticially filled in.

See also:

NMEA2K Plugin
NMEA2K – Diagnostic List

Field Description
Nr row index of this grid
Channel Digital Channel which will be triggered into alarm/status high when fault occurs
ID Parameter Group Number
SPN/Order Suspect Parameter Number or Byte Order
FMI/Bit Failure Mode Identifier or Bit Number which to be checked
Description Alarm Description

See also:

NMEA2K Plugin
Product Version Information

PAL Help
product: MEGA-GUARD E-Series
version: [Link]

It also possible to see version information inside Windows Explorer:

go to Windows Explorer (Start button, Programs, Accessories, Windows Explorer)

browse to an executable file like '[Link]'

select file by using left mouse button

press right mouse button, a popup menu will be shown

select properties

go tab-page 'Version'

click on 'Product Version' inside 'Item name' List Box

Edit Box 'Value' shows current product version of executable file

You might also like