DCS; Industrial control system
NameDescriptionContent
NEW CENTER
Current Location:

WATLOWCLS200, MLS300, and CAS200 Communications Specification

From:WATLOW | Author:LIAO | Time :2025-08-25 | 507 Browse: | Share:

This reference guide is designed to help applications software

programmers with the following tasks:

• Interface to Watlow Anafaze MLS300, CLS200, MLS and CLS controllers, and the CAS200 and CAS scanners via serial communications.

• Modify the communications Anafaze protocol driver in the Watlow 

Anafaze Communications Driver Kit. (If you have the communications driver kit, you don’t need to read this manual unless you want 

to modify the communications driver.)

In This Manual

The following sections are included in this guide: 

Chapter 1: Anafaze/AB Protocol. Gives an overview and explanation

of the Anafaze/Allen Bradley communications protocol.

Chapter 2: Modbus-RTU Protocol. Gives an overview and

explanation of the Modbus-RTU communications protocol

Chapters 1 and 2: Data Table Summary. Provides standard controller

data table maps for the parameters (one for each protocol).

Chapter 3: Parameters Description. Describes each parameter.

Appendix A: Communications driver.

Glossary: Explanation of commonly used terms and acronyms.

NOTE

This reference guide is not a tutorial. It does not explain

how to use the controller; it is not a programming reference; it also does not explain PID control, alarms, linear

scaling, or other topics that are explained in detail in the

controller manuals. If you need additional information

about a topic covered in this reference guide, consult the

documentation included with your controller.

Chapter 1: ANAFAZE/AB Protocol

This section explains the ANAFAZE/Allen Bradley protocol used in

Watlow Anafaze MLS, CLS, and CAS devices. These controllers

operate on serial communications links (EIA/TIA-232 or EIA-TIA-485)

at either 2400 or 9600 baud. They use 8 data bits, one or 2 stop bits, and

no parity.

Protocol Syntax

The controllers use a half-duplex (master-slave) protocol to interface to

high-level software. The host software is considered the “master” and

the controller is considered the “slave.” In other words, the software can

request information from the controller or download information to the

controller. The controller can only respond to communications

transactions initiated by the host software. The controller cannot initiate

communications.

The controller and host software communicate by sending and receiving

information in a “packet” format. A packet consists of a sequence of

bytes in a specific format; it can be as large as 256 bytes of data. (For

more information about packets, see the Packet Format section later in

this chapter.)

The numbers in the packet are sent in binary format. However, our

examples show bytes in hexadecimal format.

Control Codes

Watlow Anafaze abbreviates control codes this way

Chapter 1: ANAFAZE/AB Protocol

Transaction Sequence

Here are the four steps in a transaction between the host software and

the controller. The following example shows the transaction as an

exchange of packets. The example also assumes that there are no

communication errors in the exchange.

(1) The host software sends a packet that contains a read command or 

write command.

(2) The controller sends a DLE ACK to the host software.

(3) The host software receives a reply packet from the controller. 

(4) The host software sends a DLE ACK.

The following flowchart shows a transaction with no error handling.

NOTE

Due to the difference between the processing speeds of the

controller and PCs, it may be necessary to delay the computer's acknowledgement (ACK) in order for the controller

to receive it. A delay of 200 ms should suffice

Packet Format

Messages are transmitted in the form of packets. Command and reply

packets specify the source and destination addresses, whether to read or

write, the block of data to read or write, etc.

A packet contains a sequence of binary bytes formatted this way:

Sending Control Codes

To send a control code, send a DLE before the control code to

distinguish it from data.

Sending a DLE as Data

When you send a byte with an x10, (a DLE), the controller and software

interpret it as a command. Therefore, to send a DLE as data, send

another DLE immediately before it (DLE DLE). 

Codes in a Packet

This section describes the sequence of bytes in a packet, in the order the

host software or controller sends them.

DLE STX

• The DLE STX byte signals the beginning of a transmission. Every 

packet of information starts with the control codes DLE STX. 

DST

• The DST byte is the address of the destination device (usually a controller; the first Watlow Anafaze controller is at x08).

NOTE

When host software communicates with an MLS, a CLS, or

a CAS in ANAFAZE or AB protocol, it does not send the

controller’s actual address. Since the protocol reserves

device addresses 0 to 7, the host software sends the value

(controller address + 7), instead of the actual device

address.

SRC

• The SRC byte is the device address of the packet’s source. The host 

software is usually designated address x00.

DLE STX DLE ETX BCC/CRC

DST SRC CMD STS TNSL TNSH ADDL ADDH DAT

CMD

• The CMD byte indicates the command that the host software sends 

to the controller. The software sends a read (x01) or write (x08). 

When the controller replies, it returns the read or write command 

with the 7th bit set—in other words, it sends an x41 or x48.

STS (The Status Byte)

• The controller uses the status byte, or STS, to return general status 

and error flags to the host software. (The controller ignores the status 

byte in the host software's command packet.) The next table shows 

status byte values and definitions. 

• An “x” in the status bytes below indicates that the associated nibble 

may contain additional information. In most cases, the status byte is 

composed of two independent nibbles. Each nibble is independent 

so that two codes can return at once. For example, status code F1 

indicates that data has changed (Fx) and the controller is being 

updated through the front panel (x1).

Status

in Hex Description

00 The controller has nothing to report, or AB protocol is selected.

01 Access denied for editing. The controller is being updated through the 

front panel.

02 AIM Comm failure.

A0 A controller reset occurred.

Cx The controller received a command that was not a block read or block 

write. (Command Error)

Dx The block write command attempted to write beyond a particular parameter block boundary, or the host software attempted to access a data table 

block that does not exist. (Data Boundary Error)

Ex The Alarm_Status variable has changed. The software should query the 

alarm status block to determine the particular alarm flag that changed.

Fx The controller altered shared data, either internally (from the firmware) or 

externally (from the keyboard). The host software should read the Data 

Changed Register to determine which data has been altered and update 

its own run-time memory

TNSL

• Least significant byte of the transaction number. This is the first half 

of a “message stamp.”

• The controller sends back the TNSL and TNSH exactly as it received 

them, so host software can use the TNSL and TNSH bytes to keep 

track of message packets.

TNSH 

• Most significant byte of the transaction number. This is the second 

half of the “message stamp.” 

ADDL

• The low byte of the beginning data table address of the block of data 

to read or write.

ADDH

• The high byte of the beginning data table address of the block of data 

to read or write.

DATA

• The new values to be set with a write command, or the requested data 

in a response to a read command.

DLE ETX

• Every packet of information must end with the codes DLE ETX. 

These codes signal the end of a transmission.

BCC or CRC

• Communications packets include a one- or two-byte error check at 

the end of the packet. There are two error check methods: Block 

Check Character (BCC), which requires 1 byte, and Cyclic Redundancy Check (CRC), which requires 2 bytes.

Watlow Anafaze recommends that you use the default error check

method, BCC. It is easier to implement than CRC, and it is acceptable

for most applications.

Select one error check method and configure both software and

controller for that method, or they will be unable to communicate.

The error check methods work this way:

Block Check Character (BCC)

BCC checks the accuracy of each message packet transmission. It

provides a medium level of security. The BCC is the 2’s complement of

the 8-bit sum (modulo-256 arithmetic sum) of the data bytes between

the DLE STX and the DLE ETX. (1’s complement +1)

• BCC does not detect transposed bytes in a packet. 

• BCC cannot detect inserted or deleted 0 values in a packet.

• If you have sent an x10 as data (by sending DLE x10) only one of the 

DLE data bytes is included in the BCC’s sum (the DLE = x10 also).

For instance, the block read example shown in the examples section, 

adds x08 00 01 00 00 80 02 10. Note that the x10 representing DLE 

has been left out of the calculation. The sum should come to x9B.

Cyclic Redundancy Check (CRC)

CRC is a more secure error check method than BCC. It provides a very

high level of data security. It can detect:

• All single-bit and double-bit errors.

• All errors of odd numbers of bits.

• All burst errors of 16 bits or less.

• 99.997% of 17-bit error bursts.

• 99.998% of 18-bit and larger error bursts.

The CRC is calculated using the value of the data bytes and the ETX

byte. At the start of each message packet, the transmitter must clear a

16-bit CRC register. 

When a byte is transmitted, it is exclusive-ORed with the right 8 bits of

the CRC register and the result is transferred to the right 8 bits of the

CRC register. The CRC register is then shifted right 8 times by inserting

0’s on the left. 

Each time a 1 is shifted out on the right, the CRC register is ExclusiveORed with the constant value xA001. After the ETX value is

transmitted, the CRC value is sent, least significant byte (LSB) first.

Below is a structured English procedure from AB Manual:

data_byte = all application layer data, ETX

CLEAR CRC_REGISTER

FOR each data_byte

GET data_byte

XOR (data_byte, right eight bits of CRC_REGISTER)

PLACE RESULT in right eight bits of CRC_REGISTER

DO 8 times

Shift bit right, shift in 0 at left

IF bit shifted =1

XOR (CONSTANT, CRC_REGISTER)

PLACE RESULT in CRC_REGISTER

END IF

END DO

END FOR

TRANSMIT CRC_REGISTER as 2-byte CRC field

The host software sends two kinds of commands: block reads and block

writes. This section shows examples of both commands.

NOTE

If you read data from a loop set to SKIP, the controller will

send an empty packet for that loop.

This section does not show how to calculate the error check value

included with every packet. For help calculating the error check value,

see the section on BCC or CRC earlier in this chapter.

Block Read

This example shows the block read command the host software sends,

the controller’s responses, and the software's acknowledgment. 

Situation: Read process variables for loops 1 to 8. 

• 8 process variables 2 bytes each = 16 bytes from data table address 

x0280.

• Character values are represented in hex. 

• The sender is device address 0. 

• The destination is device address 8 (controller address 1). 

• The software sends transaction number 00

Data for a Write Command

For a block write command, the block contains the bytes to write (up to

242 bytes of data). The controller sends back a message packet without

data.

Two-Byte Data Types

For two-byte data types, like process variable and setpoint, the

controller or host software sends the data in two-byte pairs with the least

significant byte first.

Figuring Block Size

In order to read parameter values, you must know how many bytes to

request. Parameter values are stored contiguously such that the setpoints

for all the loops are stored together and in loop number order. For

example, to read the deviation alarm deadband value for loops one to

five, you would read five bytes starting at x05A0. Some parameters,

such as setpoint, require two bytes of memory to store. So, for example,

if you want to read the setpoint for four loops, you must read eight

bytes.

Figure total block size in bytes for most loop parameters this way (do

not forget the pulse loop):

(Data Size) * (Number of Loops)

Some parameters have values for both heat and cool. Figure block size

for such a parameter this way:

2 * (Data Size) * (Number of Loops)

One exception is the units for each loop. Figure the data size for the

units this way:

3 * (Number of Loops)

Parameters that are not loop parameters (like system status, digital

inputs, or digital outputs) have specific data sizes. These data sizes are

listed in the data table in the next section

Anafaze/AB Data Table Summary

Each address holds one byte of data. Each parameter value requires one

or two addresses to store depending on the type of data. The table below

indicates the number of bytes for each data type. The data type for each

parameter is indicated in the tables on the following pages.

Because each loop is individually configurable, the number of instances

of many parameters depends on the number of loops in the controller.

Therefore, the number of bytes for these parameters is listed in the

tables on the following pages in terms of the number of loops in the

controller.

The storage requirements for some parameters depend on the number of

digital inputs or digital outputs in the controller (MAX_DIGIN_BYTES

and MAX_DIGOUT_BYTES). The storage of ramp-soak profile

parameters depend on the number of profiles (MAX_RSP), the number

of segments per profile (MAX_SEG), the number of triggers per

segment (MAX_TRIG) and the number of events per segment

(MAX_EVENT).

The table below shows the values for each of these factors. Use them to

calculate the number of bytes for each parameter.

Data Type and Symbol Data Size

Unsigned char (UC) 1 byte

Signed char (SC) 1 byte

Unsigned int (UI) 2 bytes

Signed int (SI) 2 bytes

Ordering of Heat and Cool Channel Parameters

For parameters that have both heat and cool settings the heat values are

stored in the first registers and the cool values are stored in the registers

starting at the listed address plus MAX_CH.

NOTE

Data table parameters 46 to 60 and 100 are ramp-soak

parameters. They are only used in controllers with the

ramp-soak option. Parameters 81 to 95 are enhanced features and only available in controllers with the enhanced

features option.

Ordering of Ramp-Soak Profile Parameters

Ramp-soak profile parameters are ordered first by profile, then by

segment where applicable. So, for example, the first eight bytes of the

Ready Events parameter are the ready segment event states for the first

profile (profile A) and the next eight bytes are for profile B and so on. In

the case of the segment triggers, the first byte contains the first trigger

setting for the first segment of profile A, the second byte contains the

settings for the second trigger for the first segment of profile A, the third

byte contains the settings for the first trigger for the second segment of

profile A and so on.

Anafaze/AB Protocol Data Table

Number Description Address 

in Hex Type Number of Bytes

0 Proportional Band/Gain 0020 UC MAX_CH * 2

1 Derivative Term 0060 UC MAX_CH * 2

2 Integral Term 00A0 UI MAX_CH * 4

3 Input Type 0120 UC MAX_CH

4 Output Type 0180 UC MAX_CH * 2

5 Setpoint 01C0 SI MAX_CH * 2

6 Process Variable 0280 SI MAX_CH * 2

7 Output Filter 0340 UC MAX_CH * 2

8 Output Value 0380 UI MAX_CH * 4

9 High Process Alarm Setpoint 0400 SI MAX_CH * 2

10 Low Process Alarm Setpoint 04C0 SI MAX_CH * 2

11 Deviation Alarm Band Value 05A0 UC MAX_CH 

12 Alarm Deadband 0600 UC MAX_CH

13 Alarm Status 0660 UI MAX_CH * 2

14 Not used 06A0 128


  • UNIOP MKDR-04-0021 Monochrome LCD (with Contrast Control)
  • UNIOP eTOP03-0046 Monochrome LCD (STN)
  • UNIOP MKDR-16-TA-0045 HMI TOUCH SCREEN
  • UNIOP Operator Interface Display MD02R-04-0042
  • UniOP Display Screen eTOP20C-0050 eTOP20C
  • UniOp eTOP05-0045 eTOP05. eTOP05P Operator Interface Touch Panel
  • UNIOP ETOP11-0050 HMI 5.6Color Operator Interface Touch Panel
  • UniOp eTOP306 Panel
  • UniOP CP04F-04-0045 Human Machine Interface
  • UniOP eTOP308 ETOP308U301 HMI Panel
  • UniOP MD00R-02-0045 Ultra-Compact Industrial Operator Terminal
  • UniOP ePALM10-0061 Handheld Robot Trainer
  • ​UniOP CP05R-04-0045 High-Value Character Operator Terminal
  • UniOP CP01R-04. CP05R-04 and CP01F-02
  • Uniop MD02R-04 - MD02R-04-0045 Industrial PLC Workstation
  • Uniop Cp02r-04-0021 Operating Interface
  • UniOP CP04F-04-1945 Rugged VFD Operator Interface
  • UniOP ECT-16-0045 High-Performance Color Touchscreen HMI
  • UniOP ERT-16-0042 High-Durability Industrial Operator Interface
  • UniOP ePAD04-0046 Compact Industrial Interface
  • UniOP BKDR-16 High-Reliability Monochrome Operator Interface
  • UniOP MKDR-04-004 Control Unit Panel
  • UniOP eTOP515 Series 500 HMI
  • Woodward 8200-1300 High-Precision 505D Steam Turbine Controller
  • ABB PFSK138 3BSE016323R3 High-Performance Digital Board Connection Unit
  • ABB PFSK163 3BSE000435R1 High-Performance Interface Module
  • UniOP ETT-VGA Human-Machine Interface (HMI) terminal
  • ABB PFSK165 3BSE027778R1 VP74201-933CW07 Signal Processing and Communication Unit
  • ABB PFSK164 3BSE021180R1 Tension sensor module and processing board
  • ABB 3BSE006505R1 PFSK 142 Control board
  • ABB PFSK160A 3BSE009514R1 Regulated High-Capacity 24V DC
  • ABB PFSK162 3BSE015088R1 High-performance signal conditioning and processing board
  • ABB PFSK152 3BSE018877R1 Signal concentrator board
  • ALSTOM PIB1201A 3BEC0067 Power Interface Board (PIB)
  • ALSTOM PIB310 3BHB0190 Adapter Module / Printed Circuit Board (PCB)
  • ALSTOM PIB102A 3BEB0180 Communication Card / PCB Module
  • ALSTOM BGTR8HE 24491276A1004 High-Frequency Power Controller / Rack Module
  • ALSTOM AM164 Analog Output / Remote I/O
  • ALSTOM UT150-1 PID temperature controller / process control board
  • ALSTOM AL132 AL132A STO0982E01 Control Motherboard / CPU Card
  • ALSTOM AS111-1 Analog Output (AO) Module
  • ALSTOM AH116-2 Servo Drive / Control Module
  • ALSTOM V4555724-0100 Electromechanical Contactor /Power Switch
  • WATLOW 999D,999A Digital/Analog Dual-Channel Base Unit
  • WATLOW 998D 998A Digital/Analog Dual-Channel Base Unit
  • WATLOW 999D-11FF-AARG Dual-channel digital unit with universal process outputs
  • WATLOW Wattlo 998D-22KK-ARRG is a high-performance dual-channel digital controller.
  • WATLOW 996A Single-loop controller
  • WATLOW 996D-11CC-CUGR Single-loop digital controller
  • WATLOW 996D Single-Channel Digital Temperature/Process Controller
  • WATLOW 997D Digital Dual-Channel Base Unit
  • WATLOW 997A Analog Dual-Channel Variant
  • WATLOW DAC / SDAC,Digital-to-Analog / Serial-to-Analog Modules
  • WATLOW MLS300-OIT Operator Interface Terminal (Keypad/Display),Discontinued
  • WATLOW CIM300 Communication Interface Module (EIA-232/485),Discontinued
  • WATLOW MLS300-CIM Control Interface Module (Comm Bridge),Discontinued
  • WATLOW MLS300-AIM,Analog Input Module (16-channel expansion),Discontinued
  • WATLOW MLS300-PM Processor Module (Central CPU),Discontinued
  • Watlow MLS332 32-Loop Processor Base Unit,Discontinued
  • Watlow MLS316 Multi-loop thermal controller
  • Watlow CLS208 C10000CP high-performance, 8-loop PID temperature controller
  • Watlow CAS 16CLS/CAS Multi-loop temperature controller
  • HIMA K9212 Module Overview
  • ABB CP555 1SBP260179R1001 Product Overview
  • Watlow MLS300 Multi-Loop Control System
  • Watlow 997D-11CC-JURG SERIES 997 Vertical Limit Control
  • Watlow CLS216 | Multi-Loop PID Temperature Controller
  • Watlow NLS300-CIM316 Multi-Loop Control Interface Module
  • Watlow PPC-TB50 (30280-00) Precision Power Controller
  • ABB PPD113-B03-23-111615 high-performance Processor / Controller Module
  • ABB MB510 3BSE002540R1 Control System Accessory
  • ABB 3BSE000863R1 SR511 Power Supply
  • ABB 3BSE014227R1 RF533 Central Unit
  • ABB PDD500A101 high-performance Drive Board / Processor Module
  • ABB PPD512A10-150000 high-performance Controller/Processor Module
  • ABB 500BIO01 1MRB150005R0001 1MRB200060/E Binary Input/Output (Combined)
  • ABB 500BIM01-1MRB160024R0002 Binary (Digital) Input Module
  • ABB 500PSM03 1MRB150038R1 894-030375D 136-011100H Power Supply Module
  • ABB 500PSM02 1MRB150015R1 AD-272.100.20-01 AZ:C Power Supply Module
  • ABB 500AIM02 1MRB150022R001 1HDF 930412 X010 Analog Input Module (AIM)
  • ABB 500MTM02 1MRB150020R0712 1HDF 930512 X010 Multivariable Transmitter Module
  • ABB 500SCM01 1MRB150004R0001 1MRB200059/C Signal Regulation and Monitoring Module
  • ABB 500TRM02 1MRB150011R0001 Terminal/Input-Output Board
  • ABB 500CPU03 1HDF700003R5122 Central Processing Unit module
  • ABB 500PB101 1MRB178009R0001 1MRB200064/C Communication Module
  • ABB 500CSP04 HE401314/0002 1MRB150051R2 Control and System Processing Module
  • ABB 500CMP04 HE401314/0001 1MRB150051R1 Communication motherboard
  • ABB 500TTM02 1MB150021R01161HF930712X010 Temperature / Logic Interface Module
  • ABB DSAO110 57120001-AT/1 Analog Output 4 Channels
  • ABB UNS4684A-P,V.1 HIEE305114R00R0001 Overvoltage protection (OVP) and pulse coupling panel (PCP) module
  • ABB PVD164A2059 3BHE014340R2059 high-performance Excitation Processor Module
  • ABB PFCL201CE 10KN 3BSX105983-100 Pressductor® Curved Plate Force Sensor
  • ABB 500SCM01 1MRB200059/C 1MRB15004R0001 Control Module
  • ABB 500CPU05 1MRB150081R1/E Central Processing Unit module
  • ABB 500CIM05 1MRB150077R1/B Communication Interface Module
  • ABB 500BIO01 1MRB150005R1/J high-performance Binary Input/Output (BIO) module
  • Metso D201379L ACN RT Controller / Processor
  • Metso D201505 (ACN C20 Controller)
  • Metso D201463 high-performance Network Controller / Processor Module
  • Metso D201505R (ACN C20 Series)
  • Metso D201380 CPU / Processor Module
  • Metso D202275 ACN Communication / Gateway Node
  • Metso D201376 ACN RT (Real-Time) Controller Node
  • METSO D200175 Application Control Node (ACN) Proc
  • METSO D200137 high-performance controller module
  • METSO IOP111 Analog Input Module
  • METSO IOP353 Digital Output Module
  • METSO IOP304 high-performance Thermocouple (TC) / Millivolt (mV) Input Module
  • METSO PDP601 high-performance Distributed Processing Unit
  • METSO IOP345 Digital Input/Output Module
  • METSO DPU-MR high-performance Distributed Processing Unit
  • METSO IOP114 high-precision Analog Input Module
  • METSO IOT300A Terminal substrate / Interface module
  • Metso R/I-TB 9139041 nput/output (I/O) interface module
  • YOKOGAWA YS1700-100/A06/A31 Programmable Logic Controller
  • YOKOGAWA PW482-10 AC Input Power Module
  • YOKOGAWA SCP451-11 CPU
  • YOKOGAWA SR1030B62 high-precision Power Supply Unit (PSU)
  • YOKOGAWA AAI143-H50 high-density Analog Input Module
  • YOKOGAWA AMM42 high-density Analog Input/Output Module
  • YOKOGAWA SDV144-S63 Digital input module
  • YOKOGAWA AIP830-111 Operating keyboard
  • YOKOGAWA S9361DH-00 High-performance terminal board module
  • YOKOGAWA ATK4A-00 S1 Terminal block adapter
  • YOKOGAWA PW701 Power Supply Module
  • YOKOGAWA AVR10D-A22010 Bus Converter
  • YOKOGAWA PROFIBUS-DP communication module
  • YOKOGAWA AIP578 AIP591 Optical link transceiver module