Attributes to Configure in the Comm-Port Point

Attribute Name Description
comm info

This table contains the following information:

Field Number Field Name DE Type Possible Values
0 key up delay rtINT16 -32,767 to 32,767 (msec)
1 key down delay rtINT16 0 to 32,767 (msec)
2 channel clear delay rtUINT16 0 to 65,535 (msec)
3 turnaround delay rtUINT16 0 to 65,535 (msec)

Where:

Field Name Description
key up delay The desired time to wait (in milliseconds) after asserting RTS (request to send), before sending data. If the value is 0 (zero), no RTS is asserted. If the value is greater than zero, the host will wait that number of milliseconds, after asserting RTS, before beginning transmission, regardless of the value of CTS (clear to send). If the value is less than zero, the host will wait until either the CTS signal is received, or the specified number of milliseconds has expired before transmitting. If the specified time expires before CTS is received, the transmission fails.
key down delay The desired time to wait (in milliseconds) after the last data character has been sent, before resetting RTS (request to send). This should be a positive number; if the value is negative, the minimum time of rtNap() is used (see Section 3 of the RTAP Reference Manual for details).
channel clear delay The desired time to wait (in milliseconds) for the DCD (data carrier detect) line to clear before asserting RTS. If this value is zero, the DCD line will be ignored. If the value is positive, the host will wait the specified number of milliseconds for the DCD to clear before asserting RTS. If the DCD line has not cleared before the specified time has expired, the transmission fails.
turnaround delay The desired time to wait (in milliseconds) after data has been transmitted in either direction, before a transmission in the opposite direction is initiated. This time must be at least the sum of the "channel clear delay", "key up delay" and "key down delay".

 

[note] This table's information is only used if this table is not specified in the scan device point.
rs232

This table contains the following information:

Field Number Field Name DE Type Possible Values
0 baud rate rtUINT16 50 to 19200 (bits/sec.)
1 data bits rtUINT8 7 or 8 (bits)
2 stop bits rtUINT8 1 or 2 (bits)
3 parity rtUINT8 0=none, 1=odd, 2=even
4 reserved rtUINT8  

Where:

Field Name Description
baud rate The transmission rate of the communication line in bits per second.
data bits The number of significant bits within a transmitted character or byte. This should always be set to 8 according to the protocol manual.
stop bits The number of bits indicating the end of a transmitted character.
parity The type of parity used for verifying correct communication at the character level. Parity can be either even, odd, or none. If parity is specified, and a parity error occurs, then the character is ignored. This will cause a communication error.
time sync This attribute is used by the scan task at initialization time to determine if the scan task should send a Time Delay request to the remote device. This request establishes the message turn around time which is used to provide an offset for relative time calculations for objects that require it. If this attribute is zero, then no time delay measurement is attempted. If this attribute is greater than zero, a delay measurement will be attempted. If successful, the value will be set to one, if it fails, the value will be changed to two.
master stn address Specifies the address for this master
max data size

Specifies the maximum number of bytes to be sent in a single DNP packet; which includes the application level frame and any object frame and data. A non-zero value imposes a size limitation. Regardless of the value of this attribute, at least one scan record will be formed into a message. This attribute can be used to limit the outgoing packet if any remote device(s) has a maximum fragment size that it can receive.

[warning] Regardless of the value of this attribute, at least one scan record will be formed into a message if optimization is disabled and one object will be formed into a message if optimization is enabled.

 

[warning] A minimum value of four is silently enforced.

 

[note] This limit is only imposed on data sent to the remote device, not data received.
modem Specifies whether this communication port is connected through a modem or not.
increment app seq Specifies whether the application sequence number is incremented with each message sent to the RTU or not.
test link fails Specifies whether the scan input records and scan input status are set to failed if the test link datalink message fails. The default if this attribute does not exist is zero.
dial string

Specifies the chat script used for talking to the modem. This attribute is only used if "modem" is set to one. The chat script is a series of expect-send pairs separated by white space. The following special sets of characters are treated specially when preceeded by a double backslash:

Character(s) Description
d delay for two seconds
p delay for 0.25 seconds
n line feed
r carriage return
t tab
s space
T replaced with phone number to dial

 

[note] Control characters can be sent by preceeding the character with a caret.

In addition to the above special characters, it is possible to set a timeout value for receiving a response from the modem within the string using the TIMEOUT value string. The value is specified in seconds and will be used until the next TIMEOUT token.

Embedded expect-send pairs can be put into the expect string by using a dash as a separator.

Example:

TIMEOUT 5 \"\" AT OK-AT-OK \\dATDT\\T TIMEOUT 60 CONNECT
                

Sets initial timeout to five seconds, expects nothing, sends AT, expects OK, but if it doesn't get it, will send AT and expect OK, pauses for two seconds, sends ATDT followed by phone number, and waits sixty seconds for the CONNECT string.

hangup string Specifies the string that will be sent to the modem to hang it up. For example, +++ATH0.
abort strings Specifies a set of strings that will be returned from the modem when the dial fails. For example,
  • BUSY
  • NO CARRIER
socket Specifies whether the scan task should use a serial connection (0), a TCP/IP socket connection (1), or a UDP socket connection (2).
socket info

Specifies the host and service name to use when making a socket connection. This attribute is only used if "socket" is set to one or two. The entry to use is specified in the "socket index" attribute. This table contains the following:

Field Number Field Name DE Type Possible Values
0 host name rtBYTES8 (see below)
1 service name rtBYTES12 (see below)

Where:

Field Name Description
host name Valid host name.
service name Valid service name from /etc/services. The socket number specified should be specified using tcp (eg. dnp_sock 19000/tcp) if the socket is set for TCP/IP or udp (eg. dnp_sock 19000/udp) if the socket is set for UDP.
socket index

Specifies the index into the "socket info" table of the entry to use. Only used if "socket" is set to one or two.

[note] This attribute can also be located in the scan device point if the "socket" is set for UDP/IP (2). This allows individual scan devices to be failed over separately for a UDP/IP connection.
process name Specifies the RTAP name that this scan task will run as. This is useful for debugging purposes when there are more than one DNP 3.0 communication port.
messages

Specifies the value to write and the database address to write to, when a specified message type is received. This table contains the following:

Field Number Field Name DE Type Possible Values
0 msg type rtUINT32 (see below)
1 database addr rtDB_XREF (see below)
2 value rtDOUBLE (see below)

Where:

Field Name Description
msg type Specifies the message type (see rtMsgSend(3)) that this record is for.
database addr Specifies the database address that the value should be written to.
value Specifies the value to write to the database address. Note that the value will be coerced into the appropriate data element type before being written.
primary Specifies whether this scan task acting as the primary scan task or the backup scan task. In backup mode, the scan task will not perform any of the following:
  • polling
  • force polls
  • send out time syncs
  • enable/disable unsolicited messages
  • send out warm/cold restarts
  • send out confirmation messages

The backup scan task will however, send out write requests.

enable unsol reset Specifies whether the scan task will automatically send out enable unsolicited messages when the restart IIN bit is received from the RTU. A value of one, will enable unsolicited messages to be sent automatically.
max recv size Specifies the maximum number of data bytes in the response message. If the request would cause the response to exceed this limit, the request will be broken down into multiple requests. Note that vectors will not be broken down. This attribute can be located at the scan device point as well in which case it will override the comm port point's value. If this value is zero, response size will not be checked.
test link interval Specifies the frequency, in seconds, that a datalink test link message will be sent. A non-zero value will result in a timekeeper interval request.
reply timeout The number of milliseconds that the scan task will wait for a reply from the remote device before retrying the communication. If a value of zero is specified, it will wait forever. This timeout is used at the data link layer of the DNP protocol. See message timeout for a timeout value at the application layer.
retry count The number of times you want the scan task to retry communication with an enabled remote device before registering a communication failure. This retry count is used at the data link layer of the DNP protocol. See message retries for a retry count at the application layer.
debug device UNIX

The device file where debug information is to be printed. The full path must be provided; for example "/dev/ptyqf". In addition to a device file, the following key words are recognized: "stdout" and "stderr"; which send debug information to the specified file pointer.

[warning] If a pseudo-terminal device is to be used, specify the master device; otherwise the driver will be hung on the open waiting for the master side of the pseudo-terminal to be opened.

 

[caution] If a pseudo-terminal device is used, the scan task must be started before any process tries to open the slave device; otherwise no debug information will be printed.
Windows

This specifies a "named pipe" that will be created on the server machine. Client applications can then make connections to this "named pipe" to receive debug information. A separate thread is created to handle each client. There is a maximum of six client connections allowed. Additional clients trying to connect will fail.

Since this is a "named pipe", clients can connect from other machines on the network.

[warning] Depending on the network connection speed, some debug data may be lost. Tests here, show that for a full 10 Mbit/sec connection, no data is lost.

 

[note]

This can also specify the name of an existing file. In this case, the debug information will only be sent to the file. Use this when you have a fast network connection with lots of data.

See the tesserNet Scan Debug Utilities for freely distributable client applications.