beautypg.com

ProSoft Technology MVI69-GSC User Manual

Page 79

background image

MVI69-GSC ♦ CompactLogix or MicroLogix Platform

Reference

Generic ASCII Serial Communication Module

User Manual

ProSoft Technology, Inc.

Page 79 of 102

September 24, 2010

The receive buffer in the module can hold up to 4096 characters. This large size

permits the buffering of a large amount of data before a transfer of the data to the

controller is required. The module buffers incoming ASCII characters in its

receive buffer until one of the user-specified termination conditions is recognized.

The module will then transfer the received terminated string to the controller.
The ladder logic required to properly handle transfer of terminated strings longer

than 50 characters per port is more complex than the simpler version of ladder

logic discussed above. If the terminated string is larger than 50 characters,

multiple blocks will be used to transfer the data to the controller. The first block

will contain a value of -1 in the "Number of Characters Received" data field. This

indicates that there will be more blocks to follow and that the current block

contains 50 ASCII character codes. As long as more than 50 characters remain

in the buffer waiting to be sent to the ladder logic, successive Read Blocks will

continue to show the "Number of Characters Received" as -1. When 50 or fewer

ASCII characters remain in the buffer, the module will send the last block with a

positive number in the length field. The value passed represents the number of

characters present in the data area, which is the last characters of the complete,

terminated string. The ladder logic must recognize the presence of one or more

successive blocks with -1 lengths and then the positive number of the last block

as indication that a single, complete, long string has been completely transferred.
The two byte values at bytes 1 (port 1 transmit count) and 29 (port 2 transmit

count) inform the processor of the number of ASCII characters transferred in the

last write block to the respective port transmit buffers. If a value of zero is

returned in one of these words and data was sent in the last write block, the

ladder logic must re-send the data in the next write block because the port was in

a busy state and could not transmit the last data to be written at the time the

Write Block was receive by the module from the ladder logic. If a non-zero value

is returned in one of these bytes, the value represents the number of ASCII

characters from the last write block that were successfully moved into the port’s

transmit buffer.
The status information transferred in the read block can be used by the

processor to determine the state and "health" of the module and the device(s)

attached to each application port. An important member of the value in the status

object is error word for each port. This value contains the configuration error flags

for each port and the receive buffer overflow error flag.