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     bsupport@bristolbabcock.com
software)                                   (860) 945-2286
Network 3000 hardware except for            (860) 945-2502     bsupport@bristolbabcock.com
TeleFlow series
TeleFlow series (3530-xx)                   (860) 945-8604.    bsupport@bristolbabcock.com
ACCOL, Open BSI, UOI, all other             (860) 945-2286     bsupport@bristolbabcock.com
software except for ControlWave and
OE.
OpenEnterprise (OE) software                (860) 945-3865     scada@bristolbabcock.com
Radio telemetry services (interfacing       (407) 629-9463     bsupport@bristolbabcock.com
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