S3964R
♦
ProLinx Gateway
Functional Overview
Siemens 3964R Protocol
Driver Manual
Page 40 of 64
ProSoft Technology, Inc.
April 14, 2009
5.3.3 Port Receive Data
The Port Receive data consists of header information and parameter data.
For each ProLinx serial port connected to a 3964R device, you need to
continually monitor Word 0, Sequence Number, in the Receive Buffer for a
change in value. When it changes, check the Job Code so you can act upon it.
The 3964R telegram can arrive at any time, asynchronously.
The Port Receive Data in general:
Word Description
0
Receive Sequence number. This value is incremented by the 3964R driver
when new data is ready to be read from the Port Receive database. When this
value changes, it should signal the Modbus TCP/IP device to read the data.
1
Transmit read ACK. This value is used to acknowledge that the transmit data
has been read by the 3964R driver. This value will be updated with the latest
Transmit Sequence Number from the most recent transmit. The value from
word[0] of the Port Transmit data will be copied to this location by the 3964R
driver after the driver has read the new transmit data from the database.
2
Blocks remaining. This location is reserved and should always be 0.
3
Error Code. If an error occurs in the 3964R driver, the error code will be stored
in this location. This error location is updated asynchronously to data sends
and receives, so it should be monitored continuously because errors can occur
even when the Modbus TCP/IP device is not sending or receiving data. Any
new Transmit of data will clear this error, so this value should always be
checked prior to a new transmission.
4
Number of data words in this block. This location contains the number of data
words that are included in this block of data. This will include the 1 word block
number (word[5]) plus the 10 word header stored in word[6] through word[15]
plus the number of data words in this message. The calculation is "1 + 10 +
#of data words".
5
Multi-block Block Number. This location is reserved and should always be 0.
6
Job Code ID. This location will contain the job code for this message. Possible
job codes are:
0x0045 – response to a previous fetch command
0x1141 – the remote 3964R Communication Partner is initiating an
RK512 DB-SEND
0x1145 – the remote 3964R Communication Partner is initiating an
RK512 DB-FETCH
0x11FF – the remote 3964R Communication Partner is initiating a non-
RK512 SEND
7
RK512 Data Block (DB). This location contains the number of the data block to
read/write data. Usually set to 0.
8
RK512 Data Word (DW). This location contains the index of the data word
within the selected data block to read/write data. Usually set to 0.
9
Number of data words total. This location contains the actual number of data
words to be read or written.
10
Number of data words block. This value will always be equal to number of data
words total.
11 Always
0.
12 Always
0.