0% found this document useful (0 votes)
108 views230 pages

ACCOL Custom Protocols

Uploaded by

ietgods
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)
108 views230 pages

ACCOL Custom Protocols

Uploaded by

ietgods
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
You are on page 1/ 230

Reference Manual

D4066
May 2006 ACCOL II Software

ACCOL II Custom Protocols Manual


For use with DPC 3330, DPC 3335, RTU 3305, RTU 3310, and
3530-xx series units

www.EmersonProcess.com/Bristol
BLANK PAGE
SECTION 2 – ODD HEADER

Getting Additional Information

In addition to the information contained in this manual, you may receive additional assistance in
using this product from the following sources:

Help Files / Release Notes

Many Bristol software products incorporate help screens. In addition, the software typically
includes a ‘read me’ release notes file detailing new features in the product, as well as other
information which was available too late for inclusion in the manual.

Contacting Bristol Directly

The address for our world headquarters is:

Bristol, Inc.
a division of Emerson Process Management
1100 Buckingham Street
Watertown, Connecticut 06795 USA

Our main phone numbers are:

(860) 945-2200
(860) 945-2213 (FAX)

Regular office hours are Monday through Friday, 8:00AM to 4:30PM Eastern Time, excluding
holidays, and scheduled factory shutdowns. During other hours, callers may leave messages
using Bristol's voice mail system.

Telephone / E-Mail Support - Technical Questions

During regular business hours, Bristol's Application Support Group can provide telephone/e-mail
support for your technical questions.

i 5/2006
SECTION 2 – EVEN HEADER

Please refer to the table, below, for a list of products, and their associated technical support
contact information:

Product Support Phone E-Mail Address:


Number(s):
ControlWave series (hardware and (860) 945-2394 [email protected]
software) (860) 945-2286

Network 3000 hardware except for (860) 945-2502 [email protected]


TeleFlow series

TeleFlow series (3530-xx) (860) 945-8604. [email protected]

ACCOL, Open BSI, UOI, all other (860) 945-2286 [email protected]


software except for ControlWave and
OE.

OpenEnterprise (OE) software (860) 945-3865 [email protected]

Radio telemetry services (interfacing (407) 629-9463 [email protected]


Bristol hardware to radios) (407) 629-9464.

Non-Technical Questions, Product Orders, etc.

Questions of a non-technical nature (product orders, literature requests, price and delivery
information, etc.) should be directed to the nearest Bristol sales office or to your Bristol-
authorized sales representative. Please call the main Bristol number (860-945-2200) or visit our
web site, listed below, if you are unsure which office covers your particular area.

Visit our Site on the World Wide Web

For general information about Bristol, Inc. and its products, please visit our site on the World
Wide Web at: www.EmersonProcess.com/Bristol

Training Courses

Bristol's Training Department offers a wide variety of courses in Bristol hardware and software
at our Watertown, Connecticut headquarters, and at selected Bristol regional offices, throughout
the year. Contact our Training Department at (860) 945-2343 for course information, enrollment,
pricing, and schedules.

5/2006 ii
Who Should Read This Manual?
This manual is intended to be used by a System Engineer, or other
individual, who will be configuring a Bristol Network 3000-series controller
to communicate with a foreign device or network.

It assumes familiarity with the following subjects:

• Use of personal computers.

• Configuration and use of the foreign device or network.

• Use of ACCOL software tools, and ACCOL structures such as signals,


signal lists, and data arrays.

• Configuration of Bristol communication ports. This subject is discussed


in the ACCOL II Reference Manual (document# D4044).•

• Local addressing of Bristol Network 3000 hardware devices. See the


manuals accompanying the Bristol hardware devices.

• Installation of protocols. The method for installing custom protocol


system firmware varies depending upon the type of controller you
have. For 186-based units other than the RTU 3305, custom firmware
is installed by inserting the proper custom EPROM in a socket. For
386-based units, as well as the RTU 3305, custom system firmware is
downloaded into the unit using the FLASH program. See the
FLASH.TXT file on the flash diskette for details on this procedure.
BLANK
Table of Contents

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction-1

Allen-Bradley PLC2/5 Master Interface . . . . . . . . . . . . . . . . Allen-Bradley Master-1

Allen-Bradley PLC2 Slave Interface . . . . . . . . . . . . . . . Allen-Bradley PLC2 Slave-1

CNGMaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Columbia Natural Gas Master-1

CNGSlave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Columbia Natural Gas Slave-1

Enron Modbus / Open Modbus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enron-1

Gould Modbus / Open Modbus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Gould-1

Hewlett Packard HP48000 Interface . . . . . . . . . . . . . . . . . . . . . . . . HP48000 Slave-1

Netprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Netprobe-1

TANO Slave Interface (CIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TANO Slave-1

Teledyne Geotech Slave Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Teledyne-1

v
BLANK PAGE
Introduction
Introduction to Network 3000 Custom Protocols

Bristol's Network 3000-series of remote process controllers supports


several custom communication protocols. These protocols allow the
Network 3000 controller to communicate with foreign devices and
networks, by translating ACCOL signal, array, and/or audit trail data,
into a format which may be understood by the foreign device or net-
work.

† Installation of Protocols
The method for installing custom protocol system firmware varies
depending upon the type of controller you have. For 186-based units
other than the RTU 3305, custom firmware is installed by inserting
the proper custom EPROM in a socket. For 386-based units, as well as
the RTU 3305, custom system firmware is downloaded into the unit
using the FLASH program and FLASH cable. See the FLASH.TXT file
on the FLASH diskette for details of this procedure.

† ACCOL Configuration
The level of ACCOL configuration varies depending upon which
protocol is chosen. Most (though not all) protocols require that the
ACCOL load include the Custom Module, and a Custom Port.

Details on configuring the Custom Module and communication port for


a particular protocol are included in the descriptions of each protocol
either in this manual, or in special documentation provided by the
Bristol Application Support Group. General information about Custom
Modules and Custom Ports is included in the 'Custom Module' and
'Communication Ports' sections of the ACCOL II Reference Manual
(document# D4044). Additional ACCOL structures such as data
arrays, signal lists, and formats may need to be configured, as well.
These are also discussed in the ACCOL II Reference Manual, (docu-
ment# D4044).

Certain protocols require dedicated ACCOL Modules and communica-

ACCOL II Custom Protocols Manual


Page Introduction-1
Introduction
Introduction to Network 3000 Custom Protocols

tion ports instead of the 'Custom Module' and 'Custom Port'. These
are:
Protocol Module Port
Columbia Natual Gas Master CNGMaster Columbia Natural Gas Master
Columbia Natural Gas Slave CNGSlave Columbia Natural Gas Slave
TANO Slave Protocol CIM Optional Comm

† List of Available Protocols


Protocol Name Where can I get information on this protocol?
ADEPT Contact Bristol Application Support for info.
Allen-Bradley PLC-2 Slave See section in this manual (D4066).
Allen-Bradley PLC-2 Master See section in this manual (D4066).
Allen-Bradley PLC-5 Master See section in this manual (D4066).
BRITE Slave Contact Bristol Application Support for info.
Brooklyn Union Protocol Set Contact Bristol Application Support for info.
****Columbia Natural Gas MasterSee section in this manual (D4066).
****Columbia Natural Gas Slave See section in this manual (D4066).
El Paso Natural Gas Master See El Paso Natural Gas Protocols Manual (D4086).
El Paso Natural Gas Slave See El Paso Natural Gas Protocols Manual (D4086).
ENRAF 854 (Tank Gauge) Master See Application notes on User Documentation CD.
Enron Modbus Slave See section in this manual (D4066).
Gould Modbus Master See section in this manual (D4066).
Gould Modbus Slave See section in this manual (D4066).
HART Master See HART Master Protocol Manual (D4068).
** Hewlett-Packard HP48000 Slave See section in this manual (D4066).
MTS DDA Gauge Master See Application notes on User Documentation CD.
***NETPROBE See section in this manual (D4066).
Pignone P6008 See Application notes on User Documentation CD.
QSonic SPU See Application notes on User Documentation CD.
RTU 500/700 Master See Application notes on User Documentation CD.
RTU 700 Slave See Application notes on User Documentation CD.
**RTU 3301 Master See manual 3301 Cust. Module Inter. (CI-3301-5).
Series V Valmet Master Contact Bristol Application Support for info.
Series V Valmet Slave Contact Bristol Application Support for info.
*TANO Slave See section in this manual (D4066).
Teledyne Geotech Slave See section in this manual (D4066).

NOTES:
*TANO Slave Protocol is NOT available for the 386EX Protected Mode platform, or the
GFC 3308-xx controllers.
**The HP48000 and RTU 3301 protocols are NOT available for the GFC 3308-xx.
***NETPROBE was only available for AE thru AJ firmware for the 3310/3330/3335.
****Columbia Natural Gas protocols are NOT available for 386EX Protected Mode
controllers prior to PCP03.

ACCOL II Custom Protocols Manual


Page Introduction-2
Introduction
Introduction to Network 3000 Custom Protocols

There may be other restrictions for specific protocols. SOME PROTO-


COLS ARE NOT AVAILABLE FOR CERTAIN TARGET NODE
TYPES. Contact Bristol Application Support for details.

IMPORTANT

This manual assumes the user is familiar with the


configuration details of the foreign device with
which the Network 3000 controller will communi-
cate. This manual discusses Network 3000 configu-
ration ONLY; not the characteristics of the foreign
device or network.

† Standard Protocol Suite For Real


Mode Users ONLY (STP.xx)
Beginnning with ACCOL Version AH.00 firmware, a standard protocol
suite is available for 186 and 386EX Real Mode units. The protocols in
this suite are:

z Allen-Bradley PLC 2 Master Interface


z Allen-Bradley PLC 2 Slave Interface
z Allen-Bradley PLC 5 Master Interface
z Enron Modbus Slave Interface
z Gould Modbus Master and Slave Interface
z Hart Master Interface
z Hewlett-Packard HP48000 Slave Interface
z RTU 3301 Master Interface
z Teledyne Geotech Slave Interface

These protocols are combined into a single standard protocol file on the
FLASH diskette called STPxx.BIN where xx is the current version
number. If your controller does NOT support FLASH this protocol suite
is available as a single EPROM.

ACCOL II Custom Protocols Manual


Page Introduction-3
Introduction
Introduction to Network 3000 Custom Protocols

† Special Protocol Sets For Real


Mode Users ONLY
If the standard STP suite is NOT installed, there are several other
sets of special protocols available. Any single set may be used instead
of (but not in addition to) the standard STP suite. These special
protocol sets typically include individual elements from the STP.xx
suite, such as Modbus protocols, as well as one or more additional
protocols, requested by specific customers.

If your controller does NOT support FLASH, these special protocol sets
are available only by special order.The desired protocol should be
requested when the Network 3000-series controller is ordered from
Bristol; this allows the special EPROM to be factory-installed.

A list of the major special protocol sets (and the contents of each set)
appears below:

Series V - Valmet Set (SVMBxx):


Series V Valmet Master Gould Modbus Slave Enron Modbus Slave
Series V Valmet Slave Gould Modbus Master

Tano Set (TMBxx):


TANO Slave Gould Modbus Slave Enron Modbus Slave
Gould Modbus Master

RTU 500/700 Set (AIMMxx):


RTU 500/700 Master Gould Modbus Slave Enron Modbus Slave
Gould Modbus Master

Las Vegas Valley Water Set (LVWxx):


BRITE Slave Enron Modbus Slave
Allen-Bradley PLC-2 Master Gould Modbus Slave
Allen-Bradley PLC-5 Master Gould Modbus Master
Allen-Bradley PLC-2 Slave RTU 3301 Master

Columbia Natural Gas Set (CMBxx):


Columbia Natural Gas Master Enron Modbus Slave
Columbia Natural Gas Slave Gould Modbus Slave
Gould Modbus Master

ACCOL II Custom Protocols Manual


Page Introduction-4
Introduction
Introduction to Network 3000 Custom Protocols

ENRAF 854 Set (ERMBxx):


ENRAF 854 (Tank Gauge) Master Enron Modbus Slave
Gould Modbus Master Gould Modbus Slave

MTS DDA Set (MTSMxx):


MTS DDA Gauge Master Enron Modbus Slave
Gould Modbus Master Gould Modbus Slave

El Paso Natural Gas Set (EPMBxx):


El Paso Natural Gas Master Enron Modbus Slave
El Paso Natural Gas Slave Gould Modbus Slave
Gould Modbus Master

† Protocol Suite For Protected Mode


Users ONLY (PCP.xx)
Protected Mode users have a single standard protocol suite. The
Protected Mode protocol suite is named (PCP.xx) where xx is the
version number, and consists of the following protocols:

z Allen-Bradley PLC 2 Master Interface


z Allen-Bradley PLC 2 Slave Interface
z Allen-Bradley PLC 5 Master Interface
z BRITE Slave (Las Vegas Valley Water)
z Brooklyn Union Protocol Set
z ENRAF 854 (Tank Gauge) Master
z Enron Modbus Slave Interface
z Gould Modbus Master and Slave Interface
z Hart Master
z Hewlett-Packard HP48000 Slave Interface
z MTS DDA Gauge Master
z Pignone P6008
z QSonic SPU
z RTU 3301 Master Interface
z Teledyne Geotech Slave Interface

There are no alternate special protocol sets for Protected Mode users.

ACCOL II Custom Protocols Manual


Page Introduction-5
Introduction
Introduction to Network 3000 Custom Protocols

† 3530-series Modbus Support ONLY

The 3530-series supports the Enron Modbus Slave protocol, as well as


the Gould Modbus Master and Slave protocols only on Ports B and C.

† Determining Which Protocols Are Currently


Installed in a Network 3000-series Controller

The Open BSI Remote Communication Statistics Tool may be used to


determine which custom protocols are currently installed in a control-
ler. To find out, start the tool and establish communications. Next,
click on "Statistics" in the menu bar, and "Custom Prom" in the pull
down menu.

ACCOL II Custom Protocols Manual


Page Introduction-6
Introduction
Introduction to Network 3000 Custom Protocols

The Custom PROM Information window will appear with a list of the
protocols currently installed. If necessary, use the scroll bar to view
additional protocols, if they will not all fit in the window. For more
information, see the Open BSI Utilities Manual (document# D5081).

Notes For Toolkit Users:

NOTE: If you have a GFC 3308 or a 186 or 386 Real Mode version of
the DPC 3330, DPC 3335, RTU 3305 or RTU 3310 the Toolkit program
may be used to determine which custom protocols are currently in-
stalled in the Custom PROM area of a running Network 3000-series
controller. (Note: For AG.xx or earlier level PROMs, the protocols
included in the standard PROM set. will not be visible via this meth-
od.)

1. While the PC is connected to the running controller, call up the


Toolkit program. See the Toolkit User Manual, (document#
D4053) for instructions on how to do this.

2. Call up the Communications Line Statistics Menu (this is also


discussed in the aforementioned manual.)

3. Move the cursor to the 'Custom PROM Detail Information' poke


point and press [Enter]. A list of the protocols installed in this
particular controller will appear on the screen.

ACCOL II Custom Protocols Manual


Page Introduction-7
BLANK PAGE
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

The Custom Module can be configured to interface the Bristol Network


3000 series controller with an Allen-Bradley programmable controller
(PLC). The Bristol controller functions as the master station on a half
duplex communication link. It will periodically poll each slave PLC
station from which it expects a reply message.

Each port is associated with a separate PLC communication link and


the modules are associated with PLC stations on the link. Any number
of modules per port and any number of ports may be used concurrently
for communication with Allen-Bradley PLCs. Messages on a particular
port are sent in the same order as the execution of the Custom mod-
ules.

Messages to read and write PLC data table memory are supported by
the interface. The messages use logical addressing that is compatible
with the PLC, PLC-2, and PLC-5 family controllers. Both PLC-3 and
PLC-5 can also be used in PLC-2 compatibility mode.

The polling frequency and required PLC response time are configur-
able for each port. Messages with communication errors will be retried
up to two times before the attempt is aborted and the error is indi-
cated.

The full duplex link protocol is not supported, nor is peer-to-peer


communication among slave PLC stations over the asynchronous
interface.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-1
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

† Module Terminals
The following is a list of the terminal values for the Custom Module
when configured for Allen-Bradley mode.

MODE Default: None, entry required


Format: Analog signal or constant
Input/Output: I n p u t

must be set to 2.0 for Allen-Bradley PLC-2 Master mode, or 200.0 for
Allen-Bradley PLC-5 Master mode.

LIST Default: None, entry required


Format: Analog signal or constant
Input/Output: I n p u t

is the signal list that contains the signals used by this module to
control the Allen-Bradley interface. This signal list is referred to as the
Allen-Bradley signal list and is described later. Any valid list number
may be used.

STATUS Default: None, entry optional


Format: Analog signal
Input/Output: O u t p u t

is a status code which indicates various communication states and


error conditions of the module.

Communication and processing of PLC reply messages are aborted


when the status code value is negative. The following is a list of the
possible status code values and their definitions.

0 = Communication completed successfully.


1 = Communication requested, waiting to send.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-2
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

2 = Command message sent, waiting for reply.


101 = An input signal was Control Inhibited.
102 = Attempt to store into a constant.
103 = An input string signal value was truncated.
104 = Attempt to store into Read Only Data Array.
-2 = Invalid Allen-Bradley Signal List number specified.
-3 = Invalid Port Number specified.
-4 = Invalid PLC Station Number specified.
-5 = Invalid Command Code specified.
-6 = Invalid Read/Write Address specified.
-7 = Invalid Read Size specified.
-8 = Invalid Reply Timeout specified.
-9 = Invalid I/O List number specified.
-10 = Invalid Format number specified.
-11 = Cannot broadcast a Read command.
-12 = Write command has zero length for data.
-13 = Read reply length different than requested.
-14 = Timed out waiting for command reply.
-15 = Receive character overrun detected.
-16 = Receive character parity error detected.
-17 = Receive character framing error detected.
-18 = Receive message security (CRC/BCC) failed.
-19 = Timed out waiting for PLC to respond.
-20 = Invalid PLC response message received.
-21 = Timed out waiting for Clear To Send.
-22 = Unexpected I/O failure.
-30 = Bad PLC-5 logical binary address.
-31 = Bad PLC-5 logical ASCII address.
-32 = String signal length too long.
-33 = PLC-5 command not allowed.
-34 = Bad TOTAL TRANS field.
-35 = Bad PACKET OFFSET field.
-36 = Bad address list for Read-Modify-Write.
-37 = Bad read list for General-Write-Read.
-38 = Bad read format for General-Write-Read.
-39 = Bad command code field for General-Write/Write-Read.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-3
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

The following relate to message formatting errors.

-101 = Invalid Format field descriptor.


-102 = Attempt to use signal beyond end of I/O list.
-103 = Too many levels of parentheses.
-104 = Unmatched right parenthesis.
-105 = Invalid Sub Format number specified.
-106 = Too many levels of Sub Formats.
-107 = Invalid Data Array number specified.
-108 = Attempt to use undefined Data Array.
-109 = Attempt to use cell beyond end of Data Array.
-110 = Signal or Data Array cell must be analog.
-111 = Must use a string signal.
-112 = Signal or cell must be analog or logical.
-113 = Invalid BCD input digit.
-114 = Invalid analog value for BCD output.
-115 = Unexpected Input signal store failure.
-116 = Attempt to put/get data beyond end of message.

The following are errors reported via the STS byte of a reply message.
They are the value of the STS byte biased by -1000. These errors are
described in detail in Appendix A of Allen-Bradley publication 1771-
811.

-1016 = Invalid command due to content or size.


-1048 = Processor fault or disconnection.
-1064 = Comm interface could not talk to processor.
-1080 = Access denied for requested address.
-1096 = Command disabled by switch settings.
-1112 = PLC processor in program mode or downloading.
-1128 = Station in error shutdown mode.
-1144 = Interface module out of buffer space.
-1176 = Station in download mode.

The following errors apply only to the PLC-5. They are reported by the
EXT STS field of a reply message (when the STS byte is returned as
0F0 hex). These errors are described in detail in the Allen-Bradley
Data Highway/Data Highway Plus Reference Manual , Allen-Bradley

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-4
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

publication 1770-6.5.16-November-1988.

-1501 = Error in converting block address.


-1502 = Less levels specified in address than minimum for any
address.
-1503 = More levels specified in address than system supports.
-1504 = Symbol not found.
-1505 = Symbol is of improper format.
-1506 = Address doesn't point to something useful.
-1507 = File is wrong size.
-1508 = Cannot complete request - situation has changed since
the start of the command.
-1509 = File is too large.
-1510 = Transaction size plus word size is too large.
-1511 = Access denied, improper privilege.
-1512 = Condition cannot be generated, resource is not available
(e.g. upload active).
-1513 = Condition already exists - resource is already available.
-1514 = Shutdown could not be executed.
-1515 = Requester does not have upload or download access - no
privilege.
-1516 = Histogram overflow.
-1517 = Illegal data type.
-1518 = Bad parameter.
-1519 = Address reference exists to deleted data table.

† Setting up the Custom Port


The following is a list of the parameter field values for a Custom port
when configured for Allen-Bradley mode.

MODE - Set this field to 2 to indicate Allen-Bradley PLC-2 Master


mode, or set to 200 to indicate Allen-Bradley PLC-5 Master mode.

BAUD - Set this field to 110, 150, 300, 600, 1200, 2400, 4800, or 9600

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-5
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

to indicate the communication baud rate.

CHARACTER LENGTH - This field is not used. The number of bits


per character is fixed at 8 internally.

STOP BITS - This field is not used. The number of stop bits is fixed at
1 internally.

PARITY - Set this field to Even or None to indicate the type of charac-
ter parity to use.

Note: If CRC is selected for the error check type, this field must be set
to None in order to communicate correctly.

P1 - The Allen-Bradley Station Number assigned to this node. The


value may range from 0 to 255 but should be limited to a legal
station number. For applications using the KF-2 interface unit,
this value should be set to the node address of the KF-2.

P2 - This field selects the error check type, polling frequency, and the
amount of time the station will wait for an ACK or poll response
from the slave PLC.

The field is comprised of three subfields which are combined into


a single value. The entire field can be viewed as five decimal
digits. The first digit represents the error check type (0 = BCC, 1
= CRC). The second and third digits are the polling frequency in
units of .1 seconds. The fourth and fifth digits are the response
timeout in units of .1 seconds.

For example, a value of 10501 indicates CRC, polling every half


second, and a required response within .1 seconds.

A value of zero for the polling frequency subfield causes continu-


ous polling. A value of zero for the response timeout subfield
causes a minimum timeout value of 50 msec.

The BAUD and P1 parameters may be altered on-line using the

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-6
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Portstatus Module. See ACCOL II Reference Manual, document


# D4044.

Allen-Bradley Signal List


The signal list specified via the Custom module’s List terminal (Allen-
Bradley list) must be organized as follows. NOTE: Some fields have
different meanings based on the command code.

Signal 1 (Port Number - all commands) An analog signal whose value


represents the port to be used for communication with Allen-
Bradley PLCs. The port must be a Custom port configured for
Allen-Bradley mode. The values are assigned as follows.

Value Port Value Port Value Port


1.0 A 5.0 BIP1 * 9.0 I*
2.0 B 6.0 BIP2 * 10.0 J *
3.0 C 7.0 G*
4.0 D 8.0 H *

Signal 2 (PLC Station Number - all commands) - An analog signal


whose value specifies the station number of the slave PLC with
which the module will communicate.

Signal 3 (Command Code - all commands) - An analog signal whose


value represents the type of command message to be sent to the
slave PLC station. The values are assigned as follows.

Signal Value Command


1.0 Unprotected Read (PLC-2/PLC-5)
2.0 Unprotected Write (PLC-2/PLC-5)
3.0 Unprotected Bit Write (PLC-2/PLC-5)
4.0 Protected Write (PLC-2/PLC-5)
5.0 Protected Bit Write (PLC-2/PLC-5)
6.0 Word Range Read (Binary address)( PLC-5 only)
7.0 Word Range Read (ASCII address) (PLC-5 only)
8.0 Word Range Write (Binary address) (PLC-5 only)
* These ports are only available in Protected Mode
ACCOL II Custom Protocols Manual Units (PLS00 / PLX00) or newer.
Page Allen-Bradley Master-7
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

9.0 Word Range Write (ASCII address) (PLC-5 only)


10.0 Read Modify Write (Binary addresses per word)
(PLC-5 only)
11.0 Read Modify Write (Binary start address) (PLC-5
only)
12.0 Read Modify Write (ASCII addresses per word)
(PLC-5 only)
13.0 General Write (PLC-5 only)
14.0 General Write/Read (PLC-5 only)

Signal 4 (Read/Write Address - commands 1 to 12; PLC Command


Code - commands 13 and 14) - For command codes 1.0 to 5.0: An
analog signal whose value specifies the byte address of the first
memory location in the slave station to be read or written. The
address must be an even number for Command Code values of 1,
2, and 4 since those commands reference words.

For command codes 6.0 and 8.0: An analog signal specifying a List
number containing 4 signals corresponding to levels 1 to 4 of the
PLC-5 Logical Binary Address which corresponds to the start
address of the PLC-5 memory area required. All addresses must
be even.

For command codes 7.0 and 9.0: A string signal specifying a


logical ASCII address which corresponds to the start address of
the PLC-5 memory area required.

For command 10.0, this is an analog signal specifying a List


number containing groups of 4 signals corrresponding to a logical
binary address, one group per word of output.

For command 11.0, this is an analog signal specifying a list


number containing the output start address word (logical binary
address) of a group of consecutive words.

For command 12.0, this is an analog signal specifying a list


number containing string signals corresponding to a logical ASCII

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-8
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

address, one per word of output.

For commands 13.0 and 14.0, this corresponds to the CMD field of
a message, normally 15 (0f hex).

Signal 5 (Read Size - Commands 1, 6, and 7) - For command number


1, this is an analog signal whose value specifies the number of
bytes to be read by an Unprotected Read command. The value
may range from 2.0 to 244.0 and must be an even number.

For command numbers 6 and 7, this is an analog signal whose


value specifies the number of bytes to be read by a Word-Range
Read command. In all other commands, the size of the data area
is derived from the I/O list or Format list.

Signal 6 (Input/Output List Number) - An analog signal whose value


is the number of the signal list used to specify the signals which
are used for input or output of data. The signals in this list are
associated with the data portion of a message with a PLC Format.
The signals must match the Read Size and Total Trans (see
Signal 11) fields, where applicable.

Signal 7 (Format Number) - An analog signal whose value is the


number of the PLC Format used to specify the relationship
between the data in a message and signals in the Input/Output
list. PLC Formats are described later in this section.

Signal 8 (Reply Timeout) - An analog signal whose value is the


amount of time to wait for a reply message from the slave station.
This value is in units of seconds with a resolution of 1 msec. If a
command message is successfully sent, the slave station is polled
at least once regardless of this timeout value.

Signal 9 (Done) - An analog or logical signal that indicates completion


of a communication request. If a logical signal is used, it will be
set False when the communication request is initiated and will be
set True when the communication request is completed. If an
analog signal is used, its value will be incremented by one when

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-9
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

the communication request is completed. The Custom module’s


STATUS terminal is updated at the same time as this signal. This
signal may be omitted in PLC-2 mode, but must be present when
using PLC-5 mode.

Signal 10 (Destination) - An analog signal that specifies the value to


be used in the destination field of the message. This permits the
destination to be different from the PLC station number specified
in Signal 2. It will enable communication to a PLC through an
intermediate device. If the value is invalid, (that is, if the value is
negative or greater than 255), or if the signal is not present, the
destination field is set equal to the PLC station number field
(direct connection to the PLC). This signal may be omitted in
PLC-2 mode, but must be present when using PLC-5 mode.

Signal 11 (Total Trans - Commands 6,7,8, 9; IO.RLIST - Command


14) For commands 6, 7, 8, and 9, this can be used to allow the
PLC-5 to process multiple messages more efficiently. For all
messages within a single group, it is set to the total number of
words transferred within the group.

For command 14, it corresponds to the I/O list number used for
the read data in a general write/read.

Signal 12 (Packet Offset - Commands 6, 7, 8, 9; PLC.RFOR - Com-


mand 14) - For commands 6, 7, 8, and 9, this is used in conjunc-
tion with Total Trans. For the first message within a group it
should be set to zero. Subsequently, it should be set to the word
offset corresponding to the first element in each subsequent
message within the group. Note that the PLC-5 address remains
the same throughout the group.

For command 14, it corresponds to the format number used to


translate input data for the 'read' part of the general write/read.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-10
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

† PLC Formats
PLC Formats are defined in the same way as logger formats. Both
types of formats are the same ACCOL structure but are interpreted
uniquely by the PLC interface. Only a subset of the possible format
field descriptors are valid for PLC interfaces.

The PLC field descriptors and their functions are as follows.

( ) - Parentheses are used to group a section of the Format for repeti-


tion. Parentheses may be nested up to five levels.

SFn - This descriptor invokes Format number n where n is any valid


Format number. At the end of Format n, processing continues
with the descriptor following SFn.

DA - The value of the current signal in the I/O list is used to define
the number of an analog Data Array to be used. The signal’s type
must be analog. Array mode is set active which causes cells in the
Data Array to be used by field descriptors for input and output.
The first cell in the array is used first, and all columns of a row
are used before going to the next row.

This descriptor causes an increment to the next signal in the I/O


list.

DL - The value of the current signal in the I/O list is used to define
the number of a logical Data Array to be used. The signal’s type
must be analog. Array mode is set active which causes cells in the
Data Array to be used by field descriptors for input and output.
The first cell in the array is used first and all columns of a row are
used before going to the next row.

This descriptor increments to the next signal in the I/O list.

DE - Array mode is ended. Field descriptors resume using signals in


the I/O list.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-11
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

DC - Array mode is set active. A Data Array must have been previ-
ously defined via the DA or DL field descriptors. Field descriptors
resume using cells in the data array.

BIT - Bit alignment mode is set active. The data in a message is


processed in units of bits. Lower order bits of a byte or word are
processed before higher order bits. If Word alignment mode was
previously active, any remaining bits of the current word are used
before using the next data byte. If Byte alignment mode was
previously active, any remaining bits of the current byte are used
before using the next data byte.

It is intended that Bit alignment mode be used to access single bit


logical values and subfields within a byte or word.

BYT - Byte alignment mode is set active. The data in a message is


processed in units of bytes. Each field begins with the low order
bit of the next byte. Values are treated as being right justified
within the byte. If Word alignment mode was previously active
and the high order byte of the current word was not used, the
high byte is used first before using the next data byte.

WRD - Word alignment mode is set active. The data in a message is


processed in units of words. Values are treated as being the
combination of two bytes. Each field begins with the low order bit
of the next word. Either the low order byte or the high order byte
can occur first in the message. Values are right justified within
the word.

LBF - Low Byte First mode is set active. Word alignment mode will
treat the first of two bytes as being the low order byte of the word.

HBF - High Byte First mode is set active. Word alignment mode will
treat the first of two bytes as being the high order byte of the
word.

VL - This field descriptor is used for input or output of logical values.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-12
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

It operates on either bits, bytes, or words depending on the


alignment mode.

For input, the current bit, byte, or word value in the message is
tested for zero. A value of zero is treated as false and a non-zero
value is treated as true. The current signal in the I/O list or the
current cell in the data array is set to reflect the true or false
value.

Analog signals or cells are set to 0.0 for false and 1.0 for true.
String signals are invalid.

For output, the current signal or cell is tested for true or false. If
true, a bit, byte, or word value of 1 is put in the message. If false,
a bit, byte, or word value of 0 is put in the message. Analog
signals or cells with values of 0.0 are treated as being false. String
signals are invalid.

This descriptor causes an increment to the next signal in the I/O


list or to the next cell in the data array depending on array mode
being active. It also causes an increment to the next bit, byte, or
word in the message depending on the alignment mode.

VSn - This field descriptor is used for input or output of signed (2’s
complement) binary values with a field width of n bits. If Bit
mode is active, the next n bits in the message are used. If Byte or
Word mode is active, the field is right justified in the byte or
word. If Byte mode is active and n is greater than 8, multiple
bytes will be used. If Word mode is active and n is greater than
16, multiple words will be used.

The value of n may range from 2 to 32. The default value for n if
not specified is: 2 for Bit mode, 8 for Byte mode, and 16 for Word
mode.

For input, the current signal in the I/O list or the current cell in
the data array is set to the value of this field. Logical signals or
cells are set to false if the value is zero and set to true if the value

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-13
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

is non zero. String signals are invalid.

For output, the value of the current signal or cell is put in the
message. Logical signal or cell values of false are equivalent to 0
and values of true are equivalent to 1. String signals are invalid.
Values are rounded to the next integer value and values too large
for the field are output as the largest possible field value.

This descriptor causes an increment to the next signal in the I/O


list or to the next cell in the data array depending on array mode
being active.

VUn - This field descriptor is the same as VSn with the following
exceptions. The binary value is unsigned and n may range from 1
to 32. Negative values are output as zero. The maximum value in
a 32 bit field is limited to a 31 bit number for both input and
blankoutput.

BCDn - This field descriptor is used for input or output of Binary


Coded Decimal (BCD) values with a field width of n digits. If Bit
mode is active, the next n*4 bits in the message are used with the
first digit treated as the highest order digit. If Byte or Word mode
is active, the digits are right justified within the byte or word. If
Byte mode is active and n is greater than 2, multiple bytes will be
used. If Word mode is active and n is greater than 4, multiple
words will be used.

The value of n may range from 1 to 39. The default value for n if
not specified is; 1 for Bit mode, 2 for Byte mode, and 4 for Word
mode.

For input, the current signal in the I/O list or the current cell in
the data array is set to the value of the field. Logical signals or
cells are set to false if the value is zero and set to true if the value
is non zero. String signals are invalid.

For output, the value of the current signal or cell is put in the
message. Logical signal or cell values of false are equivalent to 0

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-14
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

and values of true are equivalent to 1. String signals are invalid.

This descriptor causes an increment to the next signal in the I/O


list or to the next cell in the data array depending on array mode
being active.

Tn - This field descriptor is used for input or output of ASCII text


strings with a length of n characters. Each character is 8 bits. If
Bit mode is active, the next n*8 bits in the message are used. If
Byte mode is active, the next n bytes are used. If Word mode is
active, the next n/2 words are used.

The value of n may range from 1 to 64. The value of n will


default to the length of the String signal’s value if it is not
specified. Only string signals from the I/O list are valid. Values
too large will be truncated and values too small will be padded
with space characters.

For input, the current string signal in the I/O list is set to the
string value of the field. Space characters are substituted for
non-printable characters in the string.

For output, the value of the current string signal is put in the
message.

This descriptor causes an increment to the next signal in the I/O


list.

X- This field descriptor is used to skip a bit, byte, or word depending


on the alignment mode. For output, a value of 0 is put in the
message for the current bit, byte, or word.

This descriptor causes an increment to the next bit, byte, or word


in the message depending on the alignment mode.

It is possible for field descriptors VS, VU, BCD, and T to use a


partial byte or word. If Byte alignment mode is active and there
are unused bits in the current byte, switching to Bit alignment
mode via the BIT field descriptor will allow the unused bits to be

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-15
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

accessed. If Word alignment mode is active and there are unused


bits or bytes in the current word, switching to Bit or Byte align-
ment mode will allow the unused bits or bytes to be accessed.
This is useful when different data types are combined into the
same byte or word.

For example, a word may contain a 3 digit BCD value in the low
order 12 bits and 4 logical status values in the high order 4 bits.
The Format sequence WRD BCD3 BIT 4VL will relate the BCD
value with a signal or array cell and each of the four status bits
with its own signal or array cell.

CST1:0 This descriptor treats the next 4 data bytes as an IEEE


floating point format value when converting. The next signal in
the I/O list (or element in the I/O data array) becomes current
after this descriptor is used. This descriptor is only available with
ACCOL version 5.1 (or later), and AA (or later) firmware.

CST2:0 This descriptor treats the next 4 data bytes as a Whipple


floating point format value when converting. The next signal in
the I/O list (or element in the I/O data array) becomes current
after this descriptor is used. This descriptor is only available with
ACCOL version 5.1 (or later), and AA (or later) firmware.

CST3:0 This descriptor performs the same function as CST1:0 for


IEEE floating point format values except that it is used only when
data is sent/received in Intel order. This function requires STP.08
or newer custom firmware.

CST4:0 This descriptor performs the same function as CST2:0 for


Whipple floating point format values except that it is used only
when data is sent/received in Intel order. This function requires
STP.08 or newer custom firmware.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-16
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

† Special Format Handling for Bit Write/


Read-Modify-Write Commands
The Unprotected and Protected Bit Write commands and Read-
Modify-Write commands do not modify those bits which are not part of
a data field. Unused bits of a byte or word are not set or cleared. Also,
the X field descriptor does not cause bits to be set or cleared. The bits
are simply skipped. Entire bytes which are unused are not put into the
command message. NOTE: For all other commands, X fields on write
do affect the output of those fields, possibly causing erroneous results.

† Message Length for Write Commands


The length of the data portion of Write and Bit Write commands is
determined by the PLC Format. The necessary number of bytes are
put into the command message. The data portion of Write commands
may not be longer than 242 bytes and the number of bytes must be an
even number. Bit Write commands are limited to 61 bytes however the
bytes need not be contiguous in PLC memory. Size restrictions for
PLC-5 commands are dependent on the size taken by the address
fields, and therefore must be established by the ACCOL programmer.

† Application Notes For PLC-5 Users:


PLC-5 Command Usage

Word Range Read/Write commands are the preferred usage. These


commands write blocks that include several words. They cannot,
however, be used to write individual fields (i.e. single bits) within
words, as only whole words can be written. If part-words or single bits
are required to be written, then Read-Modify-Write commands should

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-17
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

be used (these are effectively 'bit write' commands). These commands


place a heavier communications burden on the system, however,
because each word written must have its address sent. Options are
provided for performing Read-Modify-Write commands with binary or
ASCII addresses specified for each word written, and in addition,
command 11 can be used so that the ACCOL programmer need only
specify the first address of a block of words to be written (binary
address only). The driver will automatically increment the element
number, though individual addresses are still sent at the communica-
tion link level.

If individual bits must be writen, it may be more efficient to use PLC-2


compatibility mode and use commands for PLC-5.

I/O lists, address lists, and formats are used for each transaction until
complete. The ACCOL programmer, therefore, must avoid changing
the contents of these structures until the STATUS field indicates total
completion.

Notes on Message Sizes

The overall buffer length within the Custom Module is limited to 250
bytes, which includes header bytes; further limitations are possible
depending upon which command code is being used.

These limitations restrict the amount of data which can be transmitted


in a single message; an error code is generated if the maximum allow-
able message length is exceeded. Where variable length fields are used
(such as ASCII addresses) it is the ACCOL programmer's responsibil-
ity to calculate the amount of data which may be contained in a
message.

PLC-5 Total Trans/Packet Offset Fields

Some of the messages associated with the PLC-5 have these two fields.
Their use allows the PLC-5 to more efficiently process reads/writes

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-18
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

with data content spread over multiple messages. Control of these


fields is given to the ACCOL programmer; they are not used by the
Custom Module firmware.

PLC-5 Addressing Modes

Logical Addressing
Within a PLC-5, there are 4 levels, which is enough to address any
word in PLC-5 memory. The address is placed in the field 'PLC-5
SYSTEM ADDRESS' within the link level packet. See Allen-Bradley
Data Highway/Data Highway Plus Reference Manual , Allen-Bradley
publication 1770-6.5.16-November-1988 for more information.

Logical Binary Addressing


Message format on the link is as follows:

Byte 1 - Flag Byte - Bits 1 thorugh 4 are associated with levels 1


through 4 in a PLC-5 extended address. If a bit is set to 0, then a
default value is assumed. The last level must be specified. For this
implementation, this will always be 00001111 (all fields specified)

Level 1 = Data Table area


Level 2 = File
Level 3 = Element
Level 4 = Sub-element

Bytes 2 to n contain the field values, (for the fields selected in the flag
byte). If any field cannot be held in 1 byte (0 to 254 unsigned), then a
delimiter of 0FFh is used as the field value, with the following 2 bytes
holding the low, then high byte values. (Note that treating all values
as 2 byte values will not work!).

For this interpretation, no defaults will be used. The values for level 1
to level 4 address fields are passed as 4 signals in the parameter list.
See Example 1.

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-19
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Logical ASCII Addressing

This allows the specification of addresses in the same form as at the


programming node.

Link Level Message Format

Byte 1 ASCII NUL (0)


Byte 2 ASCII $
Byte 3 to n ASCII string of address, e.g. N10:360

File Type N
File Number 10
Delimiter :
Element number 360
Byte n+1 ASCII NUL (0)

The ASCII string is passed by the caller as an ACCOL string signal


including the '$'. See Example 2.

PLC-5 Physical Addressing

This is intended as a facility to upload/download a PLC-5 program. It


is not translated by this custom module, but may be used as part of a
data field within a 'general write/read' command. See Allen-Bradley
Data Highway/Data Highway Plus Reference Manual , Allen-Bradley
publication 1770-6.5.16-November-1988 for more information.

† Examples

Example #1

This example illustrates a WORD-RANGE-READ of 100 words start-


ing at the logical binary address of :

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-20
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Data-Table-Area =0
File = 10
Element = 360
Sub-element =0

ACCOL program extract :


(comments preceded by ';')

;*****************************************************
;PORT.NUM.1 Port Number
;SLAVE.ADDR.1 Address of Slave to which message sent
;CMD.MODE.1 Must be set to 6 (Word Range Read - Binary)
;RW.ADR.1 Number of signal list containing 4-Word
; PLC-5 binary address
;RE.SIZE.1 Number of bytes to be read
;IO.LIST.1 Number of signal list which will receive
; data
;PLC.FOR.1 Format number for translating input data
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC Address of final destination
;TOT.TRANS.1 Total Trans field for multiple messages
; (size in words for single message)
; PCK.OFF.1 Packet Offset field for multiple messages
; (0 for single message)
;
;****************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 4.0000000
CMD.CODE.1 A 6.0000000
RW.ADDR.1 A 12.0000000
RE.SIZE.1 A 200.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-21
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 100.0000000
PCK.OFF.1 A 0.0000000
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
...
WORD.1.READ A 0.0000000
DATA.TABLE.1 A 0.0000000
FILE.1 A 10.0000000
ELEMENT.1 A 360.0000000
SUB.ELEM.1 A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.READ
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 11
10 DATA1.1
20 DATA2.1
30 DATA3.1
...
*LIST 12
10 DATA.TABLE.1
20 FILE.1

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-22
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

30 ELEMENT.1
40 SUB.ELEM.1
*FORMAT 21
10 WRD,LBF,100(VU)

Example #2

This example illustrates a WORD-RANGE-WRITE of 50 words start-


ing at the logical ASCII address of N10:360.

ACCOL program extract:


(comments preceded by ';')

;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 9 (Word Range Write - ASCII)
;RW.ADDR.1 String signal giving PLC-5 logical ASCII
; address, e.g. $N100:29
;RE.SIZE.1 Not used for this example
;IO.LIST.1 Number of signal list which holds data to
; be transmitted
;PLC.FOR.1 Format number for translating output data.
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination.
;TOT.TRANS.1 Total Trans field for multiple messages
; (size in words for single message)
;PCK.OFF.1 Packet Offset field for multiple messages
; (0 for single message)
;********************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 4.0000000
CMD.CODE.1 A 9.0000000
RW.ADDR.1 S LEN:8 ‘$N10:360’

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-23
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

RE.SIZE.1 A 0.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 50.0000000
PCK.OFF.1 A 0.0000000
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
...
WORD.1.WRITE A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.WRITE
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 11
10 DATA1.1
20 DATA2.1
30 DATA3.1
... ;50 words total of data
*FORMAT 21
10 WRD,LBF,50(VU)

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-24
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Example #3

This example illustrates a ‘Modify PLC-2 compatible file’ command (to


file 10 at node address 9)

ACCOL program extract:


(comments preceded by ';')
;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 13 (General Write)
;PLC.CODE.1 PLC command code
;RE.SIZE.1 Not applicable for this example
;IO.LIST.1 Number of signal list which holds data to
; be transmitted
;PLC.FOR.1 Format number for translating output data.
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination.
;TOT.TRANS.1 Not applicable for this example
;PCK.OFF.1 Not applicable for this example
;********************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 9.0000000
CMD.CODE.1 A 13.0000000
PLC.CODE.1 A 15.0000000
RE.SIZE.1 A 0.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 0.0000000
PCK.OFF.1 A 0.0000000
FNC.1 A 0.0000000
LINK.ID.1 A 0.0000000
NODE.ADDR.1 A 9.0000000

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-25
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

FILE.NO.1 A 10.0000000
WORD.1.WRITE A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.WRITE
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 PLC.CODE.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 11
10 FNC.1
20 LINK.ID.1
30 NODE.ADDR.1
40 FILE.NO.1
*FORMAT 21
10 BYT,LBF,3(VU),WRD,1(VU) ;3 byte fields, 1 word field

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-26
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Example #4

This example illustrates a ‘Read Bytes Physical’ command of 100 bytes


starting at PLC5 physical address 100ah

ACCOL program extract:


(comments preceded by ';')
;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 14 (General Write/Read)
;PLC.CODE.1 PLC command code
;RE.SIZE.1 Not applicable for this example
;IO.LIST.1 Number of signal list which holds data to
; be transmitted
;PLC.FOR.1 Format number for translating output data.
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination.
;IO.RLIST.1 Number of signal list which will
; receive data
;PLC.RFOR.1 Format number for translating input data
;********************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 9.0000000
CMD.CODE.1 A 14.0000000
PLC.CODE.1 A 15.0000000
RE.SIZE.1 A 100.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
IO.RLIST.1 A 12.0000000
PLC.RFOR.1 A 22.0000000
FNC.1 A 0.0000000
PHY.ADDR.1 A 0.0000000
PHY.ADDR.2 A 9.0000000

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-27
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

PHY.ADDR.3 A 10.0000000
PHY.ADDR.4 A 11.0000000
SIZE.1 A 100.0000000
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
DATA4.1 A 0.0000000
.
.
.
WORD.1.WRITE A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.WRITE
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 PLC.CODE.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 IO.RLIST.1
120 PLC.RFOR.1
*LIST 11
10 FNC.1
20 PHY.ADDR.1
30 PHY.ADDR.2
40 PHY.ADDR.3
50 PHY.ADDR.4
60 SIZE.1
*LIST 12
10 DATA1.1
20 DATA2.1

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-28
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

30 DATA3.1
40 DATA4.1
.
.
.
*FORMAT 21
10 BYT,LBF,6(VU)
*FORMAT 22
10 BYT,LBF,100(VU)

Example #5

This example illustrates a READ-MODIFY-WRITE of 4 words; ad-


dresses specified as PLC5 logical binary:

N10:360,N11:60,N11:360,N14:112

ACCOL program extract:


(comments preceded by ';')
;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 10 (Read Modify Write -
; binary)
;RW.ADDR.1 Number of signal list containing 4-Word
; PLC-5 binary address - one 'address' per
; output word.
;RE.SIZE.1 Not applicable for this example
;IO.LIST.1 Number of signal list which holds data to
; be transmitted
;PLC.FOR.1 Format number for translating output data.
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination.
;TOT.TRANS.1 Not applicable for this example
;PCK.OFF.1 Not applicable for this example
;********************************************************

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-29
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 4.0000000
CMD.CODE.1 A 10.0000000
RW.ADDR.1 A 31.0000000
RE.SIZE.1 A 0.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 0.0000000
PCK.OFF.1 A 0.0000000
DATA.TABLE.1 A 0.0000000
FILE.1 A 10.0000000
ELEMENT.1 A 360.0000000
SUB.ELEM.1 A 0.0000000
DATA.TABLE.2 A 0.0000000
FILE.2 A 11.0000000
ELEMENT.2 A 60.0000000
SUB.ELEM.2 A 0.0000000
DATA.TABLE.3 A 0.0000000
FILE.3 A 11.0000000
ELEMENT.3 A 360.0000000
SUB.ELEM.3 A 0.0000000
DATA.TABLE.4 A 0.0000000
FILE.4 A 14.0000000
ELEMENT.4 A 112.0000000
SUB.ELEM.4 A 0.0000000
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
...
WORD.1.WRITE A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.WRITE

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-30
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 11
10 DATA1.1
20 DATA2.1
30 DATA3.1
... ;corresponding to 4 words total of data
*LIST 31
; (addresses of 4 words of data)
10 DATA.TABLE.1
20 FILE.1
30 ELEMENT.1
40 SUB.ELEM.1
110 DATA.TABLE.2
120 FILE.2
130 ELEMENT.2
140 SUB.ELEM.2
210 DATA.TABLE.3
220 FILE.3
230 ELEMENT.3
240 SUB.ELEM.3
310 DATA.TABLE.4
320 FILE.4
330 ELEMENT.4
340 SUB.ELEM.4
*FORMAT 21
10 WRD,LBF,4(VU)
;(may contain bit references with X fields to skip bits)

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-31
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Example #6

This example illustrates a READ-MODIFY-WRITE of 4 words; ad-


dresses specified as PLC5 logical ASCII

ACCOL program extract:


(comments preceded by ';')
;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 12 (Read Modify Write -
; ASCII)
;RW.ADDR.1 List number containing PLC-5 logical ASCII
; addresses - one 'address' per output word.
;RE.SIZE.1 Not applicable for this example
;IO.LIST.1 Number of signal list which holds data to
; be transmitted
;PLC.FOR.1 Format number for translating output data.
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination.
;TOT.TRANS.1 Not applicable for this example
;PCK.OFF.1 Not applicable for this example
;********************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 4.0000000
CMD.CODE.1 A 12.0000000
RW.ADDR.1 A 31.0000000
RE.SIZE.1 A 0.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 0.0000000
PCK.OFF.1 A 0.0000000
ADD1.1 S LEN:7 ‘$N10:360’
ADD1.2 S LEN:6 ‘$N11:60’

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-32
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

ADD1.3 S LEN:7 ‘$N11:360’


ADD1.4 S LEN:7 ‘$N14:112’
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
...
WORD.1.WRITE A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.WRITE
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1
50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 11
10 DATA1.1
20 DATA2.1
30 DATA3.1
... ;4 words total of data
*LIST 31
10 ADD1.1
20 ADD1.2
30 ADD1.3
40 ADD1.4
*FORMAT 21
10 WRD,LBF,4(VU)
; (may contain bit references with X fields to skip bits)

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-33
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

Example#7

This example illustrates a Word Range Read, using the TOTAL


TRANS and PACKET OFFSET facility. The binary address of the first
item is given as follows:

Data-Table-Area = 0
File = 10
Element = 360
Sub-element =0

150 words are to be transferred, in 2 packets of 75 words.

ACCOL program extract:


(comments preceded by ';')
;*******************************************************
;PORT.NUM.1 Port number
;SLAVE.ADDR.1 Address of Slave to which message is sent
;CMD.CODE.1 Must be set to 6 (Word Range Read - Binary)
;RW.ADDR.1 Number of signal list containing 4-Word PLC-
; 5 binary address
;RE.SIZE.1 Number of bytes to be read
;IO.LIST.1 Number of signal list which holds signals
; which will receive data
;PLC.FOR.1 Format number for translating input data
;REPLY.TIMOUT.1 Time in secs to allow for reply
;DONE.1. Indicates completion
;DEST.1. PLC address of final destination
;TOT.TRANS.1 Total Trans field for multiple messages
; (size in words for single message)
;PCK.OFF.1 Packet Offset field for multiple messages
; (0 for single message)
;********************************************************
*SIGNALS
PORT.NUM.1 A 1.0000000
SLAVE.ADDR.1 A 4.0000000
CMD.CODE.1 A 6.0000000
RW.ADDR.1 A 12.0000000

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-34
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

RE.SIZE.1 A 150.0000000
IO.LIST.1 A 11.0000000
PLC.FOR.1 A 21.0000000
REPLY.TIMOUT.1 A 2.0000000
DONE.1 A 0.0000000
DEST.1 A 4.0000000
TOT.TRANS.1 A 150.0000000
PCK.OFF.1 A 0.0000000
DATA1.1 A 0.0000000
DATA2.1 A 0.0000000
DATA3.1 A 0.0000000
...
WORD.1.READ A 0.0000000
IO.LIST.2 A 31.0000000
PCK.OFF.2 A 75.0000000
DATA1.2 A 0.0000000
DATA2.2 A 0.0000000
DATA3.2 A 0.0000000
...
WORD.2.READ A 0.0000000
DATA.TABLE.1 A 0.0000000
FILE.1 A 10.0000000
ELEMENT.1 A 360.0000000
SUB.ELEM.1 A 0.0000000
*TASK 10
10 * CUSTOM
MODE 248.0000000
LIST 1.0000000
STATUS WORD.1.READ
20 * CUSTOM
MODE 248.0000000
LIST 2.0000000
STATUS WORD.2.READ
*LIST 1
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-35
Allen-Bradley PLC-2/-5 Master Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2/PLC-5 Master

50 RE.SIZE.1
60 IO.LIST.1
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.1
*LIST 2
10 PORT.NUM.1
20 SLAVE.ADDR.1
30 CMD.CODE.1
40 RW.ADDR.1
50 RE.SIZE.1
60 IO.LIST.2
70 PLC.FOR.1
80 REPLY.TIMOUT.1
90 DONE.1
100 DEST.1
110 TOT.TRANS.1
120 PCK.OFF.2
*LIST 11
10 DATA1.1
20 DATA2.1
30 DATA3.1
...
*LIST 31
10 DATA1.2
20 DATA2.2
30 DATA3.2
...
*LIST 12
10 DATA.TABLE.1
20 FILE.1
30 ELEMENT.1
40 SUB.ELEM.1
*FORMAT 21
10 WRD,LBF,75(VU)

ACCOL II Custom Protocols Manual


Page Allen-Bradley Master-36
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

The Allen-Bradley PLC-2 Slave Interface allows a Bristol 33XX series


controller to function as an Allen-Bradley PLC-2 Slave. The interface
takes ACCOL signal and data array values in the 33XX and translates
them into Allen-Bradley words and bytes, understandable by the
Allen-Bradley PLC-2 Master controller. Conversely, data sent from the
Allen-Bradley PLC-2 Master is translated from words and bytes into
ACCOL signal and data array values.

This section assumes familiarity with the Allen-Bradley PLC-2, and


related Allen-Bradley terminology. For information on the Allen-
Bradley PLC-2, see the user manual accompanying Allen-Bradley
PLC-2 series controllers.

This section also assumes familiarity with ACCOL Workbench, -OR-


the ACCOL II Interactive Compiler (AIC), and various ACCOL struc-
tures such as signals, signal lists, and data arrays. For information on
these topics, consult the ACCOL Workbench User Manual (document#
D4051), ACCOL II Interactive Compiler Manual (document# D4042),
and the ACCOL II Reference Manual (document# D4044).

† PLC-2 Commands Supported


The following subset of PLC-2 commands are supported by the inter-
face:
Command Response
Message Message

Unprotected Bit Write 05 45


Unprotected Block Read 01 41
Unprotected Block Write 08 48

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-1
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

† ACCOL Configuration Overview


There are seven steps to configuring the ACCOL load in order to make
the 33XX controller act as an Allen-Bradley PLC-2 slave.

1 . Define a Custom Port. This is described in the sub-section


'Defining the Custom Port.' (Only one Allen-Bradley PLC-2 slave
Custom Port can exist in the ACCOL load.)

2 . Define the Custom Module. This is described in the sub-section


'Defining the Custom Module.'

3 . Define a signal list, known as the Custom List. This is described


in the sub-section 'Defining the Custom List'

4 . Determine the type of data which the Allen-Bradley PLC-2


Master controller will be requesting from the 33XX (Allen-
Bradley slave). A list of data types which are supported by the
interface are discussed in the 'PLC-2 Slave Data Types' sub-
section.

5 . Create the PLC-2 Slave Data Base. This involves defining an


analog read-only data array, called the PLC-2 Data Base Struc-
ture Array, as well as other data arrays and signal lists as
needed. The word addresses which the Allen-Bradley PLC-2
Master controller will be requesting must be determined, and
entered in the PLC-2 Data Base Structure Array, along with
information about the data type, and its location in the 33XX.
This is described in the sub-section 'Defining the PLC-2 Data
Base.'

6 . Define an error data array. This is described in the sub-section,


'Defining the Error Array'.

7 . Set up Audit Trail Event collection (Optional depending upon


application.)

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-2
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

† Defining the Custom Port


The Allen-Bradley PLC-2 slave port is defined via the Communica-
tions Configuration menu of the ACCOL II Interactive Compiler (AIC),
or in the *COMMUNICATIONS section of the ACCOL source file, if
you are using ACCOL Workbench.

COMMUNICATIONS CONFIGURATION MENU

Port A Custom BAUD 9600 Mode: 14 P1: 1 P2: 813


8 Bits 1 Stop Bits No Parity

Parameters must be set as follows:

Port x: The 'CUSTOM' port type must be specified. Which port is


chosen depends upon the type of 33XX unit being used, and
individual application requirements.

B A U D : This is the communication link transmission speed. Specify


the applicable baud rate.

M o d e : Set this value to 14 (which indicates this is the Allen-


Bradley PLC-2 slave interface)

P1: This field is used to define the Allen-Bradley Slave Station


Address (STN). Enter a value from 001 - 254 for the station
address.

P2: This field is composed of three sub-fields which are combined


into a single value. The entire field can be viewed as five
decimal digits:

The first three decimal digits represent the Allen-Bradley


Slave Destination Address (DST). These digits may or may
not be the same as the Station Address (STN). The DST can
range from 001 - 254.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-3
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

The fourth decimal digit selects the Error Checking Method:


This value is one of the following:

1 (CRC checking)
0 (BCC checking)

The fifth decimal digit is referred to as the ENQs:


This value is the maximum number of times a response
message is to be sent to the Allen-Bradley PLC-2 Master
without receiving an acknowlegement (ACK). When the same
response message is transmitted ENQ number of times then
the response message will be discarded when the next poll
(ENQ) is received. This value can range from 0-9. If 0, then a
default of 3 is assumed.

An example for combining all five decimal digits to create


the value for P2 is shown below:

Destination (DST) Address = 008


Error Checking Method = 1 (CRC)
ENQs = 3

Then the value entered for P2 is 813

X Bits: This field is not used. The number of data bits per charac-
ter is fixed internally at 8.

X Stop Bits: This field is not used. The number of stop bits per
character is fixed internally at 1.

XXX Parity: Specify the character parity required by your particu-


lar communication setup. Either 'Even' or 'None' is accept-
able for this interface, however, if CRC is chosen for the
error check type (see P2 above), 'None' must be chosen.

The BAUD and P1 parameters may be altered on-line using the


Portstatus Module. See ACCOL II Reference Manual, document #
D4044.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-4
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

† Defining the Custom Module


In order to configure the Allen-Bradley PLC-2 Slave Interface, the
ACCOL Custom Module must be configured as follows:

MODE: Enter the constant 14 on this terminal, or create an analog


signal for this terminal, with an initial value of 14.

LIST: Enter a constant which represents a signal list number, or


create an analog signal for this terminal which has a signal list
number as its initial value. List numbers can range from 1 - 255.
The signal list referenced is referred to as the 'Custom List'.

STATUS: Create an analog signal for this terminal which will be


used to report a single error or status code which indicates the
status of the Allen-Bradley PLC-2 Slave Interface.

If the signal reports a status code of 0, the interface is function-


ing properly.

If the signal has a value of (-1), then more than one error exists,
and it is necessary to examine the error data array.

If a value other than 0 or (-1) appears, refer to the 'Error and


Status Codes' sub-section to see what the error means.

† Defining the Custom List


The Custom List is an ACCOL signal list used to declare several
parameters required for the proper operation of the Allen-Bradley
PLC-2 Slave Interface. The Custom List number must be identified on
the LIST terminal of the Custom Module (See 'Defining the Custom
Module').

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-5
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

CUSTOM MODULE
Terminal: Constant or signal name:
MODE 14
LIST 9
STATUS CUSTOM.STAT.

’The Custom List’ SIGNAL LIST #9


List
Line# Signal Name Signal Type Initial Value
1 DB.ARRAY. Analog 16
2 BCD.DELAY. Analog 30
3 ERR.ARRAY. Analog 15
4 COUNT1.. Analog 0
5 COUNT2.. Analog 0
6 COUNT3.. Analog 0
7 SNK.LIMIT. Analog 10
8 RCVD.MSG. String (length 64) blanks

ANALOG ANALOG
DATA ARRAY #15 DATA ARRAY #16
PLC-2 Data Base
Error Array Structure Array

(Details of these arrays NOT SHOWN here)

The parameters in the Custom List are discussed, below. Different


signal names than the ones shown may be used, if desired.

DB.ARRAY. This is an analog signal with a value that is the


number of a read-only analog data array. This analog data
array defines the PLC-2 Data Base structure. The Allen-
Bradley PLC-2 Slave Interface will not function without a
valid DB.ARRAY value.

BCD.DELAY. This is an analog signal with a value that specifies


the maximum delay between two successive BCD write

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-6
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

commands. This is used when two separate requests are


needed to write into a single BCD_FP type number (See
'PLC-2 Slave Data Types.') If the second BCD write request
is not received within this time period the transaction is
aborted. The BCD.DELAY value can range from 1 to 30
seconds. The default value is 30 seconds.

ERR.ARRAY. is an analog signal which specifies the number of a


read-write analog data array, called the 'Error Array,' where
error(s) are logged during PLC-2 Data Base validation. See
'Defining the Error Array'.

COUNT1.. is an analog signal which will hold the number of


requests received from the PLC-2 Master.

C O U N T 2 . . is an analog signal which will hold the number of


responses sent to the PLC-2 Master.

C O U N T 3 . . is an analog signal (or analog alarm signal) which


reports the number of messages discarded because of the
BCD Delay time out, NAK received, etc.

SNK.LIMIT. is an analog signal which specifies the limit for the


number of buffers in the sink. This limit can range from 1 to
10. The default value is 10.

RCVD.MSG. is a string signal, with a length of 64 characters.


This signal is used to store the first 32 bytes of each message
received from the PLC-2 Master as an ASCII string. This is
useful for monitoring the communication line during system
troubleshooting. It is recommended that during normal
operations, this signal be control inhibited.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-7
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

† PLC-2 Slave Data Types


The Allen-Bradley PLC-2 Slave Interface supports several PLC-2 data
types, which are listed below. Each data type has an associated code
number. This code number is entered in the PLC-2 Data Base Struc-
ture Array to identify what type of data will be sent to the PLC-2
Master when particular word addresses are requested.

Data Type Code Description

UNDEFINED 0 The Word address is not as-


signed in this load. (Allows holes
between actual word usage).

FP 1 Single precision IEEE Floating


Point (FP). Two successive PLC-
2 words represent a single FP
number, e.g. words at address
200 and 201 represent a single
FP number. These two words
map to one signal in a signal list
or one element in an analog data
array.

BINARY 2 Logical values. Each PLC word


defines 16 logical values (bits).
Bit 0 thru bit 15 of a word are
mapped to nth thru n+15th
(sixteen consecutive) logical
signals in an ACCOL signal list.
Alternately these 16 bits are
mapped to columns 1 through 16
of the nth row of a logical data
array.

BCD 3 One Binary Coded Decimal


(BCD) number (4 BCD digits)
represents

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-8
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

Data Type Code Description

BCD (continued) one PLC-2 word and is mapped


to one signal in a list or one
element in an analog data array.
Binary Coded Decimals are
whole numbers from 0000 to
9999.

BCD-FP 4 This number is made up of 8


BCD digits, 4 digits for the whole
number and 4 digits for the
fraction. Two successive PLC-2
words represent a single FP
number, e.g. words at address
300 and 301 represent a single
BCD-FP number. Word 300 maps
to the fractional part and word
301 maps to the whole number.
These two words map to one
signal in a list or one element in
an analog data array.

EVENT 5 This data type exists to facilitate


easy access to the 33XX’s Event
Log File. To the PLC-2 Master
an Event Log file record is
composed of six FP numbers. See
the 'Audit Trail Event Log' sub-
section for details.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-9
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

† Defining the PLC-2 Data Base


The PLC-2 Data Base contains three major components:

1) The Data Base Structure Array


2) Signal lists containing data base entries
3) Data Arrays containing data base entries

PLC-2 Data Base Structure Array


The PLC-2 Data Base Structure Array is an analog read-only data
array which defines the size and structure of the PLC-2 data base.

The array number must be the same as that identified in the


DB.ARRAY signal in the Custom List. (See the 'Defining the Custom
List' sub-section.)

The data types associated with particular word addresses identified in


the Data Base Structure Array must correspond to whichever data
types the PLC-2 Master is configured to handle.

Each row in the Data Base Structure Array contains:

z Word addresses which the PLC-2 Master will use when sending
data to the 33XX or requesting data from the 33XX.

z The type of data the PLC-2 Master expects for this word or
range of words. (This must be one of the data types described
under 'PLC-2 Data Types.')

In addition, if the data type FP, BCD_FP, BINARY, or BCD are


specified, the following additional information must be included in the
row:

z An ACCOL data array or signal list number which will hold the
actual data.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-10
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

z An index to define where in the list or array the data entries


will reside.

NOTE: All values in this array, including the range of word addresses
are in decimal format.

The number of rows in the Data Base Structure Array will vary
depending upon the number of words, data types, and structure types
which are required. Each row has five (5) columns, which must be
organized as follows:

Column 1 Column 2 Column 3 Column 4 Column 5


Word Structure List or
Address Range Data Type Type Array Number Index
Row 1
Row 2

Row n

Enter the highest Enter a value from Enter a list Enter the
number in the range; 0 to 5 for the data Enter a value or array number position in
For example, if row 1 type. of 0 for a signal list as required. Valid the list or array.
has the range 1 to 40, or 1 for a data array. range is 1 to 255.
enter 40.

Column 1: Specifies the upper limit of a word address range. This


word address range can be for a single word, or a group of
words. (The lower limit word address of the range is 1 higher
than the upper limit defined in column 1 of the previous row; if
this is the first row, the lower limit word address is 0000.)

Column 2: Specifies the data type for the word or range of words,
defined in Column 1 of this row. The data type is indicated by
one of six numerical codes (UNDEFINED=0, FP=1, BINARY=2,
BCD=3, BCD_FP=4, OR EVENT=5.) Depending upon which data
type is chosen, certain requirements must be met. (See Table 1.)

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-11
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

Column 3: Specifies the structure type, i.e. whether the data


described for this row will be stored in a signal list or in a data
array. Enter 0 to indicate a LIST, or 1 to indicate a data array.
This column applies to data types FP, BINARY, BCD, or
BCD_FP. It is ignored if any other data type is specified.

Column 4: Specifies the structure number (signal list number or


data array number). It can range from 1 to 255, or 0 if not
applicable. This column applies to data types FP, BINARY,
BCD, or BCD_FP. It is ignored if any other data type is speci-
fied.

Column 5: Specifies the starting index in the given list or array.


Generally it is 1. The default is 1. This column applies to data
types FP, BINARY, BCD, or BCD_FP. It is ignored if any other
data type is specified.

Lists & Arrays Containing Data Base Entries


The actual data which is sent to the PLC-2 Master in response to a
request, is stored in either ACCOL signal lists or ACCOL data arrays
or both types of structures.

Signal lists can hold both analog and logical signals; data arrays may
contain either analog or logical values, not both.

All data arrays used for data base entries must be read-write arrays.
Depending upon the data type chosen, other requirements may need to
be met, see Table 1 for details.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-12
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

Table 1 - Requirements For PLC-2 Data Types

Data Type: Structure: Requirement:

1 (FP) 0 (LIST) All signals in the list are analog


signals. Number of signals in the
list must be 1/2 the number of
words in the corresponding Ad-
dress Range. Each analog signal in
the list represents 2 PLC-2 words.

1 (FP) 1 (ARRAY) This is an analog array with one


column. Number of rows in the
array must be 1/2 the number of
words in the corresponding Address
Range. Each array element repre-
sents 2 PLC-2 words.

2 (BINARY) 0 (LIST) A list that contains logical signals


that are mapped to bits in a byte.
Number of consecutive logical
signals in the list must be 16 times
the number of words in the corre-
sponding Address Range. Sixteen
bits of each word are mapped to
sixteen consecutive logical signals
in a list.

2 (BINARY) 1 (ARRAY) This is a logical array with sixteen


columns. Number of rows in the
array must be equal to the number
of words in the corresponding
Address Range. Elements of one
row (1 x 16) map to 1 PLC-2 word.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-13
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

Table 1 (continued)

Type: Structure: Requirement:

3 (BCD) 0 (LIST) All signals in the list are analog


signals. Number of signals in the
list must be same as the number of
words in the corresponding Address
Range. Each analog signal repre-
sents one BCD number (4 BCD
digits).

3 (BCD) 1 (ARRAY) This is an analog array with one


column. Number of rows in the
array must be the same as the
number of words in the correspond-
ing Address Range. Each array
element represents one BCD num-
ber (4 digits).

4 (BCD-FP) 0 (LIST) All signals in the list are analog


signals. Number of signals in the
list must be 1/2 the number of
words in the corresponding Ad-
dress Range. Each analog signal
represents 8 BCD digits, i.e. 2 PLC-
2 words.

4 (BCD-FP) 1 (ARRAY) This is an analog array with one


column. Number of rows in the
array must be 1/2 the number of
words in the corresponding Ad-
dress Range. Each array element
represents 8 BCD digits, i.e. 2 PLC-
2 words.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-14
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

Table 1 (continued)

Type: Structure: Requirement:

5 (EVENT) N/A This data type defines the Event


Log file. An address range that
contains exactly 120 words (60 FP
numbers representing 10 Event Log
Records). See 'Audit Trail Event
Log' sub-section for details.

0
(UNDEFINED) N/A The given address or address range
is undefined.

Note: N/A = Not Applicable

Example - Setting Up the PLC-2 Data Base


Create an analog read-only data array, which will serve as the Data
Base Structure Array, and enter values in the rows and columns as
shown in the figure on the next page.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-15
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

Highest List or
Data List
Word or Array
Address Type Array? Num. Index
Col. 1 Col. 2 Col. 3 Col. 4 Col. 5
Row 1 39 0 0 0 0
Row 2 63 1 0 21 1
Row 3 79 2 1 13 1
Row 4 95 1 0 22 11
Row 5 109 3 1 11 1
Row 6 125 1 0 21 13
Row 7 136 4 0 22 1
Row 8 256 5 0 0 0

Explanation (By row number):

1 Words 000 - 039 (40 words - 80 bytes) are not defined.

2 Words 040 - 063 (24 words - 48 bytes) are defined as 12 FP


values. They are mapped to 12 analog signals in the list
number 21 starting from the first signal (index = 1).

3 Words 064 - 079 (16 words - 32 bytes) are defined as BI-


NARY, 256 bit values. Theyare mapped to 256 elements from
(row1, col1) to (row16, col16) of the logical array number 13.

4 Words 080 - 095 (16 words - 32 bytes) are defined as 8 FP


values. They are mapped to 8 analog signals in the list
number 22 starting from the 11th signal (index = 11).

5 Words 096 - 109 (14 words - 28 bytes) are defined as 14 BCD


numbers. They are mapped to 14 elements (row1, col1) to
(row1, col14) of the analog array number 11.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-16
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

6 Words 110 - 125 (16 words - 32 bytes) are defined as 8 FP


values. They are mapped to 8 analog signals in the list
number 21 starting from the 13th signal (index = 13). Note:
first 12 signals are mapped to the addresses 040 - 063.

7 Words 126 - 136 (10 words - 20 bytes) are defined as 5 BCD-


FP numbers. They are mapped to 5 analog signals in the list
number 22 starting from the first signal (index = 01). Note:
1-5 signals are mapped to these addresses, signals 6-10 are
defined but not used for other purposes, and signals 11-18
are mapped to the addresses 080-095.

8 Words 137 - 256 (120 words - 240 bytes) are defined as 10


Event Log Records (60 FP numbers). Word range mapped as
EVENT must be exactly 120 words in size.

Thus this example defines words 000 to 256. Words starting


from 257 are not defined and can be added, as desired, by
extending the number of rows in this array.

Once the Data Base Structure Array is complete, additional structures


referenced by it must be created (i.e. signal lists 21 and 22, analog
read-write data array 11, and logical read-write data array 13.) These
structures will hold the actual data values of the PLC-2 Data Base.

† Defining the Error Array


When the Allen Bradley PLC-2 Slave Interface is initializing itself, if a
single error condition has been detected in the system, it is reported on
the STATUS terminal of the Custom Module. (See 'Defining the
Custom Module,' sub-section.) If more than one error exists, a value of
(-1) will appear on the STATUS terminal, and the error codes will be
reported in the Error Array.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-17
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

The data array designated to be the Error Array is designated by the


ERR.ARRAY signal in the Custom List. (See 'Defining the Custom
List,' sub-section.)

The Error Array must have the following characteristics:

z The Error Array must be a read-write analog data array.


z The Error Array must be 2 columns by n rows in dimension. If
there is enough memory to allow it, n should be the number of
rows in the Data Base Structure Array. If not enough memory is
available, n should be whatevever is the maximum number of
errors the ACCOL programmer wants to be able to examine after
download initialization.

Each row represents one error as follows:

Column 1: The number in column 1 corresponds to either:

a . the row number in the Data Base Structure Array where the
error is detected. For example, if an error occurred because of an
address error in row 5 of the Data Base Structure Array, a 5 will
appear in Column 1.

b . a value greater than 1000. This value is derived by taking the


index in a signal list or row number in a data array (containing
PLC-2 Data Base entries) where the error occurred, multiplying
it by 1000, and adding the result to the row number in the Data
Base Structure Array where the error was detected. For ex-
ample, to locate the source of an error if the number 17,006
appears in this column for the PLC-2 Data Base Structure Array
shown on page 15, do the following:

1. Divide 17,006 by 1,000. The quotient is 17, and the


remainder is 6.

2. Go to row 6 of the Data Base Structure Array shown


on page 15. This row references signal list #21. Since

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-18
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

17 was the quotient, that means the error occured


because of the seventeenth entry of signal list #21.

Column 2: This column shows the Error Code. See the list of possible
error codes, below:

† Error and Status Codes


Code E x p l a n a t i o n

03 Previous send is waiting for a poll from the master.


02 A response is sent to the master
01 A request is being processed.
00 Idle. Last request processed successfully.
-01 There are more errors in the Error Array.
-02 More than one custom port is assigned as the PLC-2 Custom
port.
-03 A custom module with PLC-2 mode is not defined however, a
port for this mode is defined.
-04 Custom List does not contain required number of signals.
-05 Custom List number is in error. It is 0, >255, or a list with
this number is not defined in the load.
-06 The Data Base Structure Array number is bad. It is 0, >255,
or the specified array with this number is not defined in the
load.
-07 The Data Base Structure Array does not have exactly 5
columns.
-08 The Error Array is read only. Must be read-write.
-09 The Error Array does not have exactly 2 columns.
-10 The Error Array number is bad. It is 0, >255, or an analog
array with this number is not defined in the load.
-11 The Address range value given in the first column of the
Data Base Structure Array is already defined.
-12 The Address range for the data type EVENT is not exactly
120 words.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-19
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

Code Explanation (Continued)

-13 The data type in column 2 is <0 or >5.


-14 The Data Structure type is not LIST or ARRAY (not 0 or 1).
-15 The load does not have an array with the number specified
in the Data Base Structure Array column 4.
-16 Size of the data array starting with the structure index
(column 5 of the Data Base Structure Array) does not match
with the corresponding word address range, i.e. there are not
enough rows in the data array.
-17 The load does not have a list with the number specified in
the Data Base Structure Array column 4.
-18 Size of the list starting with the structure index (column 5 of
the Data Base Structure Array) does not match with the
corresponding word address range, i.e there are not enough
signals in this list.
-19 List does not contain an analog signal.
-20 List does not contain a logical signal.
-101 BCD write request transaction was aborted because the
second write request was not received before timeout.
-102 The Command Code is not 01, 05, or 08.
-103 Word address requested by the Allen-Bradley PLC-2 master
is not defined in the Data Base Structure Array.
-104 Data size requested is not valid for given command type.
-105 A BCD digit is not 0-9.
-106 Message sink has overflowed. The received request will be
held until one of the response messages, held in the message
sink, is sent to the master meanwhile no more requests will
be accepted from the master.
-203 All pending messages are discarded because a NAK was
received from the master.
-209 Driver timed out during a message transmit to the master.
Message send is aborted and all pending messages are
discarded.
-210 Number of attempts to send a response without an ACK for
that message has exceeded ENQ limit. Message is aborted.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-20
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

† Audit Trail Event Log


A 33XX can be programmed to maintain an Event Log File. This file is
used to log events that are deemed important. Refer to the 'Audit
Trail/EAudit' section of the ACCOL II Reference Manual (document#
D4044) for information on setting up event logging.

The internal structure of this file is different from the view available
to the PLCs. The Event Log File can hold hundreds of records. How-
ever, at any given time the PLC-2 master can access only the 10 oldest
records.

PLC-2 mode sees this file as 120 consecutive words that map to 60 FP
data types. To read the Event Log records the PLC-2 Master sends the
Unprotected Read request with the address of the first word of the
word range for the data type EVENT and the data length of 240 bytes
(60 FP numbers). The response will contain 0 to 240 bytes of data. If
the Event Log File is empty, then there are no data bytes present.
Otherwise the number of data bytes is equal to the number of records
in the Event Log File times 24 (record size). This number cannot
exceed 10 records (240 bytes).

To remove the records already retrieved, the PLC-2 sends the Unpro-
tected Write request with the address of the first word of the word
range for the data type EVENT. This will result in removal of the last
n records reported.

Repeated read requests without any intervening write requests will


result in the same records being returned (provided the Event Log File
has not wrapped around.)

Only signals can be defined as Event Log members. Arrays can not be
included in this definition.

Each Event Log File record is defined as follows:

Flags (4 Bytes) The reason for the log entry. There are sixteen bits

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-21
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

available to represent sixteen flags. These sixteen bits are


treated as a one word hex value, and converted to an IEEE
single-precision floating point (FP) number. The definition of
the flag bits is dependent on the type of event and are
defined below.

Value Change Events:

Bits Description
0-8 not used (set to 0)
9 set to 1 to indicate a value change
10-15 not used (set to 0)

Alarm Events:

Bits Description
0-8 not used (set to 0)
9 set to 0 to indicate an alarm
10 set to 1 if an analog low low alarm
11 set to 1 if an analog low alarm
12 set to 1 if an analog high alarm
13 set to 1 if an analog high high alarm
14 not used (set to 0)
15 set to 1 if a logical alarm

Note: Return to normal is indicated with all bits zero.

Address (4 Bytes) Word address. The internal signal address is


converted from hex to an IEEE floating point (FP) number.
For example, 45CDH is converted to 17869.0.

Time (4 Bytes) The hour, minute, and second when the event was
logged are combined into a single number, using the formula
below, and then converted to an IEEE floating point (FP)
number.

(Hour * 10,000 + Minutes * 100 + Seconds)

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-22
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC-2 Slave

For example, 08:32:45 is converted to 083245.0.

Date (4 Bytes) The month, day, and year when the event was
logged are combined into a single number, using the formula
below, and then converted to an IEEE floating point (FP)
number.

(Month * 10,000 + Day * 100 + Year)

For example, 09-28-93 is converted to 092893.0.

Value 1 (4 Bytes) If the record is for a value change event, Value 1


is the signal's previous value, i.e. prior to being changed.
This value is converted to an IEEE floating point (FP)
number. If the record is for an alarm change event, Value 1
is the signal's current value. This value is converted to an
IEEE floating point (FP) number.

Value 2 (4 Bytes) If the record is for a value change event, Value


2 is the signal's new value, i.e. after being changed. This
value is converted to an IEEE floating point (FP) number. If
the record is for an alarm change event, Value 2 is the value
of the alarm limit which was exceeded. This value is con-
verted to an IEEE floating point (FP) number.

Note: Exactly 10 Event Log Records (60 FP numbers) must be mapped


to 120 consecutive words, e.g. word address range 400 to 520 can be
mapped to the data type EVENT.

† Communication Statistics
The Allen-Bradley PLC-2 Interface maintains statistics on the status
of communications. These statistics may be stored in a signal list or
data array, by the Portstatus Module. (See the ACCOL II Reference
Manual (document# D4044) for information on the Portstatus Mod-
ule.) The table, on the following page, shows which statistics are
stored in each signal in the signal list or row in the data array.

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-23
Allen-Bradley PLC-2 Slave Interface
Custom Interface to allow 33XX to function as Allen-Bradley PLC -2 Slave

Statistics Collected By The Portstatus Module

Position in signal list


or data array row Description of statistic

1 Number of polls received


2 Command messages received from the
master
3 Response messages sent to the master
4 Parity, buffer overrun, or framing errors
5 Command messages discarded due to
CRC/BCC errors
6 Command messages discarded due to
duplicate transaction number
7 NAK received from master
8 Number of response transmit retries
exhausted
9 Wrong length command message re-
ceived
10 Response messages aborted due to
timeout during transmission
11 Command ignored because expected
consecutive DLE not received

ACCOL II Custom Protocols Manual


Page Allen-Bradley PLC2 Slave-24
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

The Columbia Master Module emulates the functions of the central


computer in a Columbia Gas Network. It uses the communication
format which conforms to standards specified by the Columbia Natu-
ral Gas Corporation.

PORT
SELECT
LIST CNG
Master to I/O port
COMMAND
POINT
SETPOINT
DONE
INLIST
STATUS
STATE
BLOCK

Module Terminals
PORT Default: None
Format: Analog signal or constant
Input/Output: Input

is a code which indicates the communications I/O port which will be


used to communicate with the Columbia Gas Network. Use one of the
codes shown below:

1 = Port A 3 = Port C
2 = Port B 4 = Port D

SELECT Default: None


Format: Analog or logical signal, constant
Input/Output: Input

is the Station ID of the target RTU selected for communications on


the Columbia Gas Network.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-1
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

If a logical signal is used, the first three characters of its base name
are used as the Station ID. If an analog signal or value is used, the
value identifies a particular signal in the list specified via the LIST
terminal. The value corresponds to a signal position in the list. The
first three characters of the base name of the signal at that position in
the list are used as the Station ID.

LIST Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list which specifies the Station ID. The
first three characters of the base name of the selected signal in the
list are used as the Station ID. The particular signal in the list to be
used is specified via the SELECT terminal.

COMMAND Default: None


Format: Analog signal or constant
Input/Output: Input

is the type of message to send to the selected RTU and must assume
one of the following codes:

1 = Poll for logical values (status dump)


2 = Poll for analog values (data dump)
3 = Logical select, check, execute (control)
4 = Analog select, check execute (setpoint)
5 = Reset accumulators
6 = Reset accumulators and signal 8:00 AM
7 = Set time of day (HH:MM:SS)
8* = Set date (DD-MMM-YY)
9* = Downline load select, check, execute (String)

* COMMANDS 8 and 9 were added in May 1990.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-2
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

10* = Downline load status select, check, execute


11* = Mode Select, Check, Execute

POINT Default: None


Format: Analog signal or constant
Input/Output: Input

is the control point, setpoint, string or mode number to change in the


RTU. This terminal is used with COMMAND values of 3, 4, 9, 10 or
11. The value may range from 1 to 99 for COMMAND values of 3, 9,
10 or 11 and from 1 to 98 for a COMMAND value of 4.

Columbia Natural Gas has reserved Setpoint 0 for setting the time
and Setpoint 99 for setting the date.

SETPOINT Default: None


Format: Analog signal or constant
Input/Output: Input

is the setpoint value or string value to be sent to the controller. This


terminal is used with a COMMAND value of 4 or 9 respectively.

INLIST Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list to be used for receiving status or data
from the RTU or sending status values to the RTU. This terminal is
used with COMMAND values of 1, 2 or 10.

For a COMMAND value of 1, logical values are received from the


RTU. If the signal list contains an analog signal, the signal value will

Support for COMMANDS 10 and 11 was added in September 1990.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-3
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

be set to 1.0 if the received data is TRUE or 0.0 if the received data is
FALSE.

For a COMMAND value of 2, analog values are received from the


RTU. If the signal list contains a logical signal, the signal will be set
to TRUE if the received data is non-zero or FALSE if the received
data is zero.

For a COMMAND value of 10, logical values are sent to the RTU. If
the signal list contains an analog signal, the module will send a
TRUE value if the signal is non-zero or a FALSE value if the signal is
zero. This command always sends 16 logical values to the RTU. If the
specified list contains less than 16 signals, a FALSE will be sent for
the unspecified values.

STATE Default: None, entry is optional


Format: Analog signal or constant
Input/Output: Input

is the number of a signal list which will collect status indicators for
the data which is received in response to a poll for logical values
(when COMMAND = 1) or a poll for analog values (when COMMAND
= 2). Each signal in the STATE list corresponds to a signal in the
INLIST at the same list position.

BLOCK Default: None, entry is optional


Format: Analog signal or constant
Input/Output: Input

is the expected Block ID of the first status or data block received from
the RTU in response to a poll. This terminal is used when the COM-
MAND terminal is set equal to 1 or 2.

Valid values for this terminal are integers between 0 and 65,535. If
the Block ID is not within this range, the polling transaction will not
be initiated and the STATUS terminal will be set to -6, ‘Invalid Block

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-4
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

ID’. If the Block ID is valid, but does not match the Block ID in the
first message received from the RTU the STATUS terminal will be set
to -10, ‘Received Block ID is incorrect’. This same error will be re-
ported if subsequent Block ID’s in a multiple block response do not
increment sequentially.

If this terminal is not wired, the first Block ID received from the
RTU, in response to a poll, is assumed to be correct. If subsequent
Block ID numbers, in a multiple block response, do not increment
sequentially from that value, the STATUS terminal will set to -10.

DONE Default: None


Format: Analog or logical signal
Input/Output: Output

indicates the completion of a communication transaction. If a logical


signal is used, it will be set FALSE when the communication transac-
tion is initiated or TRUE when the transaction is completed. If an
analog signal is used, its value will be incremented by one when the
transaction is completed.

STATUS Default: None


Format: Analog signal
Input/Output: Output

indicates the status of the communication transaction when com-


pleted. The signal on this terminal is set to a unique code to identify
the success or failure of the communication transaction. The value is
updated at the same time that the DONE terminal is updated. Codes
are listed in the table below.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-5
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

Code Description

1 Successful logical poll


2 Successful analog poll
3 Successful logical select, check, execute
4 Successful analog select, check, execute
5 Successful reset accumulators
6 Successful reset accumulators and signal 8 A.M.
7 Successful set time of day
8 Successful set date
9 Successful downline load select, check, execute
10 Successful downline load status select, check, execute
11 Successful mode select, check, execute
-1 Invalid Columbia Gas Master port number
-2 Invalid Station ID
-3 Invalid Command code
-4 Invalid INLIST I/O list
-5 Invalid State list
-6 Invalid Block ID
-7 Invalid point, string or mode number
-8 Invalid Setpoint or String Value
-9 Invalid response message
-10 Received Block ID is incorrect
-11 Input list overflowed
-12 Received check back message is incorrect
-13 Configuration error message received
-14 Incorrect or invalid protocol character received
-15 Receive buffer overflowed
-16 Receive character parity error
-17 Receive character overrun error
-18 Receive character framing error
-19 Receive block check error
-20 Timer A expired
-21 Timer B expired
-22 Timer D expired
-23 Unexpected I/O failure

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-6
CNGMaster
ACCOL Module which allows 33XX to function as Columbia Natural Gas Master

Module Operation
After assigning the terminals of this module, there are two other
requirements that must be met before the CNGMASTER Module can
be implemented. First, a special PROM must be installed (or a special
FLASH *.BIN file must be loaded into the controller's custom FLASH
area). Second, one of the communications I/O ports must be assigned
as a CNG port. For more details on configuring I/O ports, see the
ACCOL II Interactive Compiler Manual, document# D4042, the
ACCOL Workbench User Manual, document# D4051, and the section
'Communication Ports' in the ACCOL II Reference Manual, docu-
ment# D4044.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Master-7
blank
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

The Columbia Gas Slave Module emulates the functions of an RTU in


a Columbia Gas Network. It requires a Custom PROM or FLASH file.

STATION
OUTLIST_1
OUTLIST_2 CNG
Slave to I/O port
BLOCK_1
BLOCK_2
INLIST_1
DONE
INLIST_2
STATUS
RESET_1
RESET_2

Module Terminals
STATION Default: None
Format: Logical signal
Input/Output: Input

This terminal has two functions. The signal name will provide a
Station ID and the status of the signal will enable or disable commun-
cations.

The first three characters of the signal’s base name must be the RTU
Station ID on the Columbia Gas Network. If the signal value is
TRUE, the module will respond to messages addressed to it by its
master. If the signal value is FALSE, the module will not respond.

OUTLIST_1 Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list which will send logical data (status
dump) to the master in response to a logical poll.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-1
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

OUTLIST_2 Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list to be used for sending analog data
(data dump) to the master in response to an analog poll.

BLOCK_1 Default: None


Format: Analog signal or constant
Input/Output: Input

is the Block ID of the first status block sent to the master in response
to a logical poll. The value must be an integer number in the range of
0 to 65535. The Block ID is automatically incremented by one for each
successive block for multiple block messages.

BLOCK_2 Default: None


Format: Analog signal or constant
Input/Output: Input

is the Block ID of the first data block sent to the master in response to
an analog poll. The value must be an integer number in the range of 0
to 65535. The Block ID is automatically incremented by one for each
successive block for multiple block messages.

INLIST_1* Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list to be used for receiving Control Point,
Mode, and Downline Load status messages. This terminal is used
differently depending upon the sign of its value.

* In Firmware versions prior to September 1990, INLIST_1 specified the signal list for
Control Point commands only and the signal value was required to be positive.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-2
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

If the value is positive, it identifies the number of the signal list to be


used for receiving Control Point commands. The Point number in the
received message corresponds to a position in the list for the logical
signal to be changed. The logical signal’s value is set to TRUE.

If the value is negative, the absolute value identifies the number of a


signal list that contains up to 4 signals. The signals in the list are
used as follows:

Signal 1 is an analog signal that identifies the number of the signal


list to be used for receiving Control Point commands. It is used the
same as a positive INLIST1 value as described above.

Signal 2 is an analog signal that identifies the number of the signal


list to be used for receiving Mode commands. The Mode number in
the received message corresponds to a position in the list for the
logical signal to be changed. The logical signal’s value is set to
“TRUE.”

Signal 3 is an analog signal that identifies the number of the signal


list to be used for receiving Downline Load Status commands. The
string number in the received message corresponds to the first of
16 positions in the list for the logical signals to be changed. Each
logical signal value is set according to the status field contained in
the received message. If the list contains fewer than 16 signals
beginning with the first signal to be changed the remaining status
values are discarded.

Signal 4 is an optional analog signal that specifies the string number


assigned to the first signal in the Downline Load Status list. The
default value is 1. (e.g. If the value of this signal is 41 and the
received message contains string number 41, the first signal in the
list will be the first position processed.)

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-3
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

INLIST_2 Default: None


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list to be used for receiving Setpoint and
Downline Load commands. (Columbia Natural Gas has reserved
Setpoint 0 for setting the time and Setpoint 99 for setting the date.)
This terminal is used differently depending on the sign of its value.

If the value is positive, it identifies the number of the signal list to be


used for receiving Setpoint commands. The Point number in the
received message corresponds to the signal position in the list for the
analog signal to be changed. The analog signal’s value is set to the
setpoint value contained in the received message.

If the value is negative, the absolute value indentifies the number of a


signal list that contains up to 3 signals. The signals in the list are
defined as follows:

Signal1 is an analog signal that identifies the number of the signal


list to be used for receiving Setpoint commands. It is used the same
as a positive INLIST2 value as described above.

Signal2 is an analog signal that identifies the number of the signal


list to be used for receiving Downline Load commands. The String
number in the received message corresponds to a position in the
list for the analog signal to be changed. The analog signal’s value is
set to the String value contained in the received message.

Signal3 is an optional analog signal that specifies the string number


assigned to the first signal in the Downline Load list. The default
value is 1. (e.g. If the value of this signal is 41 and the received
message contains String number 41, the first signal in the list will
be set to the value contained in the received message. If the re-

In Firmware versions prior to May 1990, INLIST_2 specified the signal list for Setpoint
Point commands only and the signal value was required to be positive.

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-4
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

ceived message contains string number 43, the third signal in the
list will be processed.)

RESET_1 Default: None


Format: Logical signal
Input/Output: Output

indicates the reception of an accumulator reset message. Signal value


is set TRUE when the message is received.

RESET_2 Default: None


Format: Logical signal
Input/Output: Output

indicates the reception of an accumulator reset and signal 8:00 AM


message. The signal’s value is set TRUE when the message is re-
ceived.

DONE Default: None


Format: Analog signal or logical signal
Input/Output: Output

indicates the completion of a communication transaction. If a logical


signal is used, it will be set TRUE when the communication transac-
tion is completed. If an analog signal is used, its value will be incre-
mented by one when a communication transaction is completed. (This
signal must be cleared/reset by the user or the ACCOL program if
desired.)

STATUS Default: None


Format: Analog signal
Input/Output: Output

indicates the status of the communication transaction when com-

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-5
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

pleted by assuming one of the following codes. The terminal is up-


dated at the same time as the DONE terminal.

Code Description

1 Successful logical poll


2 Successful analog poll
3 Successful logical select, check, execute
4 Successful analog select, check, execute
5 Successful reset accumulators
6 Successful reset accumulators and signal 8 A.M.
7 Successful set time of day
8 Successful set date
9 Successful downline load select, check, execute
10 Successful Downline Load Status select, check, execute
11 Successful Mode select, check, execute
-1 Invalid Command code in received message
-2 Invalid Output_1 list
-3 Invalid Output_2 list
-4 Invalid Block ID 1
-5 Invalid Block ID 2
-6 Invalid Control Point list
(In Firmware versions prior to September 1990, this code
means “Invalid Input_1 list”)
-7 Invalid Setpoint list
(In Firmware versions prior to May 1990, this code means
“Invalid Input_2 list”)
-8 Invalid point number in select message
-9 Invalid received message
-10 Invalid Execute message receive
-11 Incorrect or invalid protocol character received
-12 EOT abort received
-13 Receive buffer overflow
-14 Receive character parity error
-15 Receive character overrun error
-16 Receive character framing error
-17 Receive block check error
-18 Timer A expired

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-6
CNGSlave
ACCOL Module which allows 33XX to function as a Columbia Natural Gas Slave

-19 Timer B expired


-20 Timer D expired
-21 Unexpected I/O failure
-22 Invalid Downline Load list
-23 Invalid first string number
-24 Invalid Downline Load Status list
-25 Invalid first status string number
-26 Invalid Mode list

ACCOL II Custom Protocols Manual


Page Columbia Natural Gas Slave-7
BLANK
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

The Enron Modbus Interface allows a Bristol 33XX series controller to


communicate with an Enron Modbus master device. The 33XX functions
as a slave on the Enron Modbus communication line. Modbus
transactions may be conducted using either standard asynchronous serial
communication ports or using a TCP/IP network (Open Modbus). The
serial communication protocol is defined in the Daniel Engineering
Specification for 2500 Host-Slave Communications Software
Requirements (ES-10212-01). The message format for Open Modbus is
described in the Open MODBUS/TCP Specification (release 1 by A.
Swales 3/29/99) from Modicon.

This section assumes familiarity with the Modbus and/or Open Modbus
(TCP/IP) protocols and related terminology, such as registers and coils.
For information on these subjects, consult documentation accompanying
your Modbus device.

This section also assumes familiarity with the ACCOL II Interactive


Compiler (AIC) -OR- ACCOL Workbench, and various ACCOL structures
such as signals, signal lists, and data arrays. For information on these
topics, consult the ACCOL II Interactive Compiler Manual (document#
D4042), the ACCOL Workbench User Manual (document# D4051), and
the ACCOL II Reference Manual (document# D4044).

“ Modbus Function Codes Supported


The following Modbus function codes are supported by the slave interface.

Code Description
1 Read Coil Status
3 Read Holding Registers
5 Force Single Coil
6 Preset Single Register
7 Read Exception Status
15 Force Multiple Coils
16 Preset Multiple Registers

ACCOL II Custom Protocols Manual


Page Enron- 1
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ ACCOL Configuration Overview


There are up to six steps required to configure the ACCOL load in order
to make the 33XX controller act as an Enron Modbus Slave.

1. Asynchronous Serial communications: Define a Custom Port. This is


described in the sub-section 'Defining the Custom Port.'

Open MODBUS TCP/IP communications: Define a Custom IP


Protocol. This is described in the sub-section 'Defining Open
MODBUS Channels'.

2. Define the Custom Module. This is described in the sub-section


'Defining the Custom Module.'

3. Define a signal list, known as the Custom List. This is described in the
sub-section 'Defining the Custom List'. This list must be fully defined.

4. Create the signal lists which are referenced by the signals in the
Custom List. The signals in these lists serve as Modbus coils, and
registers. The purpose of each of these lists is described in the
sub-section 'Defining the Custom List.'

5. If archive data is to be gathered and reported, data array(s) must be


defined for related Archive Register(s); the individual cells of these
arrays will hold the archived data. For 3530-series units, archive files
can also be used as Archive Register(s). See 'Retrieving Archive Data.'

6. IMPORTANT: The Audit Trail module must always be


configured whether or NOT you intend to collect Audit Trail
Data. If you do intend to collect Audit Trail data, certain data arrays
must also be configured. See 'Retrieving Audit Trail History.'

ACCOL II Custom Protocols Manual


Page Enron- 2
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Defining the Custom Port (Serial Asynchronous


Modbus ONLY)

The Custom Port is associated with a specific Modbus slave address on a


Modbus line and a Custom Module is associated with a particular port.
Any number of ports can be used concurrently for communication with
Modbus masters. Both ASCII and RTU transmission modes are sup-
ported.

The Enron Modbus Slave port is defined in the *COMMUNICATIONS


section of the ACCOL source file, if you are using ACCOL Workbench, or
on the Communications Configuration Menu of the ACCOL II Interactive
Compiler (AIC). A typical definition for the port in AIC is shown below.

COMMUNICATIONS CONFIGURATION MENU

Port A 4 Custom 4 BAUD 9600 Mode: 8 P1: 0


P2: 1
4 8 Bits 4 1 Stop Bits 4 No Parity

Parameters should be set as follows:

PORT x - The port type must be defined as 'CUSTOM'. Which port is


chosen depends upon the type of 33XX unit being used, and individ-
ual application requirements.

BAUD - This is the communication link transmission speed. Choose from


the available Custom Port baud rates listed in the 'Communication
Ports' section of the ACCOL II Reference Manual (document# D4044).

MODE - Set this value to 8 (which indicates that this is an Enron Mod-
bus Slave.)

P1 - This field selects the transmission mode. Valid values are as follows:

ACCOL II Custom Protocols Manual


Page Enron- 3
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

0 ASCII mode
1 RTU mode
2 Modbus ASCII / BSAP Slave (3530 units ONLY)
3 Modbus RTU / BSAP Slave (3530 units ONLY)
4 Modbus ASCII / BSAP Pseudo Slave (3530 units ONLY)
5 Modbus RTU / BSAP Pseudo Slave (3530 units ONLY)

P2 - This field specifies the Modbus slave address to be used by this port.
Slave addresses may range from 1 to 247. The port will accept
broadcast messages and messages addressed to this slave.

X Bits - This field defines the number of data bits in a character.* For
ASCII transmission mode, the character length is 7 or 8 bits. The
default is 7. If 6 is entered, the default of 7 is used. For RTU trans-
mission mode, this parameter is fixed at 8 bits; any other entry for
RTU transmission mode is ignored.

X STOP BITS - This field defines the number of stop bits. Set this to the
number of stop bits required by your particular communication setup.

XXX PARITY SET - This field defines the type of parity used. Set this to
the type of parity (odd, even, or none) as required by your particular
communication setup.

The BAUD and P2 parameters may be altered on-line using the Port-
status Module.** If you have STP.07 (or newer) custom firmware, you
may also modify DATA BITS, STOP BITS, and PARITY. If you have
STP.08 (or newer) custom firmware you may modify P1 as well.

* In Protected Mode units, and in units with AK and RMS01 (or earlier) firmware, this value is
fixed at 7 for ASCII mode, and 8 for RTU mode.

** See the ACCOL II Reference Manual (document# D4044) for details on the Portstatus
Module.

ACCOL II Custom Protocols Manual


Page Enron- 4
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Defining Open Modbus Channels


(Open Modbus ONLY)

The communications channel used for Open Modbus messages must be


assigned in the Custom IP configuration sub-section of the ACCOL
Workbench *COMMUNICATIONS section. The channel's mode of
operations is selected as follows:

MODE - Set to 52 to indicate that this will be an Open Modbus Slave.

P1 - This parameter can be set to an alternate TCP port. The default for
this parameter is 502.

P2 - Not used.

Communications channels are implemented as TCP/IP connections and


this does not, in theory, limit the number of simultaneous accesses to a
specific Open Modbus slave. In practice, however, only 16 TCP/IP
connections at a single RTU are allowed at one time. This maximum also
includes any protocols other than Open Modbus, such as FTP, HTTP,
Telnet, etc. For the Open Modbus protocol, each combination of IP
Address and Unit Number is treated as a separate channel (connection).
This is done in order to prevent a channel that has an address error from
forcing a disconnect on a channel with good addressing that is in active
use. When a communications error is detected on a channel, the TCP/IP
connection is closed. Communications errors include disconnects from the
other end of the TCP/IP connection; and inability to initiate a connection.
Errors in the Modbus message protocol will not cause a TCP/IP
disconnect. When a new access is made, a new attempt to create a TCP/IP
connection will be made.

Note: All TCP/IP connections will remain live, and count in the
above connection tally, for 4 more minutes after they have
been closed. Caution should be taken to not open and close
TCP/IP connections so frequently that the above limit is
exceeded. Needless connection failures could occur.

ACCOL II Custom Protocols Manual


Page Enron- 5
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Defining the Custom Module


The Custom Module, when used with the Enron Modbus / Enron Open
Modbus Slave interface, should be defined in Task 0. The module
terminals must be configured as follows:

MODE Enter a constant which represents the custom protocol mode, or


create an analog signal for this terminal which has the custom proto-
col mode as its initial value. Enter an 8 for an asynchronous serial
communication channel (Enron Modbus) or a 52 for an Open Modbus
TCP/IP communication channel (Enron Open Modbus).

LIST Enter a constant which represents a signal list number, or create


an analog signal for this terminal which has a signal list number as
its initial value. List numbers can range from 1 - 255. The signal list
referenced is referred to as the 'Custom List.'

STATUS the signal on this terminal will assume a status code which
indicates the state of communication and error conditions. Status
codes and their meanings are in the 'Error and Status Codes'
sub-section.

ACCOL II Custom Protocols Manual


Page Enron- 6
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Data Formats
The following data formats are applicable to the Enron Modbus and
Enron Open Modbus messages:

Data Type Format Reference


Floating point IEEE 4 byte floating Signal 3 Registers
point format (sign list plus Archive
exponent byte occurs and Audit Trail
first) *1 values
Short Integer 2 byte (most significant Signal 3 Registers
byte first) * 2 list and Signal 7
Short Integers list
Long Integer 4 byte (most significant Signal 8 Long
byte first) * 3 Integers list
Packed 8 bits/byte. First byte Signal 2 Coils list
Logical** contains status of the and Signal 4
first 8 coils being Exception Status
reported. Most Coils list
significant bit = 8th coil;
least significant bit = 1st
coil

* Example: Byte: i i+1 i+2 i+3


1 Value=1.0 3F 80 00 00
2 Value=17185 43 21
3 Value=305419896 12 34 56 78

** The Force Single Coil message does not use packed logical format.

ACCOL II Custom Protocols Manual


Page Enron- 7
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Defining the Custom List


The Custom List is an ACCOL signal list used to declare several param-
eters required for proper operation of the Enron Modbus / Enron Open
Modbus interface. The Custom List number must be identified on the
LIST terminal of the Custom Module (See 'Defining the Custom Module.')

NOTE

The parameters in the Custom List are discussed, below.


Different signal names than the ones shown may be used, if
desired. Certain signals in the Custom List are optional,
however, if you intend to use any other signals further on in the
Custom List, you must create ‘dummy’ signals for those unused
positions in the list. For this reason, it is recommended that you
always fully define your Custom List.

Signal 1
For Asynchronous Serial communications (Modbus): -
ENRON.CUSTOM.PORT (Port Number) - An analog signal whose
value is used to select the communication port to be used by this
module. The port must be a Custom Port configured for Enron
Modbus Slave mode. The correspondence between the value of Signal
1, and the port, are shown below:

Value Port Value Port Value Port


1.0 A 5.0 BIP1 * 9.0 I*
2.0 B 6.0 BIP2 * 10.0 J*
3.0 C 7.0 G*
4.0 D 8.0 H*

An invalid signal value (such as 0.0) can be used to disable the


module. If more than one Custom Module configured for Enron
Modbus slave mode specifies the same port, only the first module in
the ACCOL load found with that port address will function.

* These ports are only available in Protected Mode Units (PLS00/PLX00) or newer.

ACCOL II Custom Protocols Manual


Page Enron- 8
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

For Open Modbus TCP/IP communications (Open Modbus): (Unit


Number) - An analog signal whose value should be set to the desired
unit number from the Modbus/TCP message prefix. This slave node
will answer only to the Modbus/TCP messages with this unit number.

Signal 2 - COILS.LIST.NUM (Coils List Number) - An analog signal


whose value is the number of the signal list used to specify the
signals which are used as Coils for addresses 1001 to 3000. A Read
Coil Status, Force Single Coil, or Force Multiple Coils message will
use the signals in this list. The first signal in the list corresponds to
coil address 1001 specified in a message.

The Coils list normally contains logical signals whose values corre-
spond directly with coil values. If an analog signal appears in the list,
its value is converted to a boolean when reading status. A value of 0.0
is equivalent to OFF and a non-zero value is equivalent to ON. When
an analog signal is forced OFF, its value is set to 0.0 and when it is
forced ON, its value is set to 1.0. If a string signal appears in the list,
its status value is equivalent to OFF and forcing it has no effect.

A maximum of 2000 coils may be read in one request.

NOTE

A Force Single Coil message to coil address 32 is used to clear the


Audit Trail events previously reported (See 'Retrieving Audit
Trail History' later in this section.)

Signal 3 REGISTER.LIST.NUM (Registers List Number) - An


analog signal whose value is the number of the signal list used to
specify the signals which are used as Holding Registers for addresses
7001 and up. A Read Holding Registers, Preset Single Register, or
Preset Multiple Registers message specifying this address range will
use the signals in this list. Each signal in the list holds a register
value. The first signal in the list corresponds to register address 7001
specified in a message.

ACCOL II Custom Protocols Manual


Page Enron- 9
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

The Registers list normally contains analog signals whose values


correspond with register values.

The value contained in a Preset Single Register message is always


treated as a 16 bit unsigned integer or as a floating point number.
The decision of which format to use is made based on the received
message length.

If a logical signal appears in the list, its value is converted to an


analog value when it is read. A value of OFF is equivalent to 0.0 and
a value of ON is equivalent to 1.0. When a logical signal is preset, a
zero value is equivalent to OFF and a non-zero value is equivalent to
ON. If a string signal appears in the list, its read value is equivalent
to 0.0 and presetting it has no effect.

A maximum of 62 registers (in floating point mode) or a maximum of


125 registers (in 16 bit unsigned integer mode) may be read in one
request.

NOTE

A Read Holding Registers message for register address 32 is used


to request Audit Trail events. A maximum of 12 events can be
returned in one request (See 'Retrieving Audit Trail History'
later in this section.)

Signal 4 - EXCPCOIL.LIST.NUM (Exception Status Coils List


Number) - An analog signal whose value is the number of the signal
list used to specify the signals which are used as Exception Status
Coils. A Read Exception Status message will use the first 8 signals in
this list. Each signal in the list corresponds to one of the dedicated
exception status coils.

The Exception Status Coils list normally contains logical signals


whose values correspond directly with coil values. If an analog signal
appears in the list, its value is converted to a boolean when reading
status. A value of 0.0 is equivalent to OFF and a non-zero value is

ACCOL II Custom Protocols Manual


Page Enron- 10
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

equivalent to ON. When an analog signal is forced OFF, its value is


set to 0.0 and when it is forced ON, its value is set to 1.0. If a string
signal appears in the list, its status value is equivalent to OFF and
forcing it has no effect. The signal values are treated the same as for
a Read Coil Status message.

If the list contains fewer than 8 signals, OFF will be used for the
value of a missing signal.

Signal 5 - COMM.DONE. (Communications Done) - An analog or


logical signal that indicates completion of a communication transac-
tion. If a logical signal is used, it will be set OFF when the
communication transaction is started, and will be set ON when the
communication transaction is completed. If an analog signal is used,
its value will be incremented by one when the communication
transaction is completed. The Custom Module’s STATUS terminal is
updated at the same time as this signal, therefore COMM.DONE
indicates that the status is valid.

This signal is not required.

Signal 6 - ARCIVREG.LIST.NUM (Archive Register List Number) -


The structure of the Archive Register List varies based on controller
platform type.

For all 3xxx controllers except the 3530 series:


ARCIVREG.LIST.NUM is an analog signal whose value is the
number of a signal list which must contain only analog signals. Each
signal in the list holds the number of an analog read-write data array
which will serve as an archive register. There are a maximum of 300
archive registers in the system; they use addresses 701 to 1000. The
position of a signal in the signal list corresponds to the archive
register being referenced, i.e. the first signal in the list references the
array which serves as archive register 701, the 300th signal in the list
corresponds to archive register number 1000. A Read Holding
Registers message will reference the registers specified in this list.
See 'Retrieving Archive Data' for details.

If a signal being read in this list is a logical signal or a string signal

ACCOL II Custom Protocols Manual


Page Enron- 11
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

then an error response is sent.

Variations for 3530-series TeleFlow / TeleRTU Users:


For 3530-series units (TeleFlow / TeleRTU) archive data can be stored
either in analog data arrays or it can be stored in archive files. Like
before, ARCIVREG.LIST.NUM is an analog signal whose value is
the number of a signal list. When all analog data arrays are used for
the archive registers, configuration of the archive register list is
exactly the same as described for other platforms.

If archive files are used, however, or a mixture of analog arrays and


archive files are used, an optional logical signal may be included as
the first signal in the list. This signal defines the access method used
to retrieve data from the archive file (see ‘Retrieving Archive Data’
later in this section). All other signals in the list must be analog
signals, which are used to reference archive registers 701 to 1000.
When the value of one of these analog signals is positive, then that
number represents the number of an analog array which will be used
as the corresponding archive register. If the value of one of these
signals is negative, then that number represents the number of an
archive file which will be used as the corresponding archive register.

Signal 7 - SHORTREG.LIST.NUM (Short Integer Registers List


Number) - An analog signal whose value is the number of a signal
list used to specify the signals which are used as short integer regis-
ters for addresses 3001 to 5000. A Read Holding Registers, Preset
Single Register, or Preset Multiple Registers message specifying this
address range will use the signals in this list. Each signal in the list
holds a short integer register value. The first signal in the list corre-
sponds to register address 3001 specified in a message. A maximum
of 2000 registers (3001 to 5000) can be defined in this list.

ACCOL II Custom Protocols Manual


Page Enron- 12
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

If a logical signal appears in the list, its value is converted to an


analog value when it is read. A value of OFF is equivalent to 0 and a
value of ON is equivalent to 1. When a logical signal is preset, a zero
value is equivalent to OFF and a non-zero value is equivalent to ON.
If a string signal appears in the list, its read value is equivalent to 0
and presetting it has no effect.

NOTE

A Read Holding Registers message for register address 32 is used


to request Audit Trail events. A maximum of 12 events can be
returned in one request (See 'Retrieving Audit Trail History'
later in this section.)

A maximum of 125 registers may be read in one request.

Signal 8 - LONGREG.LIST.NUM (Long Integer Registers List


Number) - An analog signal whose value is the number of a signal
list used to specify the signals which are used as long integer regis-
ters for addresses 5001 to 7000. A Read Holding Registers, Preset
Single Register, or Preset Multiple Registers message specifying this
address range will use the signals in this list. Each signal in the list
holds a long integer register value. The first signal in the list corre-
sponds to register address 5001 specified in a message. A maximum
of 2000 registers (5001 to 7000) can be defined in this list.

If a logical signal appears in the list, its value is converted to an


analog value when it is read. A value of OFF is equivalent to 0 and a
value of ON is equivalent to 1. When a logical signal is preset, a zero
value is equivalent to OFF and a non-zero value is equivalent to ON.
If a string signal appears in the list, its read value is equivalent to 0
and presetting it has no effect.

ACCOL II Custom Protocols Manual


Page Enron- 13
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

A maximum of 62 registers may be read in one request.

NOTE

A Read Holding Registers message for register address 32 is used


to request Audit Trail events. A maximum of 12 events can be
returned in one request (See 'Retrieving Audit Trail History'
later in this section.)

Signal 9 - EVTRCFLG.LIST.NUM (Event Record Flags List Num-


ber) - An analog signal whose value is the number of the signal list
used to specify the coils/register event signals that require specific
event log flags to be reported when these signals are part of the event
log report. This list is tightly coupled with Signal 10 (Event Record
Flags - Array). See discussion under 'Retrieving Audit Trail History.'

Signal 10 - EVTRCFLG.ARRAY.NUM (Event Record Flags Array


Number) - An analog signal whose value is the number of the logical
read-only array used to specify the 16 flags associated with each
signal in the Event Record Flags List (Signal 9). This logical array
has exactly 16 columns, column 1 is mapped to bit 15 in the Event
Report flag word and column 16 is mapped to bit 0. The number of
rows in this array must exactly match the number of signals in the
Event Record Flags List. All values of this array must be defined
during ACCOL load configuration. See discussion under 'Retrieving
Audit Trail History.'

Signal 11 - EVTLOG.DATE.FMT (Event Record Date Format) -


This signal is used to select the format of the date in the Event
Record. It can be set to 0 or 1. If the signal's value is less then 0 or
greater then 1 then the signal value defaults to 0. The date is
returned as MMDDYY where YY is controlled by the value of this
signal as follows:

0 - Year is the last two numbers of the calendar year, 00-99


1 - Year is the offset value from 1980

ACCOL II Custom Protocols Manual


Page Enron- 14
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

For example,
Year YY

1980 --> 00
1981 --> 01
:
:
2000 --> 20

Signal 12 - LOCAL.AUDIT.PTR (Local Audit Pointer) - This analog


signal is updated by the Custom Module to indicate the current
position within the Audit Trail event buffer of the pointer "local" to
the Custom Module. See 'Retrieving Audit Trail History'. The
position within the buffer is an integer value between 1 and the size
of the event buffer. The signal should be initially set to 0.0 (within the
ACCOL load). This signal is only available in AL.01, RMS03, LS500
(or newer firmware) and STP.08 (or newer custom firmware).
Although this signal is NOT used by Protected Mode units, it must
still be declared if any higher numbered signals are to be used.

Signals 13 through 15 are only available in STP.08 (or newer) custom


firmware:

Signal 13 - MONITOR.LIST.NUM (Data Line Monitor List


Number) - This analog signal specifies the number of a signal list
which contains signals which are updated by the Custom Module
whenever a request is processed. Signal 13's value must NOT be
changed on-line. The signal list (if it exists) contains six signals
(shown on the next page). If any of these signals are unwired or of the
wrong type, they will be ignored. Control inhibiting any of the first
five signals will disable the corresponding monitor feature.

List
Line# Signal Name Signal Type Description

1 REQUEST.FNCODE. Analog Function code from request message.

2 REQUEST.START. Analog Start coil / register number (if relevant


function is active; otherwise set to 0.0)

ACCOL II Custom Protocols Manual


Page Enron- 15
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

3 REQUEST.NUM. Analog Number of coils / registers requested (if


relevant function active; otherwise set
to 0.0)

4 RECEIVE.MSG.DATA 64 character Received message in ASCII Hex


string

5 TRANSMIT.MSG.DATA 64 character Transmitted message in ASCII Hex


string

6 FIRMWARE.ID String System Firmware ID *

Signal 14 - MANWRITE.PROT.FLAG (MI/ME write protection


flag) - This signal (which can be either analog or logical) specifies
whether the write protection for the coils/registers is done via the
Control Inhibit/Enable flag, or the Manual Inhibit/Enable flag. If the
signal is analog, and non-zero, or logical and ON, the Manual In-
hibit/Enable flag is used; otherwise the Control Inhibit/Enable flag is
used. If the signal is unwired, the Control Inhibit/Enable flag is used.
Any on-line changes to this signal are ignored.

Signal 15 - SPECFUN.ARRAY.NUM (Special Functions array


number) - This is an analog signal which specifies the number of the
Special Functions array. The Special Functions Array is an analog
2-dimensional read-only array with n rows and 2 columns. This array
is only read on start-up, it must NOT be changed on-line. The first
column of the array defines the data type; the second column of the
array defines the coil/register for that data type. The valid data types
are described in the table, below:
Data Special
Type Function Description

1 System Function Code 3 (Read register) for the register number specified
Date in Column 2 of the array: The system date will be returned in
the response message. For TeleFlow users (TFA01.26 or newer)
or Protected Mode (04.30 or newer) if a register count of 2 is
specified in the request, values for both the Date and Time will
be returned.

* This string signal should be at least 12 characters long in a Real Mode unit, or 18 characters
long in a Protected Mode unit.

ACCOL II Custom Protocols Manual


Page Enron- 16
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

Data Special
Type Function Description

Function Code 6 (Preset single register) for the register number


in Column 2 of the array: The system date will be updated using
the data from the message. The format for the system date will
be the same as that currently used for archive register date - i.e.
one four-byte floating point number. For example, MMDDYY
(e.g. 122293.0 for December 22, 1993).

If a system date update is requested with a year less than 88,


the year 20YY will be assumed (e.g. YY=03 will result in a
system date with the year 2003.)

Function code 16 (Preset Multiple Registers) For TeleFlow users


(TFA01.26 or newer) or Protected Mode (04.30 or newer): For the
register number specified in Column 2 of the array, the system
will update both the Date and Time from the values contained in
the message. The request must specify a register count of 2 and
two values must be supplied, or an error will be reported.
2 System Function code 3 (Read register) for the register number specified
Time in Column 2 of the array: The system time will be returned in
the response message.

Function Code 6 (Preset single register) for the register number


in Column 2 of the array: The system time will be updated using
the data from the message.

The format for the system time will be the same as that cur-
rently used for archive register data (the archive register time
format does not include seconds) - i.e. one four-byte floating
point number:
HHMMSS (e.g. 153102.0 for 15:31:02).
3 System Function Code 3 (Read register) for the register number in
Firmware Column 2 of the array: The system firmware ID will be returned
ID in the response message.

Real Mode Users (AL.01, RMS03, LS500 or newer)


The system firmware ID is a 12 character string, as displayed at
the top of the ACCOL tools (e.g. '0102RMS01.01'). Each
character in the string will be sent as one ASCII-code byte in the
message (e.g. 'R' is sent as 82). Some types of 33XX units (such
as the RTU 3305) will not respond to this request.

Protected Mode Users (PLS01/PLX01 or newer)


The system firmware ID is an 18 character string in the format
"DDMM PPP VV.UP Bbb" where: DD is the day of the month
(hex), MM is the month (hex), PPP is the Product ID (ASCII

ACCOL II Custom Protocols Manual


Page Enron- 17
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

Data Special
Type Function Description

characters), VV is the firmware release (major) (hex), UP is the


firmware update number (hex), and bb is the beta release
number (hex).

There is no internal checking regarding the type of unit (Real or


Protected Mode).

4 ACCOL Function code 3 (read register) for the register number in


Load Column 2 of the array: The load version number will be returned
Version in the response message. This consists of a total of 4 bytes of
data. The load version is taken from the first 4 bytes of the .ACL
file.

5 Enhanced Function Code 3 (Read Register) for the register number in


Audit Column 2 of the Array: Read audit records (using 'local' pointer
Trail as start position.)
Access
Function Code 5 (write single coil) for this code number: Clear
Audit records ('local' pointer)

Real Mode (AL.01, RMS03, LS500 or newer):


This feature for 'enhanced' audit file access works in a similar
manner to that used for coil/register value 32, except that it
utilizes a pointer local to the Custom Module, and does not affect
the pointer of the Audit Module. This mode of operation does not
conflict with any other modules or programs which are reading
and deleting records from the Audit buffer.

Protected Mode (PLS01/PLX01 or newer):


This feature for 'enhanced' audit file access works identically to
using coil/register value 32. Note that in protected mode, the
Logger and Enron Modbus interface use separate pointers to
access Audit Trail data.

Signal 16 - AUDIT.RDN.LIST (Audit Redundancy information list)


- This is an analog signal which specifies the number of a signal list
used to support redundancy for Audit Trail Alarm/Event buffers. The
first seven entries in this signal list must be analog signals, and are
described in the following table.

ACCOL II Custom Protocols Manual


Page Enron- 18
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

WARNING

These signals are used by the Enron Slave protocol to hold


internal pointers to the Audit buffers. These signals should be
defined with an initial value of 0, and should NEVER be altered
by the user. Failure to properly define this list and signals will
result in erroneous operation.

List Signal
Entry# Signal Name Type Description

1 MBSRDN.REPORT.FLAG Analog Indicates Alarms/Events have been


reported

2 MBSRDN.OLDEST.ALRM Analog Pointer to oldest alarm in Alarm


buffer.

3 MBSRDN.OLDEST.EVNT Analog Pointer to oldest event in Event


buffer

4 MSRDN.SEQ.ALRM Analog Sequence number of oldest alarm


reported

5 MBSRDN.SEQ.EVNT Analog Sequence number of the oldest


event reported

6 MBSRDN.ALARM.CNT Analog Number of alarms reported

7 MBSRDN.EVENT.CNT Analog Number of events reported

Signal 17
For Asynchronous Serial communications (Modbus): -
RTSCTS.DELAY. (RTS/CTS Delay) - This is an optional analog
signal which specifies a time delay. The time delay can either be used
to monitor for CTS being raised, or to delay transmitting a message;
the choice of how it is used is specified using Signal 18.

The delay value can range from 0.001 to 65.534 seconds. If Signal 17
is not defined as an analog signal, or if its value is out of the specified
range, then a default delay of 2.5 seconds will be used.

ACCOL II Custom Protocols Manual


Page Enron- 19
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

This signal is NOT available for GFC 3308 users.

Open Modbus TCP/IP communications (Open Modbus): This signal


is neither required nor used by the Open Modbus protocol. However,
if the TOTAL.AUDIT.RECS functionality is used, then a dummy
signal must be inserted here.

Signal 18
For Asynchronous Serial communications (Modbus): -
RTSCTS.DELAY.MODE (RTS/CTS Delay Mode) - This is an
optional signal which specifies how the RTS/CTS delay (specified via
Signal 17) will be used. There are two choices for the mode.

Monitor For CTS Mode: After RTS is raised, the time delay will be
used as the maximum time to wait within which CTS must be re-
ceived. If CTS is received at any time before this delay expires, the
message transmission begins. If CTS is NOT received prior to the
expiration of the delay, no response will be sent. If signal 18 is an
analog signal, this mode is activated by setting its value to a positive
number. If Signal 18 is a logical signal, this mode is activated by
turning the signal ON. If Signal 18 is a string signal, this mode will
automatically be chosen. If Signal 17 is wired, but Signal 18 is
omitted, this mode will automatically be chosen.

Message Transmit Delay Mode: After RTS is raised, a delay timer


will be started. (The length of the delay is determined by the value of
Signal 17). No message will be sent until after this delay has expired.
The value of CTS does not affect the operation of this mode. NOTE: In
order for this mode to work, RTS-CTS must be jumpered or the CTS
must be received before the specified delay expires. If Signal 18 is an
analog signal, this mode is activated by setting it to 0. If Signal 18 is
a logical signal, this mode is activated by turning it OFF.

This signal is NOT available for GFC 3308 users.

Open Modbus TCP/IP communications (Open Modbus): This signal


is neither required nor used by the Open Modbus protocol. However,
if the TOTAL.AUDIT.RECS functionality is used, then a dummy

ACCOL II Custom Protocols Manual


Page Enron- 20
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

signal must be inserted here.

Signal 19 - TOTAL.AUDIT.RECS (Audit Trail Buffer Size) - This is


an optional signal which may be used to determine whether there are
audit records to be collected. If Signal 19 is an analog signal (Modbus
register), then the value reported is the combined total of
alarms/events in the Audit Trail buffer(s). If Signal 19 is a logical
signal (Modbus coil) it is set ON when there are records in the
buffer(s), and set OFF if the buffer(s) are empty. A Modbus Master
device can examine this signal during each poll of data to determine
whether there are audit records available for collection.

This signal is NOT available for GFC 3308 users.

“ Error and Status Codes


Code Explanation
-23 = One or more signals in the Audit RDN List are not analog
signals.
-22 = Audit RDN List does not have at least seven signals.
-21 = List specified on the AUDIT.RDN.LIST terminal does not
exist.
-20 = Audit RDN list is not defined in the Custom List.
-12 = Error processing 'special function' request. (see note 3)
-11 = Invalid long integer register list number specified. (see note 2)
-10 = Invalid short integer register list number specified. (see note 2)
-9 = Invalid archive register list number specified. (see note 2)
-8 = An invalid data field length was received. (see note 3)
-7 = An invalid coil or register address or quantity was received.
(see note 2)
-6 = Invalid Registers List number specified. (see note 2)
-5 = Invalid Coils List number specified. (see note 2)
-4 = Invalid Exception Status List number specified. (see note 1)
-3 = An invalid or unsupported function code was received. (see
note 1)
-2 = A Broadcast was received with an error and ignored.
-1 = EPROMs do not support the Enron Modbus Slave mode.

ACCOL II Custom Protocols Manual


Page Enron- 21
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

1 = Read Coil Status received, response sent.


2 = Read Holding Registers received, response sent.
3 = Read Exception Status received, response sent.
4 = Force Single Coil received, response sent.
5 = Preset Single Register received, response sent.
6 = Force Multiple Coils received, response sent.
7 = Preset Multiple Registers received, response sent.
8 = A Coil to be forced was Inhibited.
9 = A Register to be preset was Inhibited.
10 = Attempt to force or preset a string signal.
11 = Read Holding Registers - Archive Data message received,
response sent.
12 = Read Holding Registers - Short Integer message received,
response sent.
13 = Read Holding Registers - Long Integer message received,
response sent.
14 = Update system date message received and processed.
15 = Update system time message received and processed.
16 = Read Input Status received, response sent. (386EX PM units ONLY)
17 = Read Input Registers received, response sent. (386EX PM units ONLY)
18 = Update system date & time message received and processed.
19 = Port mode changed to Enron Modbus (Mode 8).
20 = Port mode changed to Gould Modbus (Mode 7).

NOTE 1: This error causes an Illegal Function exception response to be sent.


NOTE 2: This error causes an Illegal Data Address exception response to be sent.
NOTE 3: This error causes an Illegal Data Value exception response to be sent.

“ Retrieving Archive Data


For all units except the 3530-series TeleFlow / TeleRTU:
The ACCOL load program must be configured with read-write analog
data arrays, and necessary control logic to store the required data, with
the time stamps in column 1 of each array row, and data values in the
remaining columns. Each of these read-write analog data arrays* are
* The number of the array is defined in the archive register list. (See Signal 6 under the ‘Defining
the Custom List’ sub-section.)

ACCOL II Custom Protocols Manual


Page Enron- 22
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

treated as one of the archive registers (addresses 701-1000). This data


may then be retrieved by using the Read Holding Registers command.

This array can have n rows and up to 61 columns. All requests for archive
data must include two values: register number and record number. The
register number can be any defined register (701-1000) in the archive
register list whose value is the number of an analog read-write data
array. The data field of the command message (record number
parameter) specifies the row number within the selected array.

The response message includes all the columns of the selected row. The
first column of an archive array is a combined time and date value
(#TIME.000). An archive response record is formatted** as follows:

TIME DATE COL2_VALUE COL3_VALUE... COLn_VALUE


where,
TIME = HHMM (e.g. 0100.00 for 1:00 a.m., seconds are omitted)
DATE = MMDDYY (e.g. 122293.00 for Dec 22 1993)

For example, as shown on the next page, archive register 701 is used for
hourly data collection, and is mapped to array number 51. The hourly
data collection includes two variables. Thus, array 51 will be defined as
24 rows (one for each hour in the day) by 3 columns (column 1 for the
timestamp, and columns 2-3 for data storage.) The response to a read of
row 1 will contain four floating point numbers:

HHMM MMDDYY VALUE1 VALUE2


0000 122293 14.36 127.1

** Numbers are stored in floating point format.

ACCOL II Custom Protocols Manual


Page Enron- 23
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

CUSTOM MODULE
Terminal: Constant or signal name:
MODE 8
LIST 1
STATUS CUSTOM.STAT.

‘The Custom List’ Signal List #1


Line# Signal Name Signal Type Initial Value
1 ENRON.CUSTOM.PORT Analog 1
2 COILS.LIST.NUM Analog 2
3 REGISTER.LIST.NUM Analog 3
4 EXCPCOIL.LIST.NUM Analog 4
5 COMM.DONE. Logical OFF
6 ARCIVREG.LIST.NUM Analog 5
7 SHORTREG.LIST.NUM Analog 6
: : :
: : :
19 TOTAL.AUDIT.RECS Analog

‘The Archive Register List’ Signal List #5


Line# Signal Name Signal Type Initial Value
1 ARCHIVE.REGIST.701 Analog 51
2 ARCHIVE.REGIST.702 Analog 52
3 ARCHIVE.REGIST.703 Analog 53
: :

Time 00:00 am Date Dec. 22, 1993 Data values at


HHMM MMDDYY that time and date
COLUMN1 COLUMN2 COLUMN3
ROW1 0000122293 14.36 127.1
ROW2 0100122293 13.17 194.2 Analog R-W
Data Array #51

ROW24 2300122293 18.12 145.6

ACCOL II Custom Protocols Manual


Page Enron- 24
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

Variations for 3530-series TeleFlow / TeleRTU:


For 3530-series units (TeleFlow / TeleRTU) archive data can be stored
either in analog data arrays or in archive files.* A read holding
registers command (03) is used, and a maximum of 60 fields can exist
in an archive record or row, not counting the date and time fields. All
requests for archive data must include two values: register number and
record number. The register number can be any defined register (701-
1000) in the archive register list.

If analog arrays are used for the archive registers, refer to the section
above, because archive retrieval in the 3530-series units using arrays
for archive registers is identical to archive retrieval in other Network
3000-series units.

If, however, archive files are used for the archive registers, archive
retrieval is somewhat different. An optional logical signal may be
included as the first signal in the archive register list. This signal then
defines the access method used to retrieve data from the archive file.
The access methods are defined as follows; if the first signal in the
archive register list is a logical signal, and it is:

ON = use the record number received in the read message as a


sequence number. The sequence number is then used to
search the archive file for a record with the matching
sequence number.

OFF = use the record number, n, as an index to directly access


the nth physical record (similar to the method used for
data arrays).

If the archive register list does not have a logical signal as its first
signal, access will be the same as if a logical signal had been present,
and was set to OFF.

* For information on configuring the ARC_STORE Module and archive files, see the
'ARC_STORE' section of the ACCOL II Reference Manual, # D4044, as well as the ACCOL
Workbench User Manual, # D4051.

ACCOL II Custom Protocols Manual


Page Enron- 25
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

The Julian time and date from the archive is reported in the response
message as the first two floating point numbers: HHMM.SS followed
by MMDDYY.00. All other data fields in the response are 4 byte IEEE
floating point numbers. Values of analog signals will be reported, as is,
the value of logical signals will be reported as either 1.0 (for ON) or 0.0
(for OFF). A maximum of 60 data fields (not counting the date and
time fields) can be reported for any record.

Response Message Data Contents:

HHMM.SS MMDDYY.00 fp_val1 fp_val2 ... fp_valn


CUSTOM MODULE
Terminal: Constant or signal name:
MODE 8
LIST 1
STATUS CUSTOM.STAT.

Signal List #1: ‘The Custom List’


Line# Signal Name Signal Type Initial Value
1 ENRON.CUSTOM.PORT Analog 1
2 COILS.LIST.NUM Analog 2
3 REGISTER.LIST.NUM Analog 3
4 EXCPCOIL.LIST.NUM Analog 4 Positive values in Archive
5 COMM.DONE. Logical OFF Register list refer to analog
6 ARCIVREG.LIST.NUM Analog 62 arrays; negative values in
: : : Archive Register list refer
19 TOTAL.AUDIT.RECS Analog to Archive Files

Archive Register 701 will be


stored in Archive File #5
Signal List #62: ‘The Archive Register List’
Archive Register 702 will be
Line# Signal Name Signal Type Initial Value stored in Analog Array #11
1 ARCHIVE.ACCESS.MODE Logical ON
2 ARCHIVE.REGIST.701 Analog -5
3 ARCHIVE.REGIST.702 Analog 11 Archive Register 703 will be
4 ARCHIVE.REGIST.703 Analog -15 stored in Archive File #15
: : :
36 ARCHIVE.REGIST.735 Analog -47 Archive Register 735 will be
: : : stored in Archive File #47
301 ARCHIVE.REGIST.1000 Analog 82 Archive Register 1000 will be
stored in Analog Array #82
‘ON’ indicates that
access will be using
Sequence Numbers

ACCOL II Custom Protocols Manual


Page Enron- 26
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

“ Retrieving Audit Trail History


The history of alarms and value change events stored by the Audit Trail
Module can be requested and cleared. (For instructions on configuring the
Audit Trail Module, see the Audit/EAudit Module in the ACCOL II
Reference Manual, document# D4044.) Only signals in either the Coils
List, Registers List, Short Integer Registers list or Long Integer Registers
list will be reported. It is recommended that the Audit Trail Module be
configured to include only those signals reported by this module. Users
with custom firmware older than STP.08 should NOT use any other
methods (for example, the Logger Module) to access the Audit Trail
history if the history is to be obtained by the Enron interface, because the
varying methods are mutually exclusive. Users with STP.08 or newer
custom firmware, however, can use the Enhanced Audit Trail Access,
which avoids conflicts with other retrieval methods.

Read Audit Trail Records

The Audit Trail history is requested with a Read Holding Registers


message for register address 32. Up to 12 events will be returned in
response to the request. The data field of the response message will
contain a 20 byte record for each event being reported. The format of the
record is as follows.

Bytes Content
1-2 Flag bitsNote 1
3-4 Register address (from the Coils list or one of
the Registers lists)
5-8 Time stamp
9-12 Date stamp
13-16 Value 1
17-20 Value 2

Note 1 Flag bits: There are 16 flag bits associated with each alarm/event record. For alarms
these flags come only from the audit records. However the flags for an event record can come
either from the Event Record Flags array or from the Audit record. If the audit signal is defined
in the Event Record Flags list then flags from the array are used, otherwise the flags from the
audit records are used.

ACCOL II Custom Protocols Manual


Page Enron- 27
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

The definition of the flag bits is dependent on the type of event. The bit
definition presented on the next page is from the Specifications and
Requirements for an Electronic Flow Measurement Remote Terminal Unit
for Enron Corporation, revised August 20, 1992. There is, however, no
restriction on this bit mapping, as the protocol simply transfers defined
bit maps from the Event Record Flags Array to the response if the Audit
Trail History entry is classified as a 'value change' (i.e. it is not an alarm
event).

Flag definitions for the Value Change Events (Bit 9=1):

Byte Bit Flag Description *


2 0 0 Fixed value
2 1 1 Zero scale
2 2 2 Full scale
2 3 3 Operator entry work value
2 4 4 Boolean fixed value
2 5 5 Fixed/variable flag
2 6 6 Table entry change
2 7 7 System command change
1 0 8 (Unused)
1 1 9 Operator change event
1 2 10 Low Low limit
1 3 11 Low Limit
1 4 12 High Limit
1 5 13 High High Limit
1 6 14 Rate of Change Limit
1 7 15 (Unused)

* Description is for when the bit is ON.

ACCOL II Custom Protocols Manual


Page Enron- 28
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

Flag definitions for the Alarm Events (Bit 9=0):

Byte Bit Flag Description*


2 0-7 0-7 not used (set to 0)
1 0 8 not used (set to 0)
1 1 9 set to 0 to indicate an alarm event
1 2 10 set to 1 if an analog low low alarm
1 3 11 set to 1 if an analog low alarm
1 4 12 set to 1 if an analog high alarm
1 5 13 set to 1 if an analog high high
alarm
1 6 14 not used (set to 0)
1 7 15 set to 1 if signal was logged
because it entered the alarm state.
Set to 0 if signal was logged
because the signal has returned to
normal state. (in this case, all bits
0-15 are 0.)

Note: Return to normal is indicated with all bits zero.

Example - Value Change Event Reporting

When an event record being reported is a value change event, it is


processed as follows: First, all of the coil/register lists are searched to
establish that the signal is a coil or register value. Then the Event Record
Flags List is searched for this signal. If it is present in this list then the
position of this signal in the list is used as an index into the Event Record
Flags Array. The appropriate row of flag bits (16 columns) is reported. If
a signal is not present in this list, default flag values of Operator entry
work value (flag 3), and Operator change event (flag 9) are reported.

The time and date stamps are floating point values that represent the
time and date when the event occurred. The time stamp is equal to a 6
digit number representing hours, minutes, and seconds in the form
HHMMSS. The date stamp is equal to a 6 digit number representing

* Description is for when the bit is ON.

ACCOL II Custom Protocols Manual


Page Enron- 29
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

month, day, and year in the form of MMDDYY. See Signal 11 for format
of year.

Value 1 and Value 2 are floating point values. Their definitions are
dependent on the type of event and are defined below.

Value Change Events:

Value 1 = previous value


Value 2 = new value

Alarm Events:

Value 1 = current value


Value 2 = alarm limit exceeded

Enhanced Audit Trail Access (Retrieving Audit Trail Records


Without Deleting Them)

Users with newer custom firmware (STP.08 and newer) can retrieve
audit trail records without deleting them by using the Enhanced Audit
Trail Access provided by Special Function Type 5 in the Special Function
Array (see Signal 15 in the 'Defining the Custom List' sub-section).
Configuring this function, however, will disable the standard Enron
interface collection method. The Local Audit Trail Pointer (Signal 12 in
the Custom List) can be used, along with EAudit Module terminals, to
track audit trail buffer activity.

Clear Audit Trail Records

The Audit Trail history is cleared with a Force Single Coil message for
register address 32. Up to 12 previously reported events will be cleared
from the history. Until a Force Single Coil (clear audit trail) command is
received, the same audit records are reported in response to all Read
Holding Registers commands (read audit trail records) (provided that the
audit mode is stopped when full or the audit mode is wrap around and
the oldest record has not been overwritten.)

ACCOL II Custom Protocols Manual


Page Enron- 30
Enron Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Enron Modbus Slave

‘The Coils List’


SIGNAL LIST #2
‘The Custom List’ SIGNAL LIST #1
List
List Line# Signal Name
Line# Signal Name Signal Type Initial Value
1 ENRON.CUSTOM.PORT Analog 1 1 R51.FLOW.
2 COILS.LIST.NUM Analog 2 2 R52.FLOW.
3 REGISTER.LIST.NUM Analog 3
4 EXCPCOIL.LIST.NUM Analog 4 3 R53.FLOW.
5 COMM.DONE. Logical OFF
6 ARCIVREG.LIST.NUM Analog 5 4 R54.FLOW.
7 SHORTREG.LIST.NUM Analog 6 5 R55.FLOW.
8 LONGREG.LIST.NUM Analog 7
9 EVTRCFLG.LIST.NUM Analog 8 : :
10 EVTRCFLG.ARRAY.NUM Analog 1 20 Z13.LEVEL.
NOTE: Remaining entries
in the Custom List not shown (Lines 6-19 not shown)
for this example.
Value of R54.FLOW. Changes

DATA ARRAY #1 ‘The Event Record Flags Array’


‘The Event Record Flags List’
SIGNAL LIST #8 Columns
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Row
List Signal Name 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
Line#
Rows 2-7
1 T21.TEMP. Not shown
: : 8 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0
8 R54.FLOW. Rows 9-11
: : Not shown
: :
12 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
12 Z13.LEVEL.
(Lines 2-7 and 9-11 not shown) 15 8 (MSB*) 0
7
BYTE 1 BYTE 2
FLAG BITS
* Most significant byte

ACCOL II Custom Protocols Manual


Page Enron- 31
BLANK PAGE
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

The Gould Modbus Interface allows a Bristol 33xx controller to function


as either a Gould Modbus master or a Gould Modbus slave (or both) in a
Modbus communications scheme. Modbus transactions may be conducted
using either standard asynchronous serial communication ports (Modbus)
or using a TCP/IP network (Open Modbus). This section assumes
familiarity with the Gould Modbus and/or Open Modbus (TCP/IP)
communications protocols, as well as Bristol Formats. The message
format for Open Modbus is described in the Open Modbus /TCP
Specification (release 1 by A. Swales 3/29/99) from Modicon.

Modbus Master mode is used when a 33xx has to read Coil Status, 16-bit
Register, or 32-bit Register information from a PLC or other external
device using the Modbus communications protocol, and translate the
received data into ACCOL signals.

Modbus Slave mode is used when the 33xx has to respond to messages
from a Modbus Master and translate ACCOL signals into Coil and
Register data in a Modbus response message.

If an asychronous serial communications port is selected (Modbus):


A 33xx can be set up to act as a Modbus Master to a number of Slave
devices on one or more serial communications ports, while it also acts as
a Slave to a Modbus Master on another port.

When the 33xx is set up to act as a Modbus Master, the programmer will
usually assign one Custom Module per slave, with each module specifying
the same communications port but a different Slave address. One Custom
Module can be used but the user must then change the Slave address
before executing the module. When there are many slaves attached to a
asynchronous serial port, more than one Modbus master port can be
assigned to balance the activities.

When the 33xx is set up to act as a Modbus slave, typically a single port
is assigned to this function and the associated Custom Module must
specify that port. More than one port can be used if necessary, each
having its own Custom Module.

For both master and slave functions, ASCII and RTU transmission modes
are supported.

ACCOL II Custom Protocols Manual


Page Gould- 1
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

When the 33xx uses a TCP/IP channel (Open Modbus):


All Open Modbus messages, both Master and Slave, may use any IP port.
The matching of Custom modules in Master and Slave is achieved by
coordinating the IP Addresses and the Unit Numbers between the Master
and Slave Modbus configurations. Configuration of Custom IP tasks is
done using the Custom IP setup in the ACCOL Workbench.

When the 33xx is set up to act as a Open Modbus Master, the


programmer will usually assign one Custom Module per slave, with each
module specifying a different IP Address/Unit number combination. One
Custom Module can be used but the user must then change the IP
Address/Unit number before executing the module.

When the 33xx is set up to act as a Modbus slave, the Custom Module
must specify a Unit Number. More than one Unit Number can be used
under the same IP address, if necessary, each having its own Custom
Module.

ACCOL II Custom Protocols Manual


Page Gould- 2
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

“ Custom Module Terminals


The Modbus PLC interface is enabled through the Custom module.
Custom module terminal entries are described below:

MODE Default: None, entry required


Format: Analog signal or constant
Input/Output: Input

must be set to 4.0 for Modbus Master mode, 7.0 for Modbus Slave mode,
53.0 for Open Modbus Master mode, 51.0 for Open Modbus Slave mode*.

LIST Default: None, entry required


Format: Analog signal or constant
Input/Output: Input

is the number of the signal list containing the signals needed to


accomplish Modbus communications. This list is called the Modbus
Master List when the Bristol device is in Master mode and the Modbus
Slave List when the Bristol device is in Slave mode.

NOTE

The parameters in the Modbus Master List or Modbus Slave List are
discussed later in this section. Certain signals are optional, however, if
you intend to use any signals further on in the list, you must create
‘dummy’ signals for those unused positions in the list. For this reason, it
is recommended that you fully define the list.

STATUS Default: None


Format: Analog signal
Input/Output: Output

contains a status code value to indicate module status, communication


line errors and other error conditions.

* Available only in PLS04/PLX04/PES04/PLX04 or newer and PCP04 or newer.

ACCOL II Custom Protocols Manual


Page Gould- 3
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

The next several pages describe possible status code values:

Master mode (mode 4 and mode 53) status codes are:


Master Mode - General Status Codes

0 = Communication completed successfully.


1 = Communication requested, waiting to send.
2 = Message sent, waiting for reply.
3 = An input signal was Control Inhibited.
4 = Attempt to store into a constant.
5 = An input string signal value was truncated.
6 = Attempt to store into Read Only Data Array.
-2 = Invalid Modbus List number specified.
-3 = Invalid Port Number specified.
-4 = Invalid Slave Address / Unit Number specified.
-5 = Invalid Function Type specified.
-6 = Invalid Coil/Register Address specified.
-7 = Invalid Read Number specified.
-8 = Invalid Response Timeout specified.
-9 = Invalid I/O List number specified.
-10 = Invalid Format number specified.
-11 = Cannot broadcast a Read command.
-12 = Force/Preset function has zero data length.
-13 = Attempt to output too many Coils/Registers.
-14 = Preset Register data length is not even.
-15 = Response message length or content invalid.

Master Mode - Exception Codes received from the Slave

Modbus Slaves report errors via an Exception Code in an Error Response


message. These Exception codes are moved into the signal assigned to the
Modbus Master STATUS terminal.

-16 = Illegal Function.


-17 = Illegal Data Address.
-18 = Illegal Data Value.
-19 = Associated Device Failure.
-20 = Acknowledge.
-21 = Busy, Rejected Message.

ACCOL II Custom Protocols Manual


Page Gould- 4
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

-22 = Negative Acknowledge.


-23 = Memory Parity Error.
-24 = Unknown exception code.

Master Mode - Communication Failures detected by the Master

-25 = Receive character overrun detected.


-26 = Receive character parity error detected.
-27 = Receive character framing error detected.
-28 = Receive message security (LRC/CRC) failed.
-29 = Timed out waiting for slave to respond.
-30 = Invalid message framing characters received.
-31 = Timed out waiting for Clear To Send.
-32 = Unexpected I/O failure.

Master Mode - Message Formatting Errors detected by module

-33 = Invalid Format field descriptor.


-34 = Attempt to use signal beyond end of I/O list.
-35 = Too many levels of parentheses.
-36 = Unmatched right parentheses.
-37 = Invalid Sub Format number specified.
-38 = Too many levels of Sub Formats.
-39 = Invalid Data Array number specified.
-40 = Attempt to use undefined Data Array.
-41 = Attempt to use cell beyond end of Data Array.
-42 = Signal or Data Array cell must be analog.
-43 = Must use a string signal.
-44 = Signal or cell must be analog or logical.
-45 = Invalid BCD input digit.
-46 = Invalid analog value for BCD output.
-47 = Unexpected Input signal store failure.
-48 = Attempt to put/get data beyond end of message.
-49 = Invalid floating point value

ACCOL II Custom Protocols Manual


Page Gould- 5
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

Master Mode - Open Modbus specific error codes

-64 = Not enough IP memory available to support module.


-65 = The IP address signal is of the wrong type, is not a string, or is
badly formed.
-66 = The TCP/IP connection was closed by the slave unit.
-67 = The specified IP Address / Unit Number cannot be reached.

Slave mode (mode 7 and mode 51) status codes are:

Slave Mode - General Status Codes:

1 = Read Coil Status received, response sent.


2 = Read Holding Registers received, response sent.
3 = Read Exception Status received, response sent.
4 = Force Single Coil received, response sent.
5 = Preset Single Register received, response sent.
6 = Force Multiple Coils received, response sent.
7 = Preset Multiple Registers received, response sent.
8 = A Coil to be forced was Control Inhibited.
9 = A Register to be preset was Control Inhibited.
10 = Attempt to force or preset a string signal.
16 = Read Input Status received, response sent.
17 = Read Input Registers received, response sent.
19 = Port mode changed to Enron Modbus (Mode 8).
20 = Port mode changed to Gould Modbus (Mode 7).
-1 = EPROMs do not support the Modbus Slave mode.
-2 = A Broadcast was received with an error and ignored.

Slave Mode - Illegal Function in received message (Modbus Exception


response code = 01 and Modbus Master STATUS = -16)

-3 = An invalid or unsupported function code was received.


-4 = Invalid Exception Status List number specified.

Slave Mode - Illegal Data Address in message. (Modbus Exception


response code = 02 and Modbus Master STATUS = -17)

-5 = Invalid Coils List number specified.

ACCOL II Custom Protocols Manual


Page Gould- 6
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

-6 = Invalid Registers List number specified.


-7 = An invalid coil or register address or quantity was received.
-13=Invalid Inputs List number specified.
-14=Invalid Input Registers List number specified.

Slave Mode - Illegal Data Value in message (Modbus Exception


response code = 03 and Modbus Master STATUS = -18)

-8 = An invalid data field length was received.

“ Setting Up the Custom Port (Modbus ONLY)


The asynchronous serial communications port used for Modbus messages
must be assigned as a Custom Port, either on the Communications
Configuration menu (if you are using AIC) or in the *COMMUNICATIONS
section of the ACCOL source file (if you are using the ABC or ACCOL
Workbench). The port's mode of operation is selected as follows:

MODE - Set this to 4 if the Bristol device will be a Modbus Master,


set to 7 if it will be a Modbus Slave.

BAUD - Set the port baud rate.

DATA BITS - The number of bits per character is fixed at 8 for RTU
transmission mode. For ASCII transmission mode, the number of
bits may be 7 (which is the default) or 8.*

STOP BITS - Set the number of character stop bits to use.

PARITY - Set the parity.

P1 - Set zero for ASCII transmission mode. Valid values are as


follows:

0 ASCII mode

* In Protected Mode units, and in units with AK and RMS01 (or earlier) firmware, this value is
fixed at 7 for ASCII mode, and 8 for RTU mode.

ACCOL II Custom Protocols Manual


Page Gould- 7
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

1 RTU mode
2 Modbus ASCII / BSAP Slave (3530 units and MODE =
7 ONLY)
3 Modbus RTU / BSAP Slave (3530 units and MODE=7
ONLY)
4 Modbus ASCII /BSAP Pseudo Slave (3530 units and
MODE=7 ONLY)
5 Modbus RTU / BSAP Pseudo Slave (3530 units and
MODE=7 ONLY)

Note: the system is not able to accurately measure the elapsed time
between received characters at baud rates above 1200 bits/second
in RTU mode. Time measurements have a resolution of 4 msec. The
elapsed time counter uses three and one-half character times
rounded up to the next even multiple of 4 msec.

P2 - (Mode 7 Modbus Slave): Set the Modbus slave address for the port.
Slave addresses can range from 1 to 247. Modbus broadcast
messages are always accepted.

(Mode 4 Modbus Master): Set the Modbus Master Communications


Attempt Count. This value specifies the number of attempts which
will be made to communicate, i.e. the initial attempt, plus the
number of retries following a failure. The default is 3 attempts total
(the initial attempt, plus two retries.) Valid values for P2 in Mode 4
are:*

0 - will cause default of 3 to be used


1 - no retries
2 - 1 retry
3 - 2 retries (the default)

See 'Portstatus' in the ACCOL II Reference Manual (D4044) for


information on changing the Modbus slave address (P2) parameters and
baud rate on-line. In addition, if you have STP.07 (or newer) custom
firmware, the DATA BITS, STOP BITS, and PARITY, may also be
*Modbus Master Communication Attempt Count requires AL or RMS02 (or newer) firmware. Not
supported in Protected Mode.

ACCOL II Custom Protocols Manual


Page Gould- 8
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

altered on-line via the Portstatus Module for both Gould Modbus Master
and Gould Modbus Slave. If you have STP.08 (or newer) custom
firmware, the value of P1 may also be altered on-line.

“ Setting Up Open Modbus (Open Modbus ONLY)


The communications channel used for Open Modbus messages must be
assigned in the Custom IP configuration sub-section of the ACCOL
Workbench *COMMUNICATIONS section. The channel's mode of
operation is selected as follows:

MODE - Set to 53 if the Bristol device will be an Open Modbus Master,


set to 51 if it will be an Open Modbus Slave.

P1 - If an Open Modbus Master, set this parameter to the number of


seconds for the TCP/IP connection to remain alive if no activity
occurs for this IP address/Unit Number. The default for this
parameter is 240 (2 minutes).1

If an Open Modbus Slave, this parameter can be set to an alternate


TCP port. The default for this parameter is 502.

P2 - Not used

Communications channels are implemented as TCP/IP connections


and this does not, in theory, limit the number of simultaneous
accesses to a specific Open Modbus slave or from a specific master. In
practice however, only 16 TCP/IP connections to a single RTU are
allowed at one time. This maximum also includes any protocols other
than Open Modbus such as FTP, HTTP, Telnet, etc. For the Open
Modbus protocol, each combination of IP Address and Unit Number
is treated as a separate channel (connection). This is done in order to
prevent a channel that has an address error from forcing a
disconnect on a channel with good addressing that is in active use.

1 Choose this value carefully. Too small a value may result in a temporary unavailability of a
connection / channel. Too large a number may result in some Modbus Masters being unable
to obtain a connection / channel if all 16 connections/ channels are in use.

ACCOL II Custom Protocols Manual


Page Gould- 9
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

When a communications error is detected on a channel, the TCP/IP


connection is closed. Communications errors include disconnects
from the other end of the TCP/IP connection, and inability to initiate
a connection. Errors in the Modbus message protocol will not cause a
TCP/IP disconnect. When a new access is made, an attempt to create
a TCP/IP connection will be made.

Note: All TCP/IP connections will still live, and count in the above
connection tally, for 4 more minutes after they have been closed.
Caution should be taken to not open and close TCP/IP connections
so frequently that the above limit is exceeded. Needless connection
failures could occur.

“ Modbus Master Signal List


In Master mode, the signal list assigned to the LIST terminal of the
Custom Module must contain signals as follows.

Signal 1
Asynchronous Serial communications: (Port Number) - An analog
signal whose value identifies the port to be used for communication
with Modbus slaves. The port must be a Custom port configured for
mode 4 (Modbus Master).

Value Port Value Port Value Port


1.0 A 5.0 BIP1 * 9.0 I*
2.0 B 6.0 BIP2 * 10.0 J*
3.0 C 7.0 G*
4.0 D 8.0 H*

Open Modbus TCP/IP communications: (Slave IP address) - A string


signal specifying the Open Modbus slave RTU's IP address, e.g.

120.0.0.13

* These ports are only available in Protected Mode Units (PLS00/PLX00) or newer.

ACCOL II Custom Protocols Manual


Page Gould- 10
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

Optionally the slave's TCP/IP port number may be specified by


following the IP address with ‘/port=xxx’ where xxx is the port
number, e.g.

120.0.0.13 /port=503

Signal 2
Asynchronous Serial communications: (Slave Address) - An analog
signal whose value specifies the address of the Modbus slave. Slave
addresses may range from 1.0 to 247.0. A slave address of 0 is used
to generate a broadcast message. Read functions (Function Type 1.0
thru 5.0 are not valid for a broadcast message.)

Open Modbus TCP/IP communications: (Unit Number) - An analog


signal whose value specifies the unit number of the slave RTU to
match the transactions against. This unit number is included in the
Modbus / TCP message prefix.

Signal 3 (Function Type) - An analog signal whose value specifies the


Modbus Function Code. In some cases the Function code requires
an offset of 1000 to make the transmitted address correct -see the
Signal 4 description.

Signal Equivalent Modbus


Value Function Function Code
1.0 Read Coil Status 1
2.0 Read Input Status 2
3.0 Read Holding Registers 3
4.0 Read Input Registers 4
5.0 Read Exception Status 7
6.0 Force Single Coil 5
7.0 Preset Single Register - see note 1 6
8.0 Force Multiple Coils 15
9.0 Preset Multiple Registers - see note 2 16
Note 1 - use this Function code for 16 bit registers only.
Note 2 - use this Function code for 16 bit and 32 bit registers.

ACCOL II Custom Protocols Manual


Page Gould- 11
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

Signal 4 (Coil/Register Address) - An analog signal whose value specifies


the starting address for coil, input, or register operations. The
address transmitted to the Slave will be one less than the value
specified here unless the Function code has an offset of 1000. For
example, the address 7031 will be sent as 7030 for Function code 3,
and 7031 for Function code 1003.

Signal 5 (Count) - An analog signal whose value specifies the number of


coils, inputs, or registers to be read. The value can range from 1.0
to 2000.0 for coils and inputs, 1.0 to 125.0 for 16-bit registers and
1.0 to 62.0 for 32-bit registers.

Signal 6 (Input/Output List Number) - An analog signal containing the


number of the signal list used to control input or output of data.
The signals in this list can be I/O signals capable of receiving and
sending data, or the signals in the list can specify the number of a
data array. Format controls are necessary when referencing data
arrays.

Signal 7 (Format Number) - An analog signal containing the number of a


Format statement to be used to convert Modbus response message
data into ACCOL signal values in the Input list (or data array
values if a data array is used instead of a list.) The Format is also
used to convert Output list values (or data array values) into
Modbus command message data. See the section on PLC Formats.

Signal 8 (Response Timeout) - An analog signal whose value specifies the


amount of time in seconds to wait for a response message from the
slave. The value can range from 1.0 to 65.534 seconds. System time
resolution is 4 msec. When this signal is set to 0 the response is
expected immediately, i.e. depending on the next clock tick which
can be anywhere from 0 to 4 msec. If a response is not received
immediately after the message is transmitted then a -29 error is
reported. The response time out is distinct from the
RTSCTS.DELAY (defined later) and begins after the request
message has been transmitted.

Signal 9 (Done) - An analog or logical signal used to indicate completion


of a communication request, i.e., a message was sent and a reply

ACCOL II Custom Protocols Manual


Page Gould- 12
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

received or a timeout occurred. Logical signals are set Off when the
communication request is initiated and On when the
communication request is complete. Analog signals are
incremented by 1 when the request is complete. This signal is not
required, except when Signal 10 or 11 is used.

Signal 10 (Register Data Size) - A logical or analog signal which specifies


the Register data size in the Modbus message. Logical ON or
Analog 1.0 specifies 32 bit data, usually floating-point. Logical OFF
or Analog 0.0 specifies 16 bit data. This signal must be set ON (1.0)
when the Master is writing to 32-bit floating-point registers in a
slave. This signal is not used by a Master for conversion of message
input data because Formats control input data conversion.

Signal 11 (Received Message Length) - An optional analog signal which


will be set to the value of the Data Length field of a received
Modbus message.

Signal 12
Asynchronous Serial communications: (RTS/CTS Delay) - This is an
optional analog signal which specifies a time delay. The time delay
can either be used to monitor for CTS being raised, or to delay
transmitting a message; the choice of how it is used is specified
using Signal 13. The delay value can range from 0.001 to 65.534
seconds. If Signal 12 is not defined as an analog signal, or if its
value is out of the specified range, then a default delay of 2.5
seconds will be used. This signal is NOT available for GFC 3308
users.

Open Modbus TCP/IP communications: This signal is neither required


nor used by the Open Modbus protocol.

Signal 13
Asynchronous Serial communications: (RTS/CTS Delay Mode) - This is
an optional signal which specifies how the RTS /CTS delay
(specified via Signal 12) is used. There are two choices for the mode.

Monitor For CTS Mode: After RTS is raised, the time delay will be

ACCOL II Custom Protocols Manual


Page Gould- 13
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

used as the maximum time to wait within which CTS must be


received. If CTS is received at any time before this delay expires,
the message transmission begins. If CTS is NOT received prior to
the expiration of the delay, no response will be sent, and a -31 error
will be reported. If signal 18 is an analog signal, this mode is
activated by setting its value to a positive number. If Signal 13 is a
logical signal, this mode is activated by turning the signal ON. If
Signal 13 is a string signal, this mode will automatically be chosen.
If Signal 12 is wired, but Signal 13 is omitted, this mode will
automatically be chosen.

Message Transmit Delay Mode: After RTS is raised, a delay timer


will be started. (The length of the delay is determined by the value
of Signal 12). No message will be sent until after this delay has
expired. The value of CTS does not affect the operation of this
mode. NOTE: In order for this mode to work, RTS-CTS must be
jumpered or the CTS must be received before the specified delay
expires. If Signal 13 is an analog signal, this mode is activated by
setting it to 0. If Signal 13 is a logical signal, this mode is activated
by turning it OFF.

This signal is NOT available for GFC 3308 users.

Open Modbus TCP/IP communications: This signal is neither


required nor used by the Open Modbus protocol.

“ Modbus Slave Signal List


The following Modbus function codes are supported by the slave interface.

Code Description Address List


1 Read Coil Status 0xxxx Coils
2 Read Inputs 1xxxx Inputs
3 Read Holding Registers 4xxxx Holding Registers
4 Read Input Registers 3xxxx Input Registers
5 Force Single Coil 0xxxx Coils
6 Preset Single Register 4xxxx Holding Registers

ACCOL II Custom Protocols Manual


Page Gould- 14
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

7 Read Exception Status xxxxxx


15 Force Multiple Coils 0xxxx Coils
16 Preset Multiple Registers 4xxxx Holding Registers

The signal list assigned to the LIST terminal of the Custom Module must
contain signals as follows.

Signal 1
Asynchronous Serial communications: (Port Number) - An analog
signal containing the number of the communication port to be used.
The port must be a Custom Port configured for Modbus Slave mode
(MODE = 7).

Value Port Value Port Value Port


1.0 A 5.0 BIP1 * 9.0 I*
2.0 B 6.0 BIP2 * 10.0 J*
3.0 C 7.0 G*
4.0 D 8.0 H*

An invalid signal value (such as 0.0) can be used to disable the


module. If a Modbus slave port is specified by two or more Modbus
Slave Custom modules, only the first module in the load to use that
port will receive messages from the port. If the first module is
disabled (e.g. by setting the port number to 0), then the second
module will be used, and so on.

Open Modbus TCP/IP communications: (Unit Number) - An analog


signal whose value specifies the unit number to use for this slave
list. Multiple slave lists may be used in a single RTU.

Signal 2 (Coils List) - An analog signal containing the number of the


signal list holding the ACCOL signals which are assigned as Coils.
All Coil related Function codes received use the data in this list.
The data is typically logical signals corresponding to Coils. An
Analog signal with a value of 0.0 is equal to OFF; non-zero is equal

* These ports are only available in Protected Mode Units (PLS00/PLX00) or newer.

ACCOL II Custom Protocols Manual


Page Gould- 15
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

to ON. A maximum of 2000 coils can be read with one Function


code. The coils in this list correspond to Modbus addresses
beginning with 0xxxx.

Signal 3 (Registers List) - An Analog signal containing the number of the


signal list holding the ACCOL signals which are assigned as
Holding Registers. All Holding Register operations use the data in
this list. When Holding Registers are read or written they are
treated as 16-bit Integers or 32-bit floating point values depending
on the value of Signal 5 (Data Mode). When Registers are read as
16-bit quantities the ACCOL analog value is rounded off
(truncated) and converted to an unsigned integer. Negative values
are returned as zero and values above 65535 are returned as 65535.
Any logical signal in the list is converted to 1 when ON and zero
when OFF. A maximum of 125 16-bit or 62 32-bit floating point
registers may be read in one request. The registers in this list use
addresses beginning with 4xxxx.

Signal 4 (Exception Status List Number) - An analog signal containing


the number of a signal list holding eight ACCOL Logical signals
which are considered Exception Status Coils. These signals are set
by the ACCOL load as required and they are reported as status
when Function code 07 is received. If the list contains less than 8
signals the response will contain OFF status in place of the missing
data.

NOTE: Signals 5 through 10 are optional, however, if any of these signals


are used, signals must be defined for preceding positions in the list. For
example, if only Signal 8 is to be used, the Modbus Slave List must still
have signals defined for optional signals 5 through 7.

Signal 5 (Register Data Mode) - An analog or logical signal used to specify


the Register Data size to be used (mainly in Read Holding Register
response messages). A logical ON signal, or an analog signal with a
value of 1 indicates use of 32-bit floating point register data, with
each floating point value taking up a single register address. In this
mode, the commands Preset Single Register and Preset Multiple
Register do not use this selection, but instead, derive the data type
from the incoming message length. An analog signal with the value

ACCOL II Custom Protocols Manual


Page Gould- 16
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

2 indicates that 32-bit floating point data is to be used, but with


each floating point value taking up two register addresses. In this
mode, the selection is also used on Preset Single Register and
Preset Multiple Register commands. Zero (or actually any non-zero
value other than 1 or 2) or OFF or a string signal indicates 16-bit
integer data. This signal is not required; if not present, 16-bit
integer data size will be used.

Signal 6 (Done) - An analog or logical signal that indicates completion of


a communication transaction. A logical signal will be set ON when
the response is sent, an analog signal will be incremented by 1
count. This signal is not required.

Signal 7
Asynchronous Serial communications: - (RTS/CTS Delay) - This is an
optional analog signal which specifies a time delay. The time delay
can either be used to monitor for CTS being raised, or to delay
transmitting a message; the choice of how it is used is specified
using Signal 8. The delay value can range from 0.001 to 65.534
seconds. If Signal 7 is not defined as an analog signal, or if its value
is out of the specified range, then a default delay of 2.5 seconds will
be used. This signal is NOT available for GFC 3308 users.

Open Modbus TCP/IP communications: This signal is neither


required nor used by the Open Modbus protocol, however, if any
higher numbered signals in the list are to be used, a dummy signal
must be included at this position in the list.

Signal 8
Asynchronous Serial communications: - (RTS/CTS Delay Mode) - This
is an optional signal which specifies how the RTS/CTS delay
(specified via Signal 7) will be used. There are two choices for the
mode.

Monitor For CTS Mode: After RTS is raised, the time delay will be
used as the maximum time to wait within which CTS must be
received. If CTS is received at any time before this delay expires,
the message transmission begins. If CTS is NOT received prior to
the expiration of the delay, no response will be sent. If signal 8 is

ACCOL II Custom Protocols Manual


Page Gould- 17
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

an analog signal, this mode is activated by setting its value to a


positive number. If Signal 8 is a logical signal, this mode is
activated by turning the signal ON. If Signal 8 is a string signal,
this mode will automatically be chosen. If Signal 7 is wired, but
Signal 8 is omitted, this mode will automatically be chosen.

Message Transmit Delay Mode: After RTS is raised, a delay timer


will be started. (The length of the delay is determined by the value
of Signal 7). No message will be sent until after this delay has
expired. The value of CTS does not affect the operation of this
mode. NOTE: In order for this mode to work, RTS-CTS must be
jumpered or the CTS must be received before the specified delay
expires. If Signal 8 is an analog signal, this mode is activated by
setting it to 0. If Signal 8 is a logical signal, this mode is activated
by turning it OFF.

This signal is NOT available for GFC 3308 users.

Open Modbus TCP/IP communications: This signal is neither required


nor used by the Open Modbus protocol, however, if any higher
numbered signals in the list are to be used, a dummy signal must
be included at this position in the list.

Signal 9 - Inputs List Number - This is an optional signal which specifies


the number of a signal list which will be used to hold read-only
logical signals corresponding to Modbus addresses beginning with
1xxxx. This list is necessary when using Modbus function code 02.

Signal9 is only available for 386EX Protected Mode Users with PLS /PLX /PES /PEX
/PCP /PCE 04.41 or newer firmware, and for STP11 and the combination protocol sets
released with STP11.

Signal 10 - Input Registers List Number - This is an optional signal


which specifies the number of a signal list which will be used to
hold read-only analog signals corresponding to Modbus addresses
beginning with 3xxxx. This list is necessary when using Modbus
function code 04.

Signal 10 is only available for 386EX Protected Mode Users with PLS /PLX /PES /PEX
/PCP /PCE 04.41 or newer firmware, and for STP11 and the combination protocol sets

ACCOL II Custom Protocols Manual


Page Gould- 18
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

released with STP11.

Signal 11 - MONITOR.LIST.NUM (Data Line Monitor List Number) -


This analog signal specifies the number of a signal list, which
contains signals for data line monitoring that are updated by the
Custom Module whenever a request is processed. The value of the
Monitor List Number must NOT be changed on-line. The signal list
(if it exists) contains six signals (shown in the table on the next
page). If any of these signals are unwired or if they are of the wrong
type, they will be ignored. Control inhibiting any of the first five
signals will disable the corresponding monitor feature.

Signal 11 is only available for 386EX Protected Mode Users with


PLS/PLX/PES/PEX/PCP/PCE 04.41 or newer firmware.

List Signal Name Signal Type Description


Number
1 REQUEST.FNCODE. Analog Function code from
request message.
2 REQUEST.START. Analog Start coil / register
number (if relevant
function is active;
otherwise set to 0.0).
3 REQUEST.NUM. Analog Number of coils /
registers requested
(if relevant function
active; otherwise set
to 0.0).
4 RECEIVE.MSG.DATA String 64 character string
for Received message
in ASCII Hex.
5 TRANSMIT.MSG.DATA String 64 character string
for Transmit
message in ASCII
Hex.
6 FIRMWARE.ID String Minimum 18
character long string
for System Firmware
ID.

ACCOL II Custom Protocols Manual


Page Gould- 19
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

Signal 12 - BASEADDR.LIST.NUM (Base Address List Number) - This


analog signal specifies the number of a signal list, which contains
signals that provide starting coil/register numbers for the
corresponding banks of coils/registers.

Signal 12 is only available for 386EX Protected Mode Users with


PLS/PLX/PES/PEX/PCP/PCE 04.41 or newer firmware.

List Signal Name Signal Type Description


Number
1 COILS.BASE Analog Starting (base)
register number for
the coils in the Coils
List (signal 2 of the
Custom List).
2 INPUT.COILS.BASE Analog Starting (base)
register number for
the input coils in the
Inputs List (signal 9
of the Custom List).
3 HOLD.REGS.BASE Analog Starting (base)
register number for
the registers in the
Registers List (signal
3 of the Custom List)
4 INPUT.REGS.BASE Analog Starting (base)
register number for
the registers in the
Input Registers List
(signal 10 of the
Custom List)

“ PLC Formats - Modbus Master


PLC Format statements contain Descriptors which tell the CUSTOM
module how to generate or interpret the Data portion of a Modbus
message. Special Format descriptors are also used to control use of data

ACCOL II Custom Protocols Manual


Page Gould- 20
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

arrays for I/O data. The Format statement number is specified in Signal
7 of the Custom Module Modbus Master list. Format Descriptors have a
one-to-one correspondence to signals in the I/O list (or elements in the I/O
data array). This means that a list containing five ACCOL input signals
requires a Format containing five Descriptors. For example, if a Master
sends a message containing function code 3 (Read Holding Registers)
with a Count of 5 then the received response will contain 5 16-bit integers
which have to be converted into 5 ACCOL signal values in the list. The
first Descriptor in the Format applies to the first signal in the list, the
second Descriptor to the second signal, and so on. In this case the Format
would contain either VS16, VS16, VS16, VS16, VS16 (one Descriptor per
signal) or 5VS16 (one Descriptor with a repeat count of 5.

When a Format is used the first signal in the list (or first element in the
data array) is the ‘current’ signal and as each subsequent Descriptor is
processed the next signal in the list (or element in the array) becomes
‘current’. Format Descriptors are as follows.

() Parentheses are used to group descriptors in the Format for


repetition. Parentheses may be nested up to five levels.

r The 'r' (repeat count) descriptor is an integer which may


immediately precede the VL, VSn, VUn, BCDn, Tn, X, CST1:0, and
CST2:0 descriptors. It indicates that the descriptor following it will
be used 'r' times to process 'r' data values. If the repeat count
descriptor does not precede another descriptor, that descriptor is
only used once to process a single data value.

SFn The SF (Sub Format) descriptor allows one Format to use another
Format. The ‘n’ is the number of any valid existing Format. After
the SFn is executed the descriptor following SFn is processed.

DA The value of the current signal in the I/O list is considered the
number of an analog Data Array. After this descriptor is used the
next signal in the I/O list becomes the current signal.

DL The value of the current signal in the I/O list is considered the
number of a logical Data Array. After this descriptor is used the
next signal in the I/O list becomes the current signal.

ACCOL II Custom Protocols Manual


Page Gould- 21
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

DC Array mode is set active. A Data Array must have been previously
defined via the DA or DL field descriptors. Field descriptors now
apply to locations in the data array.

DE Array mode is ended. Field descriptors again apply to signals in the


I/O list.

BIT Bit alignment mode is set active, meaning that data in a message is
processed in units of bits. Lower order bits of a byte or word are
processed before higher order bits. Bit alignment mode is used to
access single bit logical values and sub-fields within a byte or word.
If Word alignment was previously active any remaining bits in the
current word are used before the next data byte is processed. Bit
alignment mode is the default for coil and status values.

BYT Byte alignment mode is set active, meaning that data in a message
is processed in units of 8-bit bytes. Each field begins with the low
order bit of the next byte. Values are treated as being right justified
within the byte (low bit on the right). If Word alignment mode was
previously active and the high-order byte of the word was not used,
the high byte is processed before the next data byte.

WRD Word alignment mode is set active, meaning that data in a


message is processed in units of 16-bit words. The LBF (Low Byte
First) and HBF (High Byte First) formats are used to specify the
byte order in the word. High byte first and word alignment modes
are the default for register values.

LBF Low Byte First mode is set active. Word alignment mode will treat
the first of two data bytes as the low order byte of the 16-bit word.

HBF High Byte First mode is set active. Word alignment mode will treat
the first of two data bytes as the high order byte of the word.

VL Used for input or output of logical values. It applies to single bits,


full bytes, or full words depending on the alignment mode. In Bit
mode each bit in the data corresponds to an ACCOL signal in the
I/O list (or element in the I/O data array); in Byte mode 8 bits

ACCOL II Custom Protocols Manual


Page Gould- 22
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

correspond to one signal (or data array element) and in Word mode
16 bits correspond to one signal (or data array element). Thus
depending on the mode the data bit, byte, or word is tested as a
single unit for zero; a zero is treated as OFF, non-zero as ON, and
the signal in the I/O list (or element in the I/O data array) is set to
the detected state. Analog signals in the I/O list (or analog values
in the data array) are set to 0.0 for OFF and 1.0 for ON. String
signals are invalid. For output the value in the I/O list or array is
tested and the transmitted value is set ON or OFF as required.
Analog values produce OFF for 0.0 and ON for non-zero. The next
I/O list signal or I/O data array element becomes current after each
use of this Descriptor.

VSn Used for input or output of signed (2s complement) binary values
with a field width of n bits. If Bit mode is active, the next n bits in
the message are converted as a signed n-bit value. If Byte mode is
active 8 bits are converted; 16 bits for Word mode. If n is larger
than 8 in Byte mode then n/8 bytes will be converted. If n is larger
than 16 in Word mode then n/16 words will be converted. The value
of n may range from 2 to 32. The default for unspecified n is 2 for
Bit mode, 8 for Byte mode, and 16 for Word mode. For input, the
current signal in the I/O list (or the current element in a data
array) is set to the converted value of the data field. Logical signals
or array elements are set to false if the value is zero and set to true
if the value is non zero. String signals are invalid. The next signal
in the I/O list becomes current after each use of this Descriptor (or
to the next array element in the data array becomes current if
array mode is active).

VUn Similar to VSn with some exceptions: the binary value is unsigned
and n may range from 1 to 32. Negative values are converted to
zero. The maximum value in a 32 bit field is limited to a 31 bit
number for both input and output.

BCDn This field descriptor is used for input or output of Binary Coded
Decimal (BCD) values with a field width of n BCD digits of 4-bits
per digit. If Bit mode is active, the next n*4 bits in the message are
used with the first digit treated as the highest order digit. The
value of n can range from 1 to 39. The default value for n if not

ACCOL II Custom Protocols Manual


Page Gould- 23
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

specified is 1 for Bit mode, 2 for Byte mode, and 4 for Word mode.

For input, the current signal in the I/O list or the current array
element in the data array is set to the value of the field. Logical
signals or array elements are set to OFF if the value is zero and set
to ON if the value is non zero. String signals are invalid.

For output, the value of the current signal or array element is put
in the message. Logical signal or array element values of OFF are
equivalent to 0 and values of ON are equivalent to 1. String signals
are invalid.

The next signal in the I/O list or the next array element in the data
array becomes current after each use of this descriptor.

Tn This field descriptor is used for input or output of ASCII character


strings with a length of n characters with each character 8 bits
long. In Bit mode the next n*8 message bits are converted. In Byte
mode the next n bytes are converted; in Word mode the next n/2
bytes are converted. The value of n can range from 1 to 64. If n is
not specified it will default to the actual length of a String. For
input, the current string signal in the I/O list is set to the string
value of the field. Space characters are substituted for non-
printable characters in the string. For output, the value of the
current string signal is put in the message. The next signal in the
I/O list becomes current after each use of this descriptor.

X This field descriptor is used to skip over (not convert) bits, bytes, or
words depending on the alignment in input mode; if no repeat count
(See r (repeat count), earlier in this section) is specified it defaults
to 1. For output, a value of 0 is put in the message for the current
bits, bytes, or words. This descriptor does not change the current
signal or data array element.

CST1:0 This descriptor treats the next 4 data bytes as an IEEE floating
point format value when converting. The next signal in the I/O
list (or element in the I/O data array) becomes current after this
descriptor is used. This descriptor is only available with
ACCOL version 5.1 (or later), and AA (or later) firmware.

ACCOL II Custom Protocols Manual


Page Gould- 24
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

CST2:0 This descriptor treats the next 4 data bytes as a Whipple


floating point format value when converting. The next signal in
the I/O list (or element in the I/O data array) becomes current
after this descriptor is used. This descriptor is only available
with ACCOL version 5.1 (or later), and AA (or later) firmware.

CST3:0 This descriptor performs the same function as CST1:0 for IEEE
floating point format values except that it is used only when
data is sent/received in Intel order. This function requires
STP.08 or newer custom firmware.

CST4:0 This descriptor performs the same function as CST2:0 for


Whipple floating point format values except that it is used only
when data is sent/received in Intel order. This function requires
STP.08 or newer custom firmware.

Message Data Length for Force and Preset Functions received by Slaves:

One message data byte is required by the PLC Format for a Force Single
Coil function in order to be valid. If the data byte value is zero, the coil
will be forced OFF. If the byte value is non-zero, the coil will be forced
ON.

Two data bytes are required by the PLC Format for a Preset Single
Register function in order to be valid. The two bytes are the 16-bit
register value.

The number of coils affected by a Force Multiple Coils function is


determined by the PLC Format. A maximum of 100 message bytes can be
used as coil values; in Bit alignment with one Coil state per bit 800 Coils
can be forced in one message.

The number of registers which can be affected by a Preset Multiple


Registers function is determined by the PLC Format. A maximum of 200
bytes in the message can be used to hold register values (two bytes = 16
bits), thus 100 Registers can be preset with one message. The Format
must have an even number for the ‘n’ value. The above is applicable to
ACCOL loads generated by ACCOL software level 4.1 or later revisions.

ACCOL II Custom Protocols Manual


Page Gould- 25
Gould Modbus/Open Modbus Interface
Custom Interface to allow 33XX to function as Gould Modbus Master/Slave

“ On-Line Mode Changes


Beginning with Protected Mode PLS/PLX/PES/PEX/PCP/PCE 04.40
firmware, and TeleFlow/TeleRTU TFA/TRA 01.28, on-line changes to
the Custom Port’s slave mode between Gould Modbus mode, and Enron
Modbus mode, are supported. This allows a single Modbus load to be
loaded in all applicable RTUs, and depending upon the host’s Modbus
mode, the configuration parameters can trigger the application to
make an on-line change to the alternate Modbus mode. The change is
activated via the Portstatus Module (see ‘Portstatus’ in the ACCOL II
Reference Manual, document# D4044).

ACCOL II Custom Protocols Manual


Page Gould- 26
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

The Hewlett Packard HP 48000 Interface allows a Bristol 33XX series


controller to communicate with HP48000 host computers and HP48000
peer RTUs. The 33XX controller functions as a slave unit on the
communication line. The slave communication protocol is defined in
the Hewlett Packard HP48000 Measurement and Control Unit Host
Communications Protocol Reference Manual.

Configuration requirements vary depending upon whether or not the


33XX controller needs to receive data from HP 48000 peer RTUs.

When the 33XX controller needs to communicate only with an HP


48000 host computer, a Custom Port must be configured, but the
Custom Module is not configured. Only one Custom Port can be
configured for HP 48000 mode.

When the 33XX controller needs to communicate with HP 48000 peer


RTUs, a Custom Module must be configured, in addition to the Cus-
tom Port. Any number of Custom Modules may be used concurrently
for communication with different peer RTUs.

This section assumes familiarity with the HP 48000 protocol and


related terminology such as function blocks and IOM channels. For
information on these subjects, consult the Hewlett Packard manual
specified, above.

This section also assumes familiarity with various ACCOL structures


such as signals, signal lists, and data arrays as well as ACCOL Work-
bench or the ACCOL II Interactive Compiler (AIC). For information on
these topics, consult the ACCOL II Interactive Compiler Manual
(document# D4042), the ACCOL Workbench User Manual (document#
D4051) and the ACCOL II Reference Manual (document# D4044.)

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-1
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† HP48000 Functions Supported


The Hewlett Packard HP 48000 interface supports a subset of
HP48000 Header, Chained and System functions. Eight HP48000
Header Functions are supported by the interface:

Function Function
Name: Number: Description:
HAI 1 High Level Analog Input
DSI 5 Discrete Input Status
FCI 7 Fast Counter Input
HAO 12 High Level Analog Output
SDO 13 Sustained Discrete Output
TDO 14 Timed-Pulse Discrete Output
BVP 18 Bit Virtual Point
FVP 20 Floating Point Virtual Point

Two HP48000 Chained Functions are supported by the interface:

Function Function
Name: Number: Description:
F LTB UF 105 Array of floating point numbers
BITBUF 101 Array of bits

Nine HP48000 System Functions are supported by the interface:

Function Name:
RTU Health/Restart
Date and Time
RTU Address
ADC Calibration
Power Consumption
Access Password
Program Configuration Memeory
Database configuration
RS-232-C/Comm 1 Communications

Note that System functions do not have any function numbers.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-2
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† ACCOL Configuration Overview


There are up to seven steps required to configure the ACCOL load in
order to make the 33XX controller act as an HP48000 slave.

1. Define a Custom Port. This is described in the sub-section


‘Defining the Custom Port.’

2. Define a signal list, known as the Configuration List. This is


described in the sub-section ‘Defining the Configuration List.’

3. Create and configure the HP48000 slave Data Base. This in-
volves defining the IOM/Channel Arrays, the Function Block
Arrays, the Parameter lists, and configuring those arrays and
lists to represent the HP48000 functions and their parameters.
This is described in the sub-section ‘Defining the Slave Data
Base.’

4. Define an Analog Array, known as the Configuration Error


Array. This is described in the sub-section, ‘Defining the Con-
figuration Error Array.’

5. Set up the HP48000 System Data Area. This involves assigning


the RTU address of the 33XX and setting up different communi-
cation parameters. This is described in the sub-section, ‘Setting
up the System Data Area.’

6. Define the Custom Module. This step should be performed


ONLY if the 33XX will initiate communications with another
peer RTU. This is described in the sub-section ‘Defining the
Custom Module.’

7. Define the Peer-to-peer Command List. This step should be


performed ONLY if the 33XX will initiate communications with
another peer RTU. This is described in the sub-section ‘Defining
the Peer-to-peer Command List.’

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-3
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Defining the Custom Port


The HP48000 slave port is defined via the Communications Configura-
tion menu of The ACCOL II interactive Compiler (AIC) or in the
*COMMUNICATIONS section of the ACCOL source file, in ACCOL
Workbench. A typical definition of the port is shown below:

COMMUNICATIONS CONFIGURATION MENU

Port A Custom BAUD 9600 Mode: 13 P1: 1 P2: 0


8 Bits 1 Stop Bits No Parity

Parameters on the AIC menu must be set as follows:

Port x - Toggle this poke point until 'CUSTOM' appears. Which


port is chosen depends upon the type of 33XX unit being used,
and individual application requirements.

BAUD - This is the communication link transmission speed. Toggle


this poke point until the desired baud rate is visible.

Mode - Set the mode to 13.0 (which indicate that the Bristol
controller will act as an HP48000 slave RTU.)

P1 - Set this field to the number {1..255} of the signal list which is
to serve as the Configuration List. The value must correspond to
an actual existing list.

P2 - This field is not used.

X Bits - This is the character length. Set this field to 8 to select 8


data bits per character, or set this field to 7 to select 7 data bits
per character.

X Stop Bits - Set this field to 1 or 2 to indicate the number of


character stop bits to use.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-4
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Parity - Toggle the pokepoint until the character parity required


by your setup is visible in this field.

The BAUD parameter may be altered on-line using the Portstatus


Module. See the ACCOL II Reference Manual, document# D4044.

† Defining the Configuration List


The Configuration List is an ACCOL signal list used to declare several
parameters required for the proper operation of the HP48000 slave
interface.

The configuration List number must be identified in the P1 field


during communications configuration (See ‘Defining the Custom Port’).
The Configuration List must be organized as follows:

Signal 1 (Status) - An analog signal that indicates the overall


status of the communication between the HP host and the
Bristol slave controller. If the signal reports a status code of
0, the interface is functioning properly. If the signal has a
value of (-60), then configuration errors exist, and it is
necessary to examine the Configuration Error Array. Until
those configuration errors have been corrected, no communi-

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-5
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

cation will take place. Configuration errors must be cor-


rected off-line and the 33xx controller must be re-down-
loaded. If a value other than 0 or (-60) appears, refer to the
‘Communication Error and Status Codes’ sub-section to see
what the error means.

Signal 2 (IOM/Channel Array for Field points) - An analog


signal whose value is the number of an actual existing read-
only data array representing the IOM/Channel Array for
Field points. This array number can range from 1 to 255.

Signal 3 (IOM/Channel Array for Software points) - An


analog signal whose value is the number of an actual exist-
ing read-only data array representing the IOM/Channel
Array for Software points. This array number can range from
1 to 255.

Signal 4 (IOM/Channel Array for System points) - An analog


signal whose value is the number of an actual existing read-
only data array representing the IOM/Channel array for
System points. This array number can range from 1 to 255.

Signal 5 (Configuration Error Array) - An analog signal whose


value corresponds to the number of a read/write data array.
Such an array does not have to exist, but this signal must be
in the configuration list. Such an array is used to report
configuration errors during validation of the RTU’s database.
This array number can range from 1 to 255.

Signal 6 (Data Line Monitor) - A string signal, with a length of


64 characters. This signal is used to store the first 32 bytes
of each message received from an HP host as an ASCII
string. This is useful for monitoring the communication line
during system troubleshooting. It is recommended that
during normal operations, this signal be control inhibited.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-6
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Defining the Slave Data Base


When HP48000 hosts or peer RTUs exchange data with Bristol con-
trollers, addresses are mapped according to the following chart:

Address Field Range in HP48000 Range in 33XX

RTU Number 1 - 65535 1 - 65535


I/O Module Number 0 - 255 1 - 256
Channel Number 0 - 31 1 - 32
Function Block Number 0 - 254 1 - 255
Parameter Number 1 - 254 1 - 254
Parameter Array Index 0 - 254 1 - 255

The ACCOL program must indicate the address for each piece of data
to be transmitted by using ACCOL arrays, signal lists and signals to
mimic HP48000 structures such as IOM/Channel Arrays, Function
Block Arrays, Function Number Parameter Lists, and the Parameters.

IOM/Channel Arrays
IOM/Channel Arrays must be defined as read-only analog arrays; they
are the first structure examined during data address lookup.

Each IOM/Channel Array element contains a value from 1 to 255 that


corresponds to an existing ACCOL array which serves as a Function
Block Array.

An entry of 0 in the IOM/Channel Array implies that a particular


IOM/Channel combination is not supported.

IOM/Channel Arrays can have up to 32 columns; any extra columns in


these arrays are ignored. Each column number in the IOM/Channel
Array corresponds to the Channel Number for a particular I/O Module,
plus 1.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-7
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

column 1 --> HP48000 Channel Number 0


column 2 --> HP48000 Channel Number 1
.
.
column 32 --> HP48000 Channel Number 31

Each row number in the IOM/Channel Arrays corresponds to an I/O


Module Number - offset + 1. The actual number of rows in the array
depends upon which one of the three IOM/Channel arrays (Field,
Software, System) we are referring to. Not all the rows have to exist or
be configured, and any extra rows in these arrays will be ignored.

IOM/Channel Array for Field Points


1 2 3 ... 32
1
2
.
.
.
8

Column Number = HP48000 Channel Number + 1


Row Number = HP48000 I/O Module Number - offset + 1
Offset = 0

The correspondence between I/O Module number and row number is


shown below:

row 1 --> HP48000 I/O Module Number 0


row 2 --> HP 48000 I/O Module Number 1
.
.
row 8 --> HP 48000 I/O Module Number 7

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-8
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

IOM/Channel Array for Software Points

Column Number = HP48000 Channel Number + 1


Row Number = HP48000 I/O Module Number - offset + 1
Offset = 128
1 2 3 ... 32
1
2

.
.
.
16

The correspondence between I/O Module number and row number is


shown below:

row 1 --> HP48000 I/O Module Number 128


row 2 --> HP 48000 I/O Module Number 129
.
.
row 16 --> HP 48000 I/O Module Number 143

IOM/Channel Array for System Points

Column Number = HP48000 Channel Number + 1


Row Number = HP48000 I/O Module Number - offset + 1
Offset = 240
1 2 3 ... 32
1
2

.
.
.
16

The correspondence between I/O Module number and row number is


shown on the next page:

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-9
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

row 1 --> HP48000 I/O Module Number 240


row 2 --> HP 48000 I/O Module Number 241
.
.
row 16 --> HP 48000 I/O Module Number 255

Function Block Arrays


These Read-Only analog arrays provide the next step in data address
lookup. They must contain 3 columns and up to 255 rows. Any extra
columns or rows are ignored.

Row Number = Function Block Number + 1

The correspondence between Function Block number and row number


is shown below:

row 1 -> HP48000 Function Block Number 0


row 2 -> HP48000 Function Block Number 1
:
row 255 -> HP48000 Function Block Number 254

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-10
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

There are 3 columns per array used as a group for each Function Block
Number:

column 1 -> Function Number


column 2 -> Function Number Parameter List
column 3 -> offset of the first parameter of the Function in the
Function Number Parameter List

A Function Number of 0 for a particular Function Block, implies that


there is no function at the IOM/Channel/Function Block combination,
unless we are referring to a System Function. System Functions reside
in fixed locations in the RTU’s database (System Data Area) and their
Function Number should always be 0.

Only Function Numbers supported by the interface should be entered


in column 1 of every row in the Function Block Arrays. For supported
Function Numbers refer to sub-section ‘HP48000 Functions Sup-
ported’. Any other Function Number in a Function Block will be
reported as an error during validation of the RTU’s database at system
startup.

The Function Number Parameter List Number {1..255} gives the


number of the ACCOL signal list which contains the parameter data
signals for the particular occurence of the function.

The offset {1..3999} gives the position of the first parameter of the
specified Function in the Function Number Parameter List. For the
description of the Function Parameters of the supported Header,
Chained, and System Functions, refer to the HP48000 Database
Reference Manual.

When a Function Block has been configured with a valid Function


Number, the Function Number Parameter List should refer to an
existing signal list, and the offset should be a valid position in that list
and the signals in the list should match the number and data types of
the parameters of the Function. Failure in any of the above will create
errors during validation of the RTU’s database at system startup.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-11
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Example - Setting Up the HP 48000 Slave Data Base

The following configuration includes:

2 High Level Analog Inputs in IOM 0, channel 1 and channel 2


1 Discrete input status in IOM 1 Channel 0
3 Arrays of flating point numbers in IOM 128 channel 0, 1, and 2
4 Arrays of bits in IOM 129 in channels 0, 1, 2, and 3.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-12
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Defining the Configuration Error


Array (Optional)
At startup, the firmware will check the validity of the configuration
list, the ACCOL arrays, and the ACCOL signals that make up the
RTU’s database. A validation failure will cause the status signal of the
configuration list to be set to a value of (-60).

In order to get more detailed error information, it is necessary to have


a Configuration Error Array. Creation of a Configuration Error
Array is strongly recommended, however, it is not required. The
Configuration Error Array, if used, must be a read-write data array,
and is designated by the fifth signal in the Configuration List. (See the
sub-section 'Defining the Configuration List’.)

The number of columns in this array is fixed and each column haa a
special meaning. The number of rows can vary. More rows in the array
will allow more configuration errors to be reported.

Each row represents one error as follows:

Column 1: The IOM/Channel Array number where the error was


detected. For example, if a configuration error is
found for IOM/Channel Array number 4, a 4 will
appear in column 1.

Column 2: The row number in the IOM/Channel Array where


the error was detected.

Column 3: The column number in the IOM/Channel Array where


the error was detected.

Column 4: The Function Block Array number where the error


was detected. For example, if an illegal function
number was found in one of the rows in column 1 in
the Function Block Array number 5, a 5 will appear
in this column.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-13
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Column 5: The Row number in the Function Block Array where


the error was detected.

Column 6: The Function Number Parameter List number where


the error was detected. For example, if Function
Number Parameter List number 2 was defined in a
Function Block Array, and such a list does not exist,
then a 2 will appear in this column.

Column 7: The offset of the first parameter of the Function in


the Function Block Array where the error was de-
tected.

Column 8: This column shows the actual error code. (See table,
below, for explanation.)

The table, below, lists the Error codes that may appear in column 8 in
the Configuration Error Array:

Code E x p l a n a t i o n

-61 IOM/Channel Array does not exist or it is of the wrong type.


-62 Function Block Array does not exist or array is not an analog
array.
-63 Illegal Function Number.
-64 Signal List does not exist.
-65 Invalid number for offset (1 - 3999).
-66 Signal referring to array size is not analog or number of
Array elements not equal to array size.
-67 Data type of ACCOL signal(s) does not match the data type
of the Function’s parameter(s).
-68 Invalid RTU number; must be in range (1 - 65535).

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-14
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Setting Up the System Data Area


The system data area of the RTU database contains a subset of
HP48000 system functions required for the operation of the RTU as a
whole in HP48000 mode. Each function in the system data area
contains a subset of parameters that control a set of related opera-
tions. Unlike chained functions, system functions are permanently
assigned to specific function blocks on specific channels. Each system
function is therefore identified by the number of the IOM, channel,
and function block on which it resides.

The table, below, lists those HP48000 system functions implemented


in the Bristol controller. Each database address is expressed by four
coordinates (a,b,c,d) where: a=IOM, b=channel, c=function block and
d=parameter.

Database
Address Description Default Values Range

(240,0,0,1) RTU Health/Restart - Status 0.0


(240,1,0,1) Current date RTU’s date
(240,1,0,2) Current time RTU’s time
(240,1,0,3) New date
(240,1,0,4) Reserved
(240,1,0,5) New time
(240,2,0,1) RTU Address no default 1-65535
(242,0,0,5) Key-on delay 0.0 0-65535
(242,0,0,6) Minimum channel clear time 0.0 0-65535
(242,0,0,7) Turnaround delay 0.0 0-65535
(242,0,0,8) Message encoding H H or R

RTU Health/Restart - Status - An ACCOL analog signal whose


value represents the System Status of the RTU.

Current date - The ACCOL system signal #TIME.000.

Current time - The ACCOL system signal #TIME.000.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-15
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

New date - Any ACCOL analog signal.

New time - Any ACCOL analog signal.

RTU Address - An ACCOL analog signal whose value represents


the address of the Bristol RTU. This software address is
used only for communications with an HP48000 host or
peers. ACCOL software tools are using the hardware ad-
dress (Dip switches) of the controller. Although not required,
it is recommended that both these addresses be the same
number.

Key-on delay - An ACCOL analog signal whose value represents


the Key-on delay time period.

Minimum channel clear time - An ACCOL analog signal whose


value represents the minimum channel clear time.

Turnaround delay - An ACCOL analog signal whose value repre-


sents the Turnaround delay.

Message encoding - An ACCOL string signal of length 1 whose


value represents the process to be used to encode/decode
host and RTU communication messages. (H = Hex ASCII, R
= Radix 64).

For more information on the System Data Area and the parameters
specified, above, refer to the System Functions sub-section of the 'HP
48000 RTU Database Reference Manual.'

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-16
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Example - Configuring the System


Data Area

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-17
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Communication Errors and Status


Codes
The status codes listed in this section appear in the Status signal in
the Configuration List.

Codes that indicate intermediate stages of communication processing:

100 Command from host being serviced.


200 Peer-to-peer command from another RTU being serviced

Codes that are externally, environmentally, or hardware generated.


(Note: Any of these errors will abort communications:)

-6 Receive Error - Receive Timeout.


-8 Transmit Timeout Error.

Codes which indicate fatal errors in a poll message from the host, or
from a peer RTU. In this case the operation in the incoming message
is not processed:

-41 Illegal opcode


-42 Output buffer message overflow
-43 Write with range of coordinates selected
-44 Bad IOM specification
-45 Bad channel specification
-46 Bad specification of range of array elements
-47 Unrecognizable data type during write
-48 IOM and Channel cannot be defaulted in a write operation
-49 RTU address in the middle of the message

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-18
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

† Defining the Custom Module


In order to configure the 33XX to send/receive messages from peer
RTUs, using the HP48000 Slave interface, the ACCOL Custom Module
must be configured as follows:

MODE - Enter the constant 13 on this terminal, or create an


analog signal for this terminal, with an initial value of 13.

LIST - Enter a constant which represents a signal list number, or


create an analog signal for this terminal which has a signal
list number as its initial value. List numbers can range from
1-255. The signal list referenced is referred to as the ‘Peer-
to-Peer Command List’.

STATUS - Create an analog signal for this terminal which will be


used to report a single error or status code which indicates
the status of the peer-to-peer communication interface. If the
signal reports a status code of 0, the peer-to-peer interface is
functioning properly. If a value other than 0 appears, refer
to the ‘Peer-to-Peer Error and Status Codes’ sub-section to
see what the error means.

† Defining the Peer-to-Peer


Command List
The Peer-to-Peer Command List is an ACCOL signal list used to
declare several parameters required for the proper operation of the
Custom Module, when executed for peer-to-peer communications.

The Peer-to-Peer Command List number must be identified on the


LIST terminal of the Custom Module (See ‘Defining the Custom
Module’). The Peer-to-Peer Command List must be configured exactly
as follows:

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-19
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Signal 1 (Module Purpose) - An analog signal whose value states


the purpose of the list.

1 = Peer-to-Peer Command List

Signal 2 (Done Signal) - A logical signal that indicates completion


of a communication request. It will be set to False (OFF)
when the communication request is initiated and it will be
set True (ON) when the communication request is completed.
The Custom Module’s STATUS terminal is updated at the
same time as this signal.

Signal 3 (Command Operation) - An analog signal whose value


represents the operation to be performed.
1 = Read from Peer RTU
2 = Write to Peer RTU

Signal 4 (Peer RTU Number) - An analog signal whose value


{1..65535} represents the address of the Peer RTU.

Signal 5 (Peer I/O Module Number) - An analog signal whose value


{0..255} represents the I/O Module Number database coordi-
nate in the peer RTU, where the Command Operation will
take place.

Signal 6 (Peer Channel Number) - An analog signal whose value


{0..31} represents the Channel Number database coordinate
in the peer RTU, where the Command Operation will take
place.

Signal 7 (Peer Function Block Number) - An analog signal whose


value {0..254} represents the Function Block Number data-
base coordinate in the peer RTU, where the Command
Operation will take place.

Signal 8 (Peer Parameter Number) - An analog signal whose value


{1..254} represents the Parameter Number database coordi-
nate in the peer RTU, where the Command Operation will
take place.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-20
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

Signal 9 (Peer Parameter Low Index) - An analog signal whose


value {0..254} represents the Low index database coordinate
in the peer RTU, where the Command Operation will take
place. Low Index is only used if the specified Peer Parameter
Number refers to an array type, otherwise it is ignored.

Signal 10 (Peer Parameter High Index) - An analog signal whose


value {0..254} represents the High index database coordinate
in the peer RTU, where the Command Operation will take
place. High Index is only used if the specified Peer Param-
eter Number refers to an array type, otherwise it is ignored.

Signal 11 (Local Signal List Number) - An analog signal whose


value {1..255} represents the signal list that acts as the data
source or destination in the Bristol controller.

Signal 12 (Local Signal Position) - An analog signal whose value


{1..3999} represents the position of the signal in the Local
Signal List. Note: If the data object is an array, the Local
Signal Position, in the Local Signal List, must indicate the
first signal of however-many are required for that data object
type.

Signal 13 (Response Timeout) - An analog signal whose value


{1..65535} represents the amount of time to wait for a re-
sponse message from the addressable peer RTU. This value
is in units of seconds.

Peer-to-Peer Error and Status Codes


The following list of status codes indicate intermediate and final
stages reached by the Custom Module:

300 Peer-to-Peer command module being serviced.


301 Peer-to-Peer command module awaiting service.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-21
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

The following list of status codes are reported during validation of the
Peer-to-Peer Command List. Any of the following errors will abort
communications:

-50 Invalid Custom Module List (Peer-to-Peer command list)


-72 Invalid command operation.
-73 Invalid Peer RTU number.
-74 Invalid Function Block Number.
-75 Invalid Parameter.
-76 Invalid low/high index or high index is less than low index.
-77 Invalid Local Signal List specified.
-78 Invalid position in the Local Signal List.
-91 Invalid module purpose.
-92 Invalid I/O module number.
-93 Invalid Channel number.
-94 Invalid response timeout.
-95 The Custom list (Peer-to-Peer command list) is empty or too
short.

The following list of status codes indicate errors that happen during an
update of the ACCOL signal values while a READ operation was
performed:

-101 Data type mismatch while writing to a signal in the Local


Signal List.

-102 Local list is too short (more data to be written than signals
in the Local Signal List).

The following list of status codes indicate errors that are externally,
environmentally-, or hardware generated. Any of those errors will
abort communications:

-1 PROMs do not support the HP mode.


-2 Receive Error - Character Overrun.
-3 Receive Error - Parity.
-4 Receive Error - Framing.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-22
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

-5 Receive Error - CRC mismatch.


-6 Receive Error - Receive Timeout.
-7 Receive Error - Invalid length.
-8 Transmit Timeout Error.

Any other value at the status terminal of the Custom Module indicates
that the peer RTU regected the command. Those error codes may refer
to fatal or non-fatal errors. Refer to the HP48000 Host Protocol Refer-
ence Manual for the meanings of error codes for specific commands.

† Special Handling of Some HP


Function Parameters
In some cases, parameters of HP-style functions, which are repre-
sented by ACCOL analog signals, use their individual bits to report
conditions of a particular point in the RTU. For example parameter 8
of the Header Functions, is the status word. The HP data type of this
parameter is an unsigned word and the low-order byte gives an over-
view of the status of a point, where the high-order byte indicates the
type of any alarms or failures.

Because the signal in the parameter list that represents this param-
eter must be an ACCOL analog signal, a floating point value must be
constructed to represent the value of this status word.

A simple way to construct such a value, is to create a one dimensional


ACCOL read/write Logical Array of 16 elements which represent the
16 bits of the status word, with the first element being the least
significant bit and the 16th element being the most significant bit of
the word. The ACCOL task can turn the elements of this array ON/
OFF as necessary. Then with a CALCULATOR module, the statuses of
the 16 array elements can be used to derive an equivalent decimal
value that will represent the value of the status word. Such a CALCU-
LATOR is shown in the example below:

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-23
Hewlett Packard HP 48000 Interface
Custom Interface to allow 33XX to function as Hewlett Packard HP 48000 Slave

10 CALCULATOR STATUS.WORD.TMP=0
20 FOR 1, 16, 1, ELEMENT..
30 CALCULATOR
STATUS.WORD.TMP=STATUS.WORD.TMP+:A(#LDATA 1[ELE-
MENT..])*2 **(ELEMENT..-1)
40 ENDFOR
50 CALCULATOR STATUS.WORD.=STATUS.WORD.TMP

Where STATUS.WORD is the ACCOL Analog Signal representing the


parameter in question and #LDATA 1 is the ACCOL Logical Array
that holds the 16 bits of the status word.

ACCOL II Custom Protocols Manual


Page HP 48000 Slave-24
Netprobe
Pseudo-Master Auto-Dial Interface

Table of Contents

Description .........................................................................1
Restrictions .........................................................................2
Operation ............................................................................3
ACCOL Configuration......................................................4
Error Handling and Reporting .................................... 10
Application Notes ........................................................... 13
Example ........................................................................... 14

Description
Netprobe allows a Bristol 33XX controller to communicate
via dial-up modem with any nodes in the network without inter
fering with normal network communications traffic. Netprobe is a
custom PROM/custom port application for DPC-3330 and 3335
controllers. The communication between the Netprobe node andt h e
target (probed) node in the network is fully compatible with the
Bristol Synchronous/Asynchronous Protocol (BSAP). The Netprobe
node accesses any 33XX node using Master Module communica-
tions, provided that a dial-up modem exists at both the Netprobe
node and at the BSAP Slave port (or Pseudo slave port) of the
target node.

Two versions of Netprobe are available:

CUSTOM
Port Mode Version Description

11 Read-Only Netprobe-RO supports Master Module


POLL Mode only, which permits read
access to user-configured signal lists
and/or data arrays in the target node.

12 Read-Write Netprobe-RW supports all of the Master


Module modes - POLL, SEND, or comb-
ined POLL/SEND thus allowing

ACCOL II Custom Protocols Manual


Page Netprobe-1
Netprobe
Pseudo-Master Auto-Dial Interface

CUSTOM
Port Mode Version Description
12 (cont.) Read-Write changes as well as read access to user-
configured signals and/or data arrays in
the target node.

The figure below illustrates a sample layout of a Network with


Netprobe application.

Notes:
1. The "TRUE MASTER" node can talk to either slave node 1 or 2.
2. Node 2 is a "TRUE MASTER" to node 5 and the Netprobe node.
3. A Netprobe node can talk to any of the Slave nodes in the network
which have an auto-answer modem Slave or Pseudo slave port.

Restrictions
A Netprobe node requires 333X firmware level AE.00 (or great-
er) plus a Custom PROM containing Custom Mode 11 or Custom

ACCOL II Custom Protocols Manual


Page Netprobe-2
Netprobe
Pseudo-Master Auto-Dial Interface

Mode 12 firmware, as detailed above.

NETPROBE uses the Bristol Switched Network Modem


(SNM) auto-dial capability.

Up to 3 Netprobe ports may be defined in an ACCOL load, with each


port handling a user-specified subset of the full address range
(similar to BSAP Master ports). Hardware limitations on placement
of the Bristol SNM may restrict actual usage to fewer ports.

A Netprobe node may be defined at any level in the network, but it


must be a terminal node, i.e there can be no slave nodes defined
below it in the Network configuration file.

No BSAP Master port should be defined in an ACCOL load with a


Netprobe port. If a standard BSAP Master port is present in the
same load, the Netprobe port(s) will not execute.

The target node must contain the necessary appropriate Slave


Module(s).

When the Read-Write version of Netprobe (Custom Mode 12) is used,


changes to the data base in the target node are strictly the responsibil-
ity of the user. This capability should be used with great care!

Operation
A Netprobe session involves six basic steps:

1) Dial target node using the Auto-Dial Modem Interface.


2) Verify connection.
3) Execute Master Module to access data in target node via Slave
Module.
4) Verify success.
5) Continue Master Module execution.
6) End session by terminating the connection.

ACCOL II Custom Protocols Manual


Page Netprobe-3
Netprobe
Pseudo-Master Auto-Dial Interface

ACCOL Configuration
This description assumes the reader is familiar with the following
topics described in the ACCOL II Reference Manual (D4044):

Auto-Dial Modem Interface


Master/EMaster Module
Master/Slave Communications
Node Addressing
Portstatus Module
Slave Module

Details on the Master Module/Slave Module communications system


are also discussed in the Network 3000 Communications User Guide
(document # D4052) under the “Peer to Peer” topic. BBI’s Switched
Network Modem (SNM) is described in the CI-3330 and CI-3335
Hardware Manuals under SNM appendix.

This section details how to configure an ACCOL load to perform a


Netprobe session. The numbered subsections relate to particular
areas of the ACCOL load.

1. Communications Configuration Menu -

Configure the Custom port according to the following instruc-


tions:

BAUD - Set this field to indicate the communication baud rate.


The BBI Switched Network Modem supports either 300
or 1200.

MODE - Set the mode to 11 if your Custom EPROM is for


Netprobe-RO (Read-Only).
Set the mode to 12 if your Custom EPROM is for
Netprobe-RW (Read-Write).

ACCOL II Custom Protocols Manual


Page Netprobe-4
Netprobe
Pseudo-Master Auto-Dial Interface

P1 - This field specifies the Maximum Slave Address (1-127). If


more than one Netprobe port is configured, the maximum
slave address fields must be in ascending order i.e the first
port will use the slave addresses ranging from 1 through n,
the next Netprobe port will use slave addresses starting
from n+1 etc. A Netprobe port where the P1 value is not
greater than the P1 value for the previous Netprobe port will
not execute.

P2 - This field is used to specify the response timeout in


tenths of seconds. The valid range is 1-255.

CHARACTER LENGTH - Not applicable. Always 8 data bits.

STOP BITS - Not applicable. Always 1 stop bit.

PARITY SET - Not applicable. Always No Parity.

Netprobe uses the CRC (Cyclic Redundancy Check) used by the


standard BSAP drivers.

Example:

The example below shows one Read-Write Netprobe Port on port B


(custom mode 12) at 1200 baud with a maximum slave address of 127
and a response timeout of 2 seconds.

Port A BSAP Slave 9600

Port B CUSTOM BAUD 1200 MODE: 12 P1: 127 P2: 20


8 BITS 1 Stop Bits No Parity

Port C Unused

Port D Unused

ACCOL II Custom Protocols Manual


Page Netprobe-5
Netprobe
Pseudo-Master Auto-Dial Interface

2. System Signals
#DIAL.nnn - Set the appropriate #DIAL.nnn signal(s) to
designate the Auto-Dial Control Signal List(s).
Example:

#DIAL.001 = 1.0 designates signal list 1 as the


control structure for Port B auto-
dial

#NDARRAY - If desired, set #NDARRAY to designate a


Logical Data Array which can be used to set
specific Netprobe target node addresses
‘Off-Line’. Netprobe will not initiate message
transfers to any node address which is marked
‘Off-Line’ (position in the Node Array = 0 or
OFF).

Example:

#NDARRAY = 1.0 designates logical data array


1.

#POLLPER.nnn- Set the appropriate #POLLPER.nnn signal(s)


to designate the delay (in seconds) between poll
sequences when polling for a response to a
successfully transmitted Master Module req-
uest. This delay is activated when the response
to a Poll is an ACK/NoData, indicating that
the response message is not yet available.

Example:

#POLLPER.001 = 2.0 , designates a delay of 2


seconds for Netprobe on port B.

The value at this signal must be taken into

ACCOL II Custom Protocols Manual


Page Netprobe-6
Netprobe
Pseudo-Master Auto-Dial Interface

account when determining estimated time to


execute a Master Module (see 'Application
Notes' later in this section).

The System Signals #NODE.nnn and #LINE.nnn do not apply to


the Netprobe application.

3. Signal Lists

Create an Auto-Dial Control Signal List for each Netprobe port


using the signal list number(s) designated on the #DIAL.nnn
signal(s).

Example: For Port B

#DIAL.001 = 1.0

Signal List No. 1 Signal type (Initial value)

10 DIAL.ENBL Logical (OFF)


20 DIAL.STATUS Analog (0.0)
30 DIAL.SELECT Analog (1.0)
40 PHONE.NO.1 String “XXX-XXX1”
50 PHONE.NO.2 String “X-XXX-XXX2”
60 PHONE.NO.3 String “T-W-X-XXX-XXX-XXX3”

where,

DIAL.ENBL - This signal is used to enable/disable dialing a


desired node.
DIAL.STATUS - This signal indicates the status of dial control
and operation e.g. line busy, failed connection etc.
DIAL.SELECT - The user selects a phone number from the list
in example above using this signal. A value of 1.0 selects phone
no. 1.
PHONE.NO.1,2,3 - These are the string signal names for the
phone numbers used for each node, each signal is initialized

ACCOL II Custom Protocols Manual


Page Netprobe-7
Netprobe
Pseudo-Master Auto-Dial Interface

with the phone number itself.

Create other signal lists as required. In our example we use


signal list 2 as a Master Module input list. See 'Example' at the
end of this section.

4. Data Arrays

Create a logical node array, if desired, using the logical data


array number designated on the #NDARRAY signal (in our
example we use Logical Data Array No. 1, 1 Col. X 127 Rows).
The positions for active Netprobe slave node addresses should
be set to 1 (ON), while the positions for inactive or invalid
Netprobe slave node addresses should be set to 0 (OFF).

Note that Netprobe, by design, polls only the node targetted by


the Master Module. The Node Array is not needed to suppress
polling of other nodes as it is when using auto-dial on a stan -
dard BSAP Master port.

Create other data arrays as required. In our example we use


Analog Data Array No.1, 1 Col. X 8 Rows, as a Master Module
output array (see the 'Example' at the end of this section) and
Analog Data Array No. 3, 127 Cols. X 8 Rows, as a Portstatus
Module statistics array (see subsection 6).

5. ACCOL Tasks/Modules

Create an ACCOL Task to contain one or more Master Modules


and the necessary control logic for the Dial/Request sequences.

Example:

ACCOL Task 1 RATE: 5.0 PRI: 6

In the example above, the Frequency = 5.0 seconds (time to


detect that dialing is active).

ACCOL II Custom Protocols Manual


Page Netprobe-8
Netprobe
Pseudo-Master Auto-Dial Interface

Once a dialing session is started, the Task Frequency does not


apply until the session is terminated.

Priority = 6 (must be 32 or less to be lower than Communica-


tions).

6. Portstatus Module

Optionally, include a Portstatus Module. A Netprobe port


maintains the same port statistics as a standard BSAP Master
port. They are not displayed from the Toolkit Communications
page, but can be moved into a data array or signal list using the
Portstatus Module. The statistics can also be cleared using the
Portstatus Module, e.g. between dial-up sessions to different
nodes. This is illustrated in the example ACCOL load at the
end of this section. See the section on the Portstatus Module in
the ACCOL II Reference Manual (D4044) for the order of statis-
tics and the categories for the BSAP Master port.

7. User List

Optionally, include a User List for controlling and monitoring


a Netprobe session. For the example load, Signal List 10 is
configured as shown below and can be used via Toolkit to
modify signals such as TARGET.NODE, DIAL.SELECT,
DIAL.LIMIT, etc. The session is then started by setting
DIAL.START to ON. Dialing status and Master Module status
can be monitored, and DIAL.LIMIT decrements as each pass
through the task loop is executed.

Signal List No. 10 Signal type (Initial value)

10 TARGET.NODE Analog (1.0)


20 DIAL.LIMIT Analog (6.0)
30 DIAL.START Logical (OFF)
40 DIAL.ENBL Logical (OFF)

ACCOL II Custom Protocols Manual


Page Netprobe-9
Netprobe
Pseudo-Master Auto-Dial Interface

Signal List No. 10 Signal type (Initial value)


50 DIAL.STATUS Analog (0.0)
60 MSTR1.DONE Logical (OFF)
70 MSTR1.STAT Analog (0.0)
80 MSTR2.DONE Logical (OFF)
90 MSTR2.STAT Analog (0.0)
100 DIAL.SELECT Analog (1.0)
110 PHONE.NO.1 String (Node 1 Phone No.)
120 PHONE.NO.2 String (Node 2 Phone No.)

Error Handling and Reporting


Errors related to the auto-dial controls and operations are repre-
sented by the following status code for the dial status signal
in the auto-dial control list:

-1 Dialing completed but line was busy.

-2 and -3 Dialing failed. Missing or non-functioning mod-


em/port hardware or invalid specification of
the Netprobe port. The reasons may be:
a. Baud rate does not match modem.
b. Invalid maximum Slave specification (P1 field
under Communication Configuration Menu of
the AIC program).
c. Standard BSAP Master port present in the
load.

-5 through -8 Auto-Dial control structures are not properly set


up; no dialing was initiated.

The Master Module errors directly related to Netprobe are given


by the following status codes on the STATUS_2 terminal of the
Master Module (for the sample load in the Example section,
the MSTR1.STAT and MSTR2.STAT signals):

ACCOL II Custom Protocols Manual


Page Netprobe-10
Netprobe
Pseudo-Master Auto-Dial Interface

CODE DESCRIPTION

-14 The Master Module message could not be trans-


mitted (Request Send Error). The reasons may
be:

a. Port hardware is missing.


b. No current active modem connection.
c. Node is marked “off-line” via #NDARRAY.
d. Master Module Mode is SEND or POLL/SEND and
Netprobe port is Read-Only.
e. Communications buffer not available for response.
f. Target node not available (node responded to initial
poll with data intended for “True Master”, e.g. a global
message.
g. Response Timeout.
h. NAK (buffer not available at target node).
i. Communication errors (CRC, overflow, etc.). For all the
above reasons if there was an active modem connection
it will be automatically disconnected. The dial status
will be set to 0 at the completion of the hang-up se-
quence.

For reasons g,h and i two retries are attempted before


reporting the error.

For reasons f thru i error statistics are incremented for


the associated Netprobe Port. These error statistics can
be accessed using the Portstatus Module described
earlier.

-15 The Master Module message was successfully transmit-


ted, but no Slave Module response message was
received within the 2 minute timeout (at Master Module)
period. This is called Timeout on response error.

ACCOL II Custom Protocols Manual


Page Netprobe-11
Netprobe
Pseudo-Master Auto-Dial Interface

For this case, the modem connection may still be active,


or it may have been disconnected by Netprobe because of
errors. If the connection is still active, it can be termin-
ated by disabling the dialing signal at the ACCOL Task.

After successfully transmitting a Master Module request,


Netprobe polls the target node for data. If the response
indicates “ACK/NoData” a delay is initiated based on the
#POLLPER.nnn signal for the port. At expiration of the
delay, another poll message is sent. This polling seq-
uence continues until the matching Slave Module res-
ponse data is received, unless one of the following occurs:

a. The dial enable signal is set to OFF (or zero).


b. A non-matching data response is received. For this
case, the message is not ACK’d. It will be retained in
the sending node for retransmission.
c. Response Timeout.
d. Communications errors (CRC, Overflow, etc.).

Terminating via the dial enable signal while commun-


ications are active should be avoided because it may
result in a “stale” response being left at the node (for
details on “stale” responses see 'Application Notes'
later in this section.

For c and d, above, two retries are attempted


before terminating the polling sequence.

For b thru c the modem connection is automatically


terminated by Netprobe. Dial status is set to zero at the
completion of hang-up sequence. Error statistics are
incremented for the associated Netprobe port, and access-
ed using the Portstatus Module.

ACCOL II Custom Protocols Manual


Page Netprobe-12
Netprobe
Pseudo-Master Auto-Dial Interface

Application Notes
“Stale” responses can occur if the telephone connection is termi-
nated after a request is accepted by a target node but before it
transmits the response.

NOTE

“Stale” responses will not be accepted by a Netprobe Node


and will prevent Netprobe access until the message is either
flushed from the target node transmit queue or accepted by
the node’s “True Master".

Master Module Completion Time

When waiting for completion of a Master Module, the timeout


value in the WAIT FOR statement must be long enough to allow
for normal completion, otherwise the telephone connection may
be terminated while communications are still active which could
result in leaving a “stale” response as described above.

The time required to complete a Master Module depends on the


amount of data to be transferred. If there is more data than fits
in a single communications buffer, multiple message transfers
are generated. The Network 3000 Communications Users Guide
(D4052) has details on Peer-to-Peer message sizes from which
you can determine how many transfers will be needed to transfer
the Signal List and/or Data Array you have specified.

Master/Slave Module Point Numbers

It is recommended that a set of numbers be reserved for the


Slave Module’s Point terminal when using the Netprobe applica-
tion. This isolates Netprobe access from access by a node’s “True

ACCOL II Custom Protocols Manual


Page Netprobe-13
Netprobe
Pseudo-Master Auto-Dial Interface

Master” or siblings, preventing any accidental matching of a “stale”


response to a request from another source.

Note: Responses are matched to requests by both the Point termi-


nal value and a 16-bit sequence number, making an accidental
match very unlikely.

Off-Line Nodes

Netprobe will not transmit a message to a node address which is


marked Off-Line in the Node Array and will automatically termi-
nate any active telephone connection. To prevent establishing a
telephone connection for this case, the ACCOL program must test
the Node Array entry and bypass setup and/or enabling of the auto-
dial operation.

Example:
In the following example an analog signal DIAL.LIMIT is assumed
to contain the number of iterations of the loop to be executed. The
logical signal DIAL.START has an initial state of OFF and is used
to enable the Netprobe sequence in ACCOL Task 1. While
DIAL.START is OFF, a user can interactively set the Auto-Dial
Control List to select the desired telephone number, and set the
TARGET.NODE signal used by the Master Modules to
communcate with the desired node. The Portstatus Module is
automatically initialized within the task based on TARGET.NODE.
This Module is optional and is discussed in subsection 6 of 'ACCOL
Configuration' in this section.

5 * C
10 * IF (DIAL.START & DIAL.STATUS==0)
15 * C Set DIAL.START to OFF.
Enable dialing by turning on DIAL.ENBL and clear any

ACCOL II Custom Protocols Manual


Page Netprobe-14
Netprobe
Pseudo-Master Auto-Dial Interface

previous communication statistics in the Portstatus Module by


setting the MODE to 4.0. Set the COLUMN terminal for the
Portstatus Module to the target node address.

20 * CALCULATOR
10 DIAL.START=#OFF
20 DIAL.ENBL=#ON
30 PS.MODE=4.0
40 PS.COL=TARGET.NODE

30 * PORTSTATUS
PORT 2.0000000 PORT B
MODE PS.MODE.
ARRAY 3.0000000
COLUMN PS.COL
STATUS PS.STATUS.

35 * C If the loop iteration value is less then 1.0 terminate the


connection by turning OFF DIAL.ENBL. If DIAL.LIMIT
signal value is greater than 1 wait for dial status
code = 2 (dialing completed). If dial status code is not
equal to 2 or timeout occurred increment the error counter
and disable the dialing by turning OFF DIAL.ENBL. If
dial status equals 2 update data in output array and
execute the first Master Module.

40 * IF (DIAL.LIMIT< 1.0)
50 * CALCULATOR DIAL.ENBL=#OFF
60 * ELSE
70 * WAIT FOR (DIAL.STATUS==2) 1., 112 S, WAIT.FOR.TO
80 * IF ((DIAL.STATUS!=2)|(WAIT.FOR.TO))
90 * CALCULATOR
10 DIAL.ERROR.CNT=DIAL.ERROR.CNT+1
20 DIAL.ENBL=#OFF
100 * E L S E I F (DIAL.STATUS==2)

ACCOL II Custom Protocols Manual


Page Netprobe-15
Netprobe
Pseudo-Master Auto-Dial Interface

110 * CALCULATOR
10 #ADATA 1[1,1]=#TIME.002
20 #ADATA 1[1,2]=#TIME.003
30 #ADATA 1[1,3]=#TIME.004
40 #ADATA 1[1,4]=#TIME.005
50 #ADATA 1[1,5]=#TIME.006
60 #ADATA 1[1,6]=#TIME.007

120 * MASTER
REMOTE TARGET.NODE (1.0)
POINT MSTR1.PNT (250.0)
MODE MSTR1.MODE. (2.0)POLL/SEND
INTYPE 0.0000000 SIGNAL LIST
OUTTYPE 1.0000000 ANALOG DATA
ARRAY
INDEX NOT USED
INLIST 2.0000000 SIGNAL LIST 2
OUTLIST 1.0000000 ANALOG ARRAY
1
STATUS_1 MSTR1.DONE OFF (LOGICAL)
STATUS_2 MSTR1.STAT (0.0)

125 * C Wait for the first Master Module to complete, if the


module executes successfully go to the next Master Module
and execute it, if the module does not execute successfully
increment the error counter and disable dialing by turning
OFF DIAL.ENBL.

130 * WAIT FOR (MSTR1.DONE) 1., 10 S, MSTR.TO.

140 * IF ((MSTR.TO)|(MSTR1.STAT!=0))

150 * GOTO 90

ACCOL II Custom Protocols Manual


Page Netprobe-16
Netprobe
Pseudo-Master Auto-Dial Interface

160 * ELSE

170 * MASTER
REMOTE TARGET.NODE (1.0)
POINT MSTR2.PNT (251.0)
MODE MSTR2.MODE. (1.0) POLL
INTYPE 0.0000000 SIGNAL LIST
OUTTYPE NOT USED
INDEX NOT USED
INLIST 3.0000000 SIGNAL LIST 3
OUTLIST NOT USED
STATUS_1 MSTR2.DONE LOGICAL
STATUS_2 MSTR2.STAT ANALOG STATUS
CODE
175 * C Wait for the second Master Module to complete. If the
module executes successfully, decrement the loop itera-
tion counter and go to the top of the loop to execute the
Portstatus Module and check if the loop iteration counter
has gone to zero. If module does not execute successfully
increment the error counter and terminate the connec-
tion.

180 * WAIT FOR (MSTR2.DONE) 1., 10 S, MSTR.TO.


190 * IF ((MSTR.TO)|(MSTR2.STAT!=0))
200 * GOTO 90
210 * ELSE
220 * CALCULATOR DIAL.LIMIT=DIAL.LIMIT-1
230 * GOTO 30
240 * ENDIF
250 * ENDIF
260 * ENDIF
270 * ENDIF
280 * ENDIF

ACCOL II Custom Protocols Manual


Page Netprobe-17
Netprobe
Pseudo-Master Auto-Dial Interface

The example Slave Modules shown below, when accessed from


the above ACCOL load, will result in the following transfer of data:

1) Netprobe Analog Data Array 1 to Target Node Analog Data


Array 5.
2) Target Node Signal List 8 to Netprobe Node Signal List 2.
3) Target Node Signal List 20 to Netprobe Node Signal List 3.

SLAVE Module 250 at Node 1

POINT 250 Point No.


ENABLE S250.ENBL Logical (ON)
INTYPE 1 INLIST Type = Analog
Data Array
OUTTYPE 0 OUTLIST Type = Signal
List
INLIST S250.ARRY Analog (5.0)=Analog RW
Data Array 5 (1X8)
OUTLIST S250.LIST Analog (8.0)=Signal List 8
STATUS_1 S250.RESP.CNT Analog (0.0)
STATUS_2 S250.STAT Analog (0.0)

SLAVE Module 251 at Node 1

POINT 251 Point No.


ENABLE S251.ENBL Logical (ON)
INTYPE NOT USED
OUTTYPE 0 OUTLIST Type = Signal
List
INLIST NOT USED
OUTLIST S251.LIST Analog (20.0)= Signal List
20
STATUS_1 S251.RESP.CNT Analog (0.0)
STATUS_2 S251.STAT Analog (0.0)

ACCOL II Custom Protocols Manual


Page Netprobe-18
Netprobe
Pseudo-Master Auto-Dial Interface

It is assumed that operator control, or a user-defined function will


be used to limit line use. As long as dialing is enabled and no
specific errors are occurring (noted above), no disconnect action
will be initiated at the Netprobe port. In the example, the various
WAIT FOR statements contain limits when waiting for dialing
status or Master Module completion, and the iteration counter
DIAL.LIMIT controls how many times the Master Modules are
executed.

In some error cases, (noted earlier), Netprobe will automatically


terminate the connection independent of the state of the DIAL
ENBL signal. The DIAL.STATUS will be set to 0 on completion of
the Hang-Up sequence. This automatic termination is intended to
limit the time that a target node is not accessible by its “True
Master”.

Netprobe Session based on Example ACCOL Task

1. Download the Netprobe node and verify correct recognition


of the Custom EPROM and the Custom Port. On the Toolkit
Communications Statistics display for the example, Port B should
be shown as Custom Port - Netprobe-RW. The Custom Prom
Detail pokepoint at the bottom of the screen should show the
mode values and applications present in the Custom EPROM.

2. Verify that #DIAL.nnn for the Netprobe port selects a valid


control signal list. #DIAL.001 for Port B was set to select
Signal List 1 when configuring the example ACCOL load. If a
Netprobe port #DIAL.nnn signal is changed at runtime, up to
10 seconds is required for the Netprobe task to detect the
change. Display Signal List 1 and verify correct signal order
and initial values.

3. Display Signal List 10 and verify correct setup for the desired
session. Set the TARGET.NODE signal to the desired node

ACCOL II Custom Protocols Manual


Page Netprobe-19
Netprobe
Pseudo-Master Auto-Dial Interface

address. If you are using a Node Array, make sure the node is
On-Line (in the example, set Logical Data Array 1, Col. 1, Row
1 to ON to mark Node Address 1 OnLine). DIAL.SELECT
should select the telephone number for the node indicated in
TARGET.NODE. DIAL.LIMIT should contain the repeat count
for the Master Module loop in ACCOL Task 1 (minimum value
= 1).

4. Turn the DIAL.START signal ON. This will be detected by


ACCOL Task 1 within 5 seconds and will cause dialing to be
enabled using the DIAL ENABLE signal in the control list
(DIAL.ENBL). DIAL.START is then set to OFF to prevent
reinitiation of dialing without specific action by the operator.

5. The ACCOL Task waits for a connection or a dialing error by


monitoring the DIAL STATUS signal in the control list
(DIAL.STATUS). (It takes a minimum of 15 seconds to estab-
lish a connection; a maximum of 110 seconds to report a
failure.)

6. A. If DIAL.STATUS does not indicate a successful connection,


the Master Module is not executed; DIAL.ENBL is set to
OFF (for an analog signal it would be set to 0.0), an error
count is incremented (DIAL.ERROR.CNT) and the task is
exited.

B. If a successful connection is made (DIAL.STATUS=2), the


first Master Module is executed. The Task then waits for
the Master Module STATUS_1 signal (MSTR1.DONE) to be
TRUE, indicating completion of the transaction and then ex-
amines the STATUS_2 signal (MSTR1.STAT) for status. It
is important that the timeout value in the WAIT FOR
statement be long enough to permit normal completion (See
'Applications Notes' earlier in this section).

ACCOL II Custom Protocols Manual


Page Netprobe-20
Netprobe
Pseudo-Master Auto-Dial Interface

7. A. If the MSTR1.STAT is negative, it may indicate errors in


the Master Module set up, errors detected by Netprobe,
errors reported in the response from the target node, errors
detected during processing of the response, or a response
timer timeout (See 'Error Handling and Reporting' section).

1) If there is an error in the Master Module set up (e.g. -1,


Invalid Mode), then no communications request was given
to Netprobe, but the modem connection is still active. The
example ACCOL Task terminates the connection by setting
DIAL.ENBL to OFF.

2) For error codes reported in the Slave Module response,


or associated with processing of the response, the modem
connection is not automatically terminated by Netprobe.
The ACCOL Task terminates the connection by setting
DIAL.ENBL to OFF.

B. If the first Master Module transaction was successful, the


example Task continues to the second Master Module. If
it is successful, it decrements the DIAL.LIMIT counter
and goes to Line 30 to execute the Portstatus Module (this
will move the statistics into the data array). If DIAL.LIMIT
has not expired, the loop is repeated.

8. The user may terminate the session at any time by setting


DIAL.LIMIT to zero. This provides a “clean” termination
point with no Master Module requests outstanding. The
connection will also be terminated if the user set DIAL.ENBL
to OFF, but this could leave a “stale” response at the target
node (See 'Application Notes' in this section).

ACCOL II Custom Protocols Manual


Page Netprobe-21
BLANK
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave in a TANO network

The TANO Communications Interface Module (CIM) provides custom


network communications as specified for the TANO proprietary
communications protocol. This interface allows a Bristol process
controller to act as a slave node in a TANO network. Only one TANO
node address may be assigned to each process controller.

A custom PROM set must be installed at the factory for this module to
operate properly. Although the CIM Module Menu appears in the AIC
program, communications cannot be enabled until the PROM set has
been installed.

INLIST_1 OUTLIST
INLIST_2 CIM
STATE
ENABLE STATUS_1
POINT STATUS_2

Module Terminals
POINT Default: None
Format: Analog signal or constant
Input/Output: Input

is specifies the address of the slave node containing the CIM Module.
The address numbers range from 000 to 255.

ENABLE Default: OFF


Format: Logical signal
Input/Output: Input

enables or inhibits communications. If it is set ON, the CIM Module


will be continuously enabled. If it is OFF or left unwired, the module
will be inhibited and will not respond to a poll from the master.

ACCOL II Custom Protocols Manual


Page TANO Slave-1
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave node in a TANO Network

INLIST_1 Default: None


Format: Analog signal or constant
Input/Output: Input

identifies the number of the signal list which will serve as INLIST_1.
This list should only contain the names of analog signals or numerical
constants. A maximum of 84 signals may be entered in this list.

INLIST_2 Default: None


Format: Analog signal or constant
Input/Output: Input

identifies the number of the signal list which will serve as INLIST_2.
This list sends out a list of accumulator signals. The list may contain a
mix of analog and logical signals, but the logical signals should always
be entered as the first group; the analog group should follow. The
maximum number of signals permitted in the list can be determined
through the use of the following equation:

Max. No. = (No. of logicals + 7 / 8) + (No. of analogs * 3)

OUTLIST Default: None


Format: Analog signal or constant
Input/Output: Input

identifies the number of the signal list which will serve as the OUT-
LIST. This list contains signals that store command values received
from the master. The signals in the list itself can be either all analog
or logical types, or a mix of both types providing they conform to a
specific group arrangement.

ACCOL II Custom Protocols Manual


Page TANO Slave-2
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave in a TANO network

STATE Default: None


Format: Analog signal or constant
Input/Output: Output

indicates which signal list has the most recent communication access.
This value remains valid until the next communication session occurs.
A value of zero indicates that no list was accessed.

STATUS_1 Default: None


Format: Analog signal or logical signal
Input/Output: Output

indicates an occurrence of communications with the master. If this


signal is analog, the signal will be incremented by 1 at the conclusion
of each communication session. If this signal is logical, it will be
turned ON following the conclusion of communications.

STATUS_2 Default: None


Format: Analog signal or logical signal
Input/Output: Output

will be set by the CIM Module to indicate the completion status of the
most recent communications. The status remains valid until the next
session occurs. If this is an analog signal, it will assume one of the
codes listed below.

If this terminal contains an logical signal, it will be turned ON to


indicate an error, and turned OFF to indicate success.

Code Description

1 Extended Status successful.


2 Full Report or Best Method Report successful (poll).
3 Command Point or Execute Point successful (command)
4 Set Time of Day successful.
5 Select Point successful.

ACCOL II Custom Protocols Manual


Page TANO Slave-3
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave node in a TANO Network

-10 Extended Status, request length invalid.


-11 Extended Status, request group number invalid.
-20 Full Report or Best Method Report, request length invalid.
-21 Full Report or Best Method Report, request group number
invalid.
-22 Full Report or Best Method Report, list number invalid.
-23 Full Report or Best Method Report, list too long for response
message.
-24 Full Report or Best Method Report, signal type in list invalid.
-25 Full Report or Best Method Report, logical and analog type
signals out of order in list.
-30 Command Point or Execute Point, list number invalid.
-31 Command Point or Execute Point, point number is not in list.
-32 Command Point or Execute Point, selected signal’s type invalid.
-33 Command Point or Execute Point, selected signal’s address
invalid.
-34 Command Point or Execute Point, selected signal is control
inhibited.
-35 Command Point or Execute Point, selected signal is a constant.
-36 Command Point or Execute Point, signal value store failed.
-40 Set Time of Day, message length invalid.
-41 Set Time of Day, group number invalid.
-50 Select Point, message length invalid.
-51 Select Point, group number invalid.
-60 Command Point, message length invalid.
-61 Command Point, group number invalid.
-70 Execute Point, point number different than Select’s point
number.
-71 Execute Point, message length invalid.
-72 Execute Point, group number invalid.
-73 Execute Point, no point number is selected.
-80 Invalid message type received.
-81 Received message is longer than the length of the longest valid
message.
-100 Receive failed due to system malfunction. Should not occur.
-101 Transmit time out waiting for Clear-To-Send or character to be
transmitted. Can occur if power fails during transmission or
interface with modem fails.
-102 Transmit failed due to system malfunction. Should not occur.

ACCOL II Custom Protocols Manual


Page TANO Slave-4
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave in a TANO network

Module Operation
An application where the process controller is polled by a supervisory
computer is shown in the following figure. During polling, the supervi-
sory device sends out a coded message that contains the address of the
desired node (001 to 255). When this message is received, the CIM
module is executed and communications are initiated.

In the example in the figure below, the CIM Module employs three
signal lists to send and receive data. The three signal lists correspond
to equivalent signal lists contained in the supervisory computer. The
three Lists are identified as INLIST_1, INLIST_2, and OUTLIST. The
two INLISTs store data that will be sent to the supervisory, while the
OUTLIST stores data received from the supervisory.

INLIST_1 stores a list of analog signals. These signals must have a


numerical range between -1.0 and +1.0 in order to be sent; a value
that exceeds the upper limit will be sent as +1.0.

ACCOL II Custom Protocols Manual


Page TANO Slave-5
TANO Slave Interface
ACCOL Module to allow 33XX to function as a slave node in a TANO Network

INLIST_2 stores accumulator values expressed as an analog number.


Signals in this list must be a positive integer between 0 and
16,777,215 counts. A value that is either too small or negative, will be
sent as a 0 (zero) value. A value that exceeds the upper limit will be
sent as the maximum value.

The OUTLIST contains data received from the master. These signals
may be analog values or logical states. Both analog and logical signals
may be placed in the same list, but they must be arranged in two
separate groupings with logical signals coming first.

In addition to polls and commands, the CIM also handles messages


that are required by the custom protocol but have no functional effect
at the module level. These messages do not affect any of the CIM’s
other signals.

ACCOL II Custom Protocols Manual


Page TANO Slave-6
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

The following steps are needed to implement Teledyne Geotech proto-


col. Each step is explained later in more detail in this section.

Step 1. Assign one port to be a Custom Port

Step 2. Include the Custom Module in one of the tasks and assign
each terminal as described in the section “Setting Up the
Custom Port”. Select the frequency of the Custom Module
based on the following guidelines:

The Custom Module validates structures and data consis-


tency, so it is important that it be run at least once. When it
runs, however, it shuts down communication. Because of
this, it is recommended that the module be run only when
there is a need to revalidate the data structures.

Initially, when a load is being generated, the module could,


for example, be run every 10 seconds. This could be contin-
ued until all errors are corrected in the custom protocol
structures and in data in the ACCOL load. Once the load is
error-free, the module could be run once a day to ensure
that custom protocol structures have not become inconsis-
tent.

In steps 3 and 4 below, you will be asked to create signals and data
arrays. In this section, we’ve assigned names to the signals and data
arrays for illustration purposes only. However, you may choose your
own signal names and data array numbers.

Step 3. Create two signal lists (in this section they will be called
TGLIST and FCLIST) and an analog array (TYPARRAY).
They will define the function codes and protocol parameters
for the controller. Also, create an analog array to collect
error codes.

Step 4. Depending on the function codes you wish to implement,


you may have to create other signal lists and data arrays.

ACCOL II Custom Protocols Manual


Page Teledyne-1
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Setting Up the Custom Port


Configuring the Custom Port is done on the Communications I/O
Menu (if you’re using the ACCOL Interactive Compiler) or the *Com-
munications section (if you’re using the ACCOL Workbench, or the
ACCOL II Batch Compiler). Only one port may be designated as the
Custom Port which implements Teledyne Geotech protocol. Use the
guidelines below to define port characteristics.

MODE - Set the mode to 5 to indicate Teledyne Geotech.

BAUD - Set the communications baud rate to one of the following: 110,
150, 300, 600, 1200, 2400, 4800, or 9600. Note: It is possible to change
the baud rate using the PORTSTATUS module.

CHARACTER LENGTH - Set this field to 8 bits.

STOP BITS - Enter 1 stop bit.

PARITY - This field should indicate no parity.

P1 - Set this to 1 for 8 byte protocol or 2 for 9 byte protocol.

P2 - This field is not applicable.

Note: The Portstatus Module may be used to change the BAUD rate
and P1 values, as desired. Other port characteristics should not be
changed using the Portstatus Module. See 'Portstatus' in the ACCOL
II Reference Manual (D4044) for details.

ACCOL II Custom Protocols Manual


Page Teledyne-2
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Module Terminals
Enter the following on the Custom Module terminals.

MODE Default: None, entry required


Format: Analog signal or constant
Input/Output: Input

must be 5.0 which indicates the Teledyne Geotech mode.

LIST Default: None, entry required


Format: Analog signal or constant
Input/Output: Input

must specify a valid signal list number. This list, referred to hereafter
as the TGLIST, contains parameters needed to implement the Tele-
dyne Geotech protocol. The contents of this signal list are explained
later in the section ‘The TGLIST Signal List’.

STATUS Default: None, entry is optional


Format: Analog signal
Input/Output: Output

indicates the communications status and assumes one of the codes


listed in Table 1.

ACCOL II Custom Protocols Manual


Page Teledyne-3
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 1 - Teledyne Geotech Protocol Status Messages


(Sent to signal on the STATUS terminal of Custom Module)

0 Last communication attempt was successful. No errors.

-1 The Status Signal can assume a value of -1 under three condi-


tions. Most likely, one or more errors have been detected and the
error codes are stored in the ERROR array. These error codes
range from -104 to 21 and are listed below.

If the Status Signal is -1 and ERROR array is 0, it means either


that Teledyne Geotech protocol is not supported in your firmware
or the hardware is not present for the custom port.

2 An attempt to write into a read only signal


3 Given function code is not implemented (i.e. TYPARRAY [FC + 1,
1] = 0)
4 Sub-Function number is > maximum no. of previous day totals
(i.e. > data array size)
5 Number of Function value is > Number of Functions limit
6 Sub-Function number specified for a function that is not a previ-
ous day totals function (i.e. is not a data array)
7 Invalid Activation code
8 Invalid Arm code for data write protection
9 Invalid Initiate code for data write protection
10 Invalid Arm code for control write protection
11 Invalid Initiate code for control write protection
12 Function code in Initiate message is not the same function as
previously received ARM function code
13 Initiate request not received within time limit
14 Arm and Initiate messages did not match
15 Direction bit in the received message is incorrect
16 One of the Date values is out of range
17 One of the Time values is out of range
18 Write request for Read Only data array or bad number specified
19 Data inconsistency: Function code specified in the Data Streaming
table is not defined in the TYPARRAY
20 Data Streaming table does not have enough active entries to

ACCOL II Custom Protocols Manual


Page Teledyne-4
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 1 - Status Messages (Continued)

match the requested number of functions


21 Function code requested to be entered in the Data Streaming
Table is not a valid function code (FC itself is the DSTABLE or is
not a good FC)

-2 Custom parameter MODE or PM1 has illegal value


-3 Custom module MODE does not match driver type (!= 5)
-4 TGLIST list number is greater than 255
-5 TGLIST is not defined in this load
-6 TGLIST is not fully populated (one or more signals are missing
from the TGLIST)
-7 Array Number for the ERROR array is greater than 255
-8 ERROR array address not found (No array is defined by this
number)
-9 ERROR array is not a two dimensional array
-10 ERROR array is defined as Read Only array
-11 RTU Station Address is not valid (out of range or 0)
-12 Array Number for the TYPARRAY is greater than 255
-13 TYPARRAY address not found (No array is defined by this
number)
-14 TYPARRAY dimension is not (MAXFCNO+1, 2)
-15 FCLIST list number is greater than 255
-16 FCLIST address not found (No list is defined by this number)
-17 FCLIST is not fully populated (Number of signals in FCLIST is
not equal to one more than the highest function code.)
-18 Data Status Byte Array Number is 255
-19 Data Status Byte Array is not dimensioned to [1, 8] single value
function code or to [n, 8] for the data array function code where
number of rows, n, does not match between analog and logical
arrays
-20 Data Status Byte Array is either not defined or is not a logical
array
-22 Status signal list number is greater than 255
-23 FC type is status signal list but the status signal list (STALIST) is
not defined
-24 Number of signals in the Status Signal List is NOT = 32

ACCOL II Custom Protocols Manual


Page Teledyne-5
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 1 - Status Messages (Continued)

-25 One of the signal in the Status Signal list is not a logical signal
-26 Control list number is greater than 255
-27 FC type is control list but the control list is not defined
-28 Number of signals in control list is NOT = 24
-29 One of the signal in the control list is not a logical signal
-30 Date and/or Time list number is greater than 255
-31 Date and/or Time signal list address not found (no signal is
defined by this number)
-32 Number of signals in the Date and/or Time list is not equal to 6
-33 One of the signal in the Date and/or Time signal list is not an
analog signal
-34 FC type is Previous Day Totals but the Previous Day Totals
array (Data Value Array) is not defined
-35 Previous Day Totals (Data Value) Array is not a one dimensional
array
-36 Previous Day Totals (Data Value) Array number is greater than
255
-37 Function Code Type value in TYPARRAY [FC+1, 1] is NOT
-38 Function Code Type value in TYPARRAY [FC+1, 1] indicates
this as an analog signal but it is not an analog signal
-39 Function Code Type value in TYPARRAY [FC+1, 1] indicates
this as a System Date and/or Time function but the signal in the
FCLIST is NOT = 0
-40 Function Code Type value in TYPARRAY [FC+1, 1] indicates
this as Control List but the DSLIST is also given (TYPARRAY
[FC+1, 2] is NOT = 0)
-41 Protection mode (PROTMODE) selection value is incorrect
-42 Data Aram (DARM) code value is incorrect
-43 Data Init/Act (DINITACT) code value is incorrect
-44 Control Arm (CARM) code value is incorrect
-45 Control Init/Act (CINITACT) code value is incorrect
-46 Echo mode (ECHOMODE) selection value is incorrect
-47 Arm/Initiate Delay (AIDELAY) value is incorrect
-48 Maximum Number of Functions (MAXNOF) limit value for data
streaming is incorrect
-49 Message byte 1 format type (FMTBYTE1) value is incorrect

ACCOL II Custom Protocols Manual


Page Teledyne-6
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 1 - Status Messages (Continued)

-50 Value for the POSNOF in TGLIST is 8


-51 Value for the POSSCODE in TGLIST is 4
-52 Value for the POSSUBF in TGLIST is 7
-53 Value for the CRCMODE in TGLIST is greater than 2
-54 Value for the Data Streaming Table (DSTABLE) no is >255
-55 Data Streaming Table (DSTABLE) address not found (no data
array is defined by this number)
-56 Data Streaming table (DSTABLE) is not a one dimensional array
-57 FC type is a DSTABLE entry (position in DSTABLE) number
but its value is greater than the size of the DSTABLE
-58 Func code referenced in the DSTABLE is not defined in the
TYPARRAY (TYPARRAY [(DSTABLE[n])+1,1] is = 0)
-59 The Signal defined in the TGLIST for the ASCMSG signal is not
a string signal
-60 The String Signal (ASCMSG) size is less then minimum required
size of 18 characters
-61 FC type is data array but the array is not defined
-62 Data array is not a one dimensional array
-63 Data array number is greater than 255

Errors detected during communication:

-101 Bad SVC parameter, FUNC code or XMIT length


-102 RTU Restart/Reload occurred
-103 Timed out while message receive was in progress
-104 Timed out while message xmit was in progress

ACCOL II Custom Protocols Manual


Page Teledyne-7
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

The TGLIST Signal List


The signals in the TGLIST signal list define certain parameters
needed by the Bristol controller to implement the protocol. Some
signals point to other lists and arrays.

As explained above in ‘Setting Up the Custom Module’, a signal list is


designated as the TGLIST by placing that signal list number on the
LIST terminal. TGLIST must contain 22 analog signals as defined
below. For easy reference, these signals have been given specific
names. However, you may name them what you wish as long as the
signals appear in the order given below.

Signal Name: Description

STATION.. This signal specifies the RTU station address as-


signed to the Bristol controller. If you’re using the 8
byte protocol, enter a number from 1 to 31 or from 1
to 63, depending on the format type of message byte 1
(see FMTBYTE1 discussed later). For the 9 byte
protocol, enter 1 to 1023. The default is 1.

ERROR.. This signal specifies the analog data array that will
collect error codes. The contents of this array, hereaf-
ter called the ERROR array, are explained later in
the section ‘Capturing Status and Error Codes.’

FCLIST.. This signal specifies the number of a signal list


(herein called the FCLIST.) Each entry in the list
corresponds to a Teledyne Geotech function code.
Together with the TYPARRAY (discussed later) they
define the function codes. The value of the signal
FCLIST.. can range from 1 to 255. Using FCLIST is
explained in more detail later.

TYPARRAY.. This signal identifies an array. Like FCLIST, each


row in TYPARRAY corresponds to a function code.

ACCOL II Custom Protocols Manual


Page Teledyne-8
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

The signal TYPARRAY.. must contain a valid data


array number from 1 to 255. The contents of the
TYPARRAY is explained later.

MAXFCNO.. This signal is equal to the largest valid function code.


For 8 byte protocol, enter a number from 1 to 1023.
For 9 byte protocol, enter a number from 1 to 4095.
(The default is 511.)

ECHOMODE.. This signal specifies the type of write message to echo


back to the Master Terminal Unit. (The default is 2)

1 = Do not echo back


2 = Echo back control and data writes
3 = Echo back only control writes
4 = Echo back only data writes

PROTMODE.. Protection mode for write requests (The default is 3.)

1 = No protection
2 = Prot for Control and Data write messages
3 = Prot for Control write messages
4 = Prot for Data write messages
5 = Arm/Initiate: Control and Data write messages
6 = Arm/Initiate: Control write messages
7 = Arm/Initiate: Data write messages

DARM.. Arm Protection Code for Data: 0-255 [H’00'-H’FF’]


(The default is 94 = H’5E’.)

DINITACT.. Initiate/Activation prot code for Data msgs: 0-255


[H’00'- H’FF’] (The default is 91 = H’5B’.)

CARM.. Arm Protection Code for Control messages: 0-255


[H’00'- H’FF’] (The default is 94 = H’5E’.)

CINITACT.. Initiate/Activation prot code for Control msgs: 0-255

ACCOL II Custom Protocols Manual


Page Teledyne-9
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

[H’00'-H’FF’] (The default is 91 = H’5B’.)

AIDELAY.. Maximum delay between ARM/INITIATE messages:


0-127 = seconds (The default is 30 seconds.) (Appli-
cable to the Arm/Initiate protection mode only)

MAXNOF.. Maximum number of functions in Data Streaming: 0-


255: 0 = one function, 1 = two functions, etc. (Default
is 15.)

LASTFUNC.. Output Signal: Last good function code processed.

TMSGRCVD.. Output Signal: Total number of messages received by


the controller

EMSGRCVD.. Output Signal: Total number of bad messages re-


ceived

FMTBYTE1.. Format Type of the message byte number 1: (Default


is 1.)

D7 D6 D5 D4 D3 D2 D1 D0

1= DIR R/W Station Address F/C

2= R/W Station Address F/C

3= DIR R/W Station Address

4= R/W Station Address F/C F/C

POSSCODE.. Position of the Act/Security code byte in message: 3,4


(The default is 3.)

ACCOL II Custom Protocols Manual


Page Teledyne-10
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

POSSUBF.. Position of the Sub Function code byte in message:


6,7 (The default is 6.)

POSNOF.. Position of the Number of Functions byte in message


3-8 (The default is 7.)

CRCMODE.. CRC mode for the reply messages (The default is 1.)

1 = Normal [X8 + X2 + X + 1]
2 = Ones’ Complement of [X8 + X2 + X + 1]

ASCMSG.. A string signal of minimum 18 characters length. The


custom communications driver translates all received
messages into an ASCII representation and over-
writes this string signal with the translated ASCII
message. Initialize the signal to all “.”. This string
signal is useful in debugging communications. Note:
It holds up to 18 characters of each message received,
even if the message was incomplete or incorrect.

ACCOL II Custom Protocols Manual


Page Teledyne-11
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Capturing Status and Error Codes


Once the ACCOL load is running in your controller, status and error
codes can be found in either the STATUS signal or the ERROR array.
As shown in the following figure, the STATUS signal is that signal
which has been assigned to the STATUS terminal of the Custom
Module. It will contain the latest code. If more than one error occurs,
this STATUS signal is set to -1 and status codes are written to the
ERROR array.

Status and Error Codes Are Contained in the Status Signal and the ERROR Array

The ERROR array is identified by the signal ERROR in the signal list
TGLIST. The ERROR array must be a read/write analog data array
that contains two columns. The number of rows is arbitrary. Both
columns in each row are needed to describe one status or error. The
first column will contain a number which identifies the row number in
the array TYPARRAY which is in error. (TYPARRAY is discussed
later.) The second column in the ERROR array contains the error code
(error and status codes are listed in Table 1.)

ACCOL II Custom Protocols Manual


Page Teledyne-12
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

There are two other conditions that will cause the STATUS signal to
assume a value of -1. If the STATUS signal is -1 and the ERROR array
is filled with zeros (that is, it contains no error codes), it means your
firmware does not support the Teledyne Geotech protocol or the
communications board that contains the Custom Port is not present.

The STATUS signal and ERROR array automatically return to zero


when the error is corrected, and the Custom Module executes again.

The FCLIST Signal List


Each signal in the signal list FCLIST corresponds to a Teledyne
Geotech function code. The first signal in the list corresponds to
function code 0. The second signal corresponds to function code 1, and
so forth.

The number of signals in FCLIST must be equal to the number of


function codes. Because function codes start with zero and signal lists
start with signal #1, the highest signal number will be one more than
the highest function code. For example, if function codes range from 0
to 50, the FCLIST signal list will have 51 signals.

The meaning of a signal in FCLIST depends on its function code. The


meaning of the function codes is derived from the entries in the
TYPARRAY data array. Signals in FCLIST can be used as a:

1. Data value
2. List number for a:
Status list
Control list
Date list
Time list
Date and time list
3. Data array number

Examples of FCLIST are included later. When a function code is not


used, enter a signal with a value of zero in FCLIST.

ACCOL II Custom Protocols Manual


Page Teledyne-13
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Setting Up TYPARRAY
TYPARRAY tells the controller how to respond to function codes it has
received, as well as the meaning of the function code (signal) defined
in the FCLIST. To create TYPARRAY, make a read only analog array
with two columns and as many rows as there are function codes. Then
assign the data array number to the TYPARRAY.. signal in the
TGLIST.

The number of rows in TYPARRAY must equal the number of function


codes. Like the FCLIST, the highest row number will be one more
than the highest function code since function codes begin with 0 and
row numbers begin with 1. For example, if function codes range from 0
to 511, row numbers in TYPARRAY will range from 1 to 512.

The first column in TYPARRAY will contain one of the codes shown in
Table 2 (later in this section). For example, codes 1 and 2 will permit
the Master Terminal Unit to read an integer value from the controller.
Codes 5 and 6 are used for floating point numbers. To allow the
Master Terminal Unit read only access, use code 1 or 5. Codes 2 an 6
are used for read and write access.

The second column in TYPARRAY may contain an array number when


arrays are needed to implement the function code. These arrays may
include the DSARRAY which defines the data status bits and the
DTARRAY data array which collects previous day totals.)

The following examples will show you how to use FCLIST, TYPAR-
RAY, and other ACCOL structures to implement Teledyne Geotech
protocol. In these examples, the following function codes have been
defined.

Function 1: Master Terminal Unit polls for differential pressure


Function 2: Master Terminal Unit changes setpoint value
Function 3: Digital outputs are set on controller

ACCOL II Custom Protocols Manual


Page Teledyne-14
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Example 1: Reading Signal Values

Let’s consider a simple case where the Master Transfer Unit polls for
data in the controller. Suppose in our sample system, the Bristol
controller will send back differential pressure data when the Master
Terminal Unit issues a function code 1.

The figure below is an outline of our ACCOL load. In the controller,


differential pressure is stored in the signal named DP.002. This signal
appears as the second signal in FCLIST since it is associated with
function code 1. (The first signal in the list corresponds to function
code 0.)

The second row of TYPARRAY is also associated with function code 1.


The number 1 in the first column indicates that the Master Terminal
Unit can read the signal named in the FCLIST and will interpret it as
an integer. (These codes are listed in Table 2.) The second column in
TYPARRAY is zero since no arrays are needed here.

Using FCLIST

ACCOL II Custom Protocols Manual


Page Teledyne-15
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Example 2: Changing Signal Values

The Master Terminal Unit can change setpoints and ACCOL signals in
the controller in a similar manner to that described above.

Suppose in our sample system, function 2 is issued by the Master


Terminal Unit to change signal SETPT.001 in the controller. The third
row in FCLIST must contain the name of the signal to be changed.
(SETPT.001 in our example shown in the previous figure.) In TYPAR-
RAY, the first column in the third row will contain 2 or 6, depending if
the value is an integer or floating point number. (Codes are described
in Table 2.) The second column on that same row in TYPARRAY is not
used and will be zero.

Example 3: Using A Control List

Besides holding a value for transmission, the signals in the FCLIST


can point to a signal list or data array. One application for using a
signal list would be to set digital output contacts on the controller from
the Master Terminal Unit. In this case, the signal list is called a
control list to show its special purpose. It is identical in structure to
other ACCOL signal lists.

The next figure contains an example of using a control list. The first
column in TYPARRAY must contain the number 10 and the second
column must be zero to operate digital output contacts. If this function
is defined in the system as function code 3, 10 is placed in the fourth
row.

In FCLIST, the fourth signal, DO.OUT.001 points to signal list #4, the
control list. The control list must be a read/write logical signal list
containing 24 signals. Each logical signal in that list will operate one
digital output contact when the Master Terminal Unit sends a function
code 3. A signal value of ON will close the contact. OFF will open the
contact. If some of the 24 signals are not needed, their value should be
set to OFF.

ACCOL II Custom Protocols Manual


Page Teledyne-16
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Using a Control List

Other ACCOL Structures


The sections above described the arrays ERROR and TYPARRAY, and
the signal list FCLIST. The following describes other ACCOL struc-
tures that you may need.

1. DTARRAY.. - Data Array (e.g. previous day totals): This array is


generally defined to collect previous day totals. It must have the
following characteristics:

Must be a read/write analog data array which contains one


column and any number of rows.

The function code that defines this data array can be of type
Integer or Floating Point.

It must have an associated data status byte logical array. This


array must have the same array number as DTARRAY, and must
have the characteristics of DSARRAY. (See DSARRAY)

2. DSARRAY.. - Data status byte array for logical status’ associated

ACCOL II Custom Protocols Manual


Page Teledyne-17
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

with the function code: This array defines the status bits associated
with the floating point data, integer data, status signal lists, control
signal lists, or data arrays (.e.g. previous day totals array). This
array has the following characteristics:

Must be a read/write logical array, if it is associated with an


analog array it must have the same array number.

If associated with a single value function code then dimension it


to [1, 8].

If associated with a data array (DTARRAY) then dimension it to


[n, 8], where n is the same as the number of rows for the data
array with which this status array is associated. The data value
in row n of DTARRAY will be associated with status information
in row n of DSARRAY.

Required only for the function codes that have the associated data
status’ (data status byte in the message) defined. Required for all
data types: 3, 4, 7, and 8.

Array elements [n, 1] to [n, 8] of DSARRAY are mapped to bits 7


to 0, respectively, of the data status byte in the response mes-
sage.

3. STALIST.. - Status associated with the status function code. This


list defines up to 32 statuses, or up to 16 statuses and correspond-
ing 16 latches. This list has following characteristics:

Read only logical signal list.

Number of signals = 32.

Required only for the function codes that represent the status/
latches signals

Possible to map status/latches to any logical signal as required.

Map signals that correspond to unused bits of the message bytes

ACCOL II Custom Protocols Manual


Page Teledyne-18
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave
4-7 (bytes 5-8 if nine byte protocol) to #OFF system signal.

4. CTRLIST.. - Controls associated with the Control Function codes.


This list defines up to 24 controls and has the following characteris-
tics:

Read/write logical signal list.

Number of signals = 24.

Required only for the function codes that represent the controls.

Map signals that correspond to unusual bits of the message bytes


5-7 (bytes 6-8 if nine byte protocol) to #OFF system signal.

5. DTLIST.. - Date/Time list: This list defines the six signals required
for an application (e.g. contract) date and time function code. This
list has following characteristics:

Number of signals = 6. All six signals are required. Unused


signals can be mapped to null signals.

Required only for the Date, Time, or Date/Time function codes.

6. DSTABLE.. - Data Streaming Table: This table (array) holds the


function codes that collectively make up the data streaming reply
in response to the MTU read request for the data streaming func-
tion code. (Note: It is not the function code but its data value that is
sent to the MTU).

Read/Write analog data array

A data array that stores the data streaming function codes

Undefined/Not used data streaming table entry is defaulted to


65535. (Internally the DSTABLE stores the desired FC as FC+1.
e.g. if the function code 300 was part of the data streaming set
then the entry in the DSTABLE reads 301)

Dimension the DSTABLE [n, 1]; where n = MAXNOF = maxi-

ACCOL II Custom Protocols Manual


Page Teledyne-19
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

mum number of messages that can be sent to the MTU in reply to


the Data Streaming request (generally 16)

7. DATEARRAY.. - Date/Time array is an array for storing


previous day total date or time values in the floating point
format. First the application converts the date or time to floating
point format as follows and then stores the resulting floating
point value in the appropriate row of this array.

FP DATE = (YEAR*10,000)+(MONTH*100)+DAY
FP TIME = (HOUR*10,000)+(MINUTES*100)+SECONDS

This array must be a read/write analog array. It should be of


dimension [n,1] where n= the required number of rows (e.g. n
should be 35 to save 35 previous day totals.)

ACCOL II Custom Protocols Manual


Page Teledyne-20
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 2 - Function Codes

Function Type Set 1st FCLIST Additional


Code of column element actions
Type Access TYPARRAY

Integer Read 1 Analog Assign


Value Only Signal data value

Integer Read/ 2 Analog Assign


Value Write Signal data value
if any

Integer Read 3 Data Create data


Data Only Array array
Array Number

Integer Read/ 4 Data Create a


Data Write Array read /write
Array Number array

Floating Read 5 Analog Assign


Point Only Signal data value
Value

Floating Read/ 6 Analog Assign


Point Write Signal data value
Value if any

Floating Read 7 Data Create data


Point Data Only Array array
Array Number

Floating Read/ 8 Data Create a


Point Data Write Array read/write
Array Number array

ACCOL II Custom Protocols Manual


Page Teledyne-21
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 2 - Function Codes (continued)

Function Type Set 1st FCLIST Additional


Code of column element actions
Type Access TYPARRAY

Logical Read 9 List Number Create a list


Status for the with 32 logical
status list: status signals
stalist

Logical Read/ 10 List number Create a list


Control Write of control with 24 logical
list: ctrlist control signals

System Read/ 11 0.0 None


Date/Time Write
combined

System Read/ 12 0.0 None


Date only Write

System Read/ 13 0.0 None


Time only Write

Application Read/ 14 List Number Create a list


Date/Time Write for the with 6 analog
combined Date/Time signals for YY
list:dtlist mmddhhmmss

Application Read/ 15 List Number Create a list


Date only Write for the with 6 analog
Date/Time signals for YY
list: dtlist mmddhhmmss

ACCOL II Custom Protocols Manual


Page Teledyne-22
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

Table 2 - Function Codes (continued)

Function Type Set 1st FCLIST Additional


Code of column element actions
Type Access TYPARRAY

Application Read/ 16 List Number Create a list


Time only Write for the with 6 analog
Date/Time signals for YY
list: dtlist mmddhhmmss

Data Read/ 17 0.0 Create a read/


Streaming Write write analog array
table *** DSTABLE [n, 1]

Data Read/ 18 Analog Assign the value


Streaming Write signal “m” (row no. in
table DSTABLE [n, 1];
entry *** 1

Date/Time Read 19 Analog Create Data


data array Only signal set Array X[n, 1]
to value of X

*** Assign the Array number for DSTABLE to TYPARRAY [n+1, 2]

ACCOL II Custom Protocols Manual


Page Teledyne-23
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

List Formats and Mapping to Message Bytes


1. STALIST - signals in the Status List and the message bytes:

2. CTRLIST - Signals in the control list and the message bytes:

3. DSARRAY - elements in the Data Status Array and the message


status byte:

ACCOL II Custom Protocols Manual


Page Teledyne-24
Teledyne Geotech Slave Interface
Custom Interface to allow 33XX to function as Teledyne Geotech Slave

- OR -

4. DTLIST - signals in the Date/Time List and message bytes:

ACCOL II Custom Protocols Manual


Page Teledyne-25
BLANK
BLANK PAGE
Manual
D4066
ACCOL II Custom Protocols May 2006

The information in this document is subject to change without notice. Every effort has
Emerson Process Management
been made to supply complete and accurate information. However, Bristol, Inc.
Bristol, Inc.
assumes no responsibility for any errors that may appear in this document.
1100 Buckingham Street
Watertown, CT 06795
If you have comments or questions regarding this manual, please direct them to your
Phone: +1 (860) 945-2262
local Bristol sales representative, or direct them to one of the addresses listed at left.
Fax: +1 (860) 945-2525
www.EmersonProcess.com/Bristol
Bristol, Inc. does not guarantee the accuracy, sufficiency or suitability of the software
delivered herewith. The Customer shall inspect and test such software and other
Emerson Electric Canada, Ltd.
materials to his/her satisfaction before using them with important data.
Bristol Canada
6338 Viscount Rd.
There are no warranties, expressed or implied, including those of merchantability and
Mississauga, Ont. L4V 1H3
fitness for a particular purpose, concerning the software and other materials delivered
Canada
herewith.
Phone: 905-362-0880
Fax: 905-362-0882
ACCOL is a trademark and Bristol is a registered trademark of Bristol Inc.
www.EmersonProcess.com/Bristol
The Emerson logo is a trade mark and service mark of Emerson Electric Co. Other
Emerson Process Management
trademarks or copyrighted products mentioned in this document are for information
BBI, S.A. de C.V.
only, and belong to their respective companies, or trademark holders.
Homero No. 1343, 3er Piso
Col. Morales Polanco
11540 Mexico, D.F.
Mexico
Phone: (52-55)-52-81-81-12
Fax: (52-55)-52-81-81-09
www.EmersonProcess.com/Bristol

Emerson Process Management


Bristol Babcock, Ltd.
Blackpole Road
Worcester, WR3 8YB
United Kingdom
Phone: +44 1905 856950
Fax: +44 1905 856969
www.EmersonProcess.com/Bristol

Emerson Process Management


Bristol, Inc.
22 Portofino Crescent,
Grand Canals Bunbury, Western Australia 6230
Mail to: PO Box 1987 (zip 6231)
Phone: +61 (8) 9725-2355
Fax: +61 (8) 8 9725-2955
www.EmersonProcess.com/Bristol

You might also like