M1550 PLC User’s Reference Manual

Revised: September 28, 2007

Copyright © 2007 Micro-Comm, Inc.

Table of Contents Introduction.....................................................................................................................................................3 Specifications and Sales Information..............................................................................................................4 Sample Wiring Diagram.................................................................................................................................6 Installation Requirements.............................................................................................................................15 Lithium Battery Replacement.......................................................................................................................16 Expansion I/O Module Setup........................................................................................................................17 Display Module Operation............................................................................................................................18 Allen-Bradley DF1 and Modbus Protocol Support......................................................................................19 M1550 Configuration.................................................................................................................................... 20 Program Installation................................................................................................................................ 20 RTU Information Screen......................................................................................................................... 21 Configuration Parameters........................................................................................................................22 Analog Labels and Scaling Factors......................................................................................................... 26 Output Timer Labels...............................................................................................................................27 Stop/Start Setpoint Labels....................................................................................................................... 28 X Variable Labels.................................................................................................................................... 29 Discrete I/O Labels.................................................................................................................................30 User Memory Screens............................................................................................................................. 31 User Memory Database Editor................................................................................................................32 RTU Script Language Editor.................................................................................................................. 33 Revision Notes Editor.............................................................................................................................34 Data Table Viewer...................................................................................................................................35 Display Module Emulator....................................................................................................................... 36 Debug Terminal....................................................................................................................................... 37 Script Language Syntax................................................................................................................................ 38 Personality Module Memory Map................................................................................................................57 Station and Group Data Structure................................................................................................................. 58 Station Data Flow Diagram.......................................................................................................................... 59 Station Address Table....................................................................................................................................60 RTU32 Protocol Message Types................................................................................................................... 61 RTU Protocol Message Types....................................................................................................................... 62 Control Group Flowchart.............................................................................................................................. 63 Message Type Table......................................................................................................................................64

Introduction This manual is intended to be the source of all information concerning the Micro-Comm M1550 PLC. The M1550 is a fifth-generation Micro-Comm controller similar to the M1500 PLC, but with a faster processor, more memory, ethernet port and an additional COM4 port. I/O capabilities: (4) (4) (8) (4) (2) (2) (3) (1) (1)

Form C Relay Outputs Open-collector outputs (COM1 pins used for radio switching) Discrete inputs (contact closure), (2) high speed pulse, (6) low speed pulse Analog Inputs (12bit, 0-20mA or 0-5volt dip switch selectable) Additional 12bit analog inputs, Temperature, System Voltage Analog Outputs (0-20mA) RS-232 / RS-485 communication ports - COM1 25pin port for radio cable - COM2 9pin port normally used for the display module and programming - COM4 9pin port RS-232/RS-485 Ethernet 10/100baseT (RJ-45) port RS-485 communication port - COM3 is a 4-wire RS-485 port for I/O modules or PLC communication

-3-

Specifications and Sales Information

PROGRAMMABLE LOGIC CONTROLLER (PLC)

MODEL M1550 FULLY PROGRAMMABLE WITH PLUG-IN MEMORY MODULE MICRO-COMM, MODBUS RTU AND ALLEN-BRADLEY DF1 PROTOCOLS OPTIONAL FRONT PANEL DISPLAY & EXPANDABLE I/O RADIO, PHONE LINE, & FIBER OPTIC COMMUNICATIONS SIMULTANEOUS RTU-RTU & CTU-RTU COMMUNICATIONS PLUG-IN TERMINAL BLOCKS

T

he M1550 PLC is a reliable, fullfeatured Programmable Logic Controller. It is a “smart” unit providing both programmability and interchangeability through a plug-in memory module. As an integrated component of a Supervisory Control and Data Acquisition System (SCADA), the M1550 provides input and output (I/O) monitoring and control with simultaneous “distributed” (RTU to RTU) and “central” (CTU to RTU) type control operations. Its universal communications interface can provide robust control and data transfer via radio, Ethernet, dedicated line, phone line, and fiber optic communication media. APPLICATIONS

SCADA Systems: Water Distribution Control and Management Waste Water Control and Monitoring Golf Course Irrigation Agricultural Irrigation Gas and Oil Monitoring Electrical Distribution Monitoring Local Control: Water Booster Pump Stations Sewage Lift Stations Constant and Variable Speed Pump Stations Metering Stations Water and Waste Water Treatment Plants

FEATURES

ORDER INFORMATION

I/O • 4 Form C Relay Outputs • 4 Open Collector Outputs • 8 Optically Isolated Discrete Inputs (2 are also High Speed Pulse Inputs) • 4 Analog Inputs, 0-5V or 0-20mA • 2 Additional On-Board Sensor Analog Inputs Box Temperature, System Voltage • 2 Analog Outputs, 0-20mA • 2 High-Speed pulse inputs (uses DI7/DI8)

Part# L61-L17 L61-L17A L61-L17B

Communications • COM1, Radio Port, RS-232 and RF signals • COM2, Display,/Programming, RS-232 • COM3, RS-485, Expansion I/O • COM4, RS-232/RS-485 • COM5, Ethernet, 100Base-TX • RF MODEM, 0-300, 600, or 1200 BAUD Power Source • 12 VDC Power Input -4-

0-300 baud FSK modem 600 baud FSK modem 1200 baud FSK modem

Micro-Comm Automation has been providing process control solutions for more than 25 years. Call us at (913) 390-4500 to place your order or to speak to a sales and service representative. Or, visit us online at www.micro-comm-inc.com

M1550 PLC I/O • 4 Form C Relay Outputs, 4A @ 250VAC General Use (4A @ 30VDC Resistive) B300 Pilot Duty, Relay contact to coil isolation 4000Vrms • 4 Open Collector Outputs, 100mA @ 12VDC (COM1 pins) Internal clamping diode to 12V • 8 Optically Isolated Discrete Inputs, Dry Contact or Open Collector to GND, Optically Isolated, 4mA Wetting Current, 12VDC Wetting Voltage 2 High Speed Pulse Inputs (inputs DI7 and DI8) 0-1000Hz, 50% duty cycle, contact closure or open collector to GND 6 Low Speed pulse inputs (inputs DI1-DI6) 0-50Hz, 50% duty cycle, contact closure or open collector to GND • 4 Analog Inputs, 12bit, 0-5V or 0-20mA, 0.1% accuracy, 0.001%/degC temp. coefficient, +/- 24V over voltage on any one Analog Input • 2 Additional On-Board Sensor Analog Inputs, 12bit Box Temperature, 0-150°F System Voltage, 0-25.5V • 2 Analog Outputs, 0-20mA, 12 bit, 0.25% accuracy 900 ohm maximum loop resistance CPU AND MEMORY • 32bit MCU running 25MHz • 1MB FLASH, Application Program • 1MB RAM, Data • 9MB Serial FLASH, Configuration

DIMENSIONS • Height 9.75” • Width 6.85” • Depth 3.35” (with personality module) • Weight 2.3 lb

COMMUNICATIONS • COM1, DB25M, RS-232 and RF signals • COM2, DB9M, RS-232 w/flow control lines • COM3, RS-485 4 wire, Pluggable Terminal Block • COM4, RS-232/RS-485, 9pin Sub-D • COM5, Ethernet, 100Base-TX, RJ-45 • Plug In RF MODEM FSK 0-300, 600, or 1200 BAUD

FIELD WIRING • Use Copper Conductors Only, 60°C • Wire Range, 12-26 AWG • Wire Strip Length, 0.310” • Recommended Tightening Torque, 0.79 N-m / 7.0 lb-in.

POWER SOURCE AND SUPPLIES • Power Supply 12VDC Isolated Source with 8A Fuse, Use 14 AWG Supply Connections • Power Input 10.5-15VDC, 12VDC Nominal, 8.0A • Resistive Loads Only, DC Use • The sum of the load currents must be 7.5A or less • COM1 (pins 9,10,11) 10.5-15VDC, 4.0A • COM2 (pin 4) 10.5-15VDC, 2.0A • COM3 (12V) 10.5-15VDC, 2.0A • COM4 (pin 4) 10.5-15VDC, 2.0A • 24VDC @ 20mA per Terminal, Sensor Excitation power supply • Temperature Range -40 to 50 degC (-40 to 122 degF) Surrounding Air Temp • Internal Battery Lithium 3V, 1200mAh, 2/3A Size (Real-Time Clock and NVRAM)

ORDER INFORMATION:

L61-XXXX

Modem: L17 - 0-300 baud FSK modem L17A - 0-600 baud FSK modem L17B - 1200 baud FSK modem

Micro-Comm, Inc. • 15895 S Pflumm Rd • Olathe, KS 66062 • (913) 390-4500 • fax: (913) 390-4550 • www.micro-comm-inc.com

-5-

Sample Wiring Diagram CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection) MEAN WELL AD155 12VDC POWER SUPPLY 13.8 Vdc Output, 10A

WHT

2

15A-CB

F1 - 3.5Amp MDL

BLK

1

F2 - 3.5Amp MDL

GRN

3

L1

L1

N

N

GND

G

POWER CONNECTION:

120V/Single Phase/60Hz Power by Others - use separate 15A circuit breaker.

BACK-UP BATTERY PS1230 3A/h = 6 hours PS12120 12A/h = 24 hours

RED

5

BLU

6

BLU

7

RED

8

F3 - 8.0 Amp MDL

MICRO-COMM M1550 RTU

POWER CONNECTIONS

10.5-15VDC Power Input, 8A

+12VDC GND

DISCRETE OUTPUTS - 4 Form C Relay Outputs - 8A @ 250VAC General Use - 8A @ 30VDC Resistive - B300 Pilot Duty

Discrete Ouput #1

?

DO1-NO DO1-C DO1-NC

?

DO2-NO

Discrete Ouput #2

DO2-C DO2-NC

?

DO3-NO

Discrete Ouput #3

DO3-C DO3-NC

?

DO4-NO

Discrete Ouput #4

DO4-C DO4-NC

All 120VAC Control Circuits must be provided with a Disconnect. All Control Circuit Wiring must not be less than No. 14 AWG. Discrete Output & Discrete Input wiring must be in seperate conduits. (By Others)

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

CHECKED BY:

-6-

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name Status

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

1 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

DISCRETE INPUTS

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection)

- 8 Optically Isolated Discrete Inputs. - Dry Contact or Pulse Inputs (1-6). - High Speed Pulse Inputs DI7 & DI8.

Discrete Input #1

DI1

Discrete Input #2

DI2

Discrete Input #3

DI3

Discrete Input #4

DI4

? (contact by others)

Aux

? (contact by others)

Aux

? (contact by others)

Aux

? (contact by others)

Aux

GND GND

Discrete Input #5

DI5

Discrete Input #6

DI6

Discrete Input #7

DI7/PI1

Discrete Input #8

DI8/PI2

? (contact by others) ? (contact by others)

Aux

Aux

? (contact by others)

Aux

? (contact by others)

Aux

GND GND

PULSE INPUTS Pulse Input #1/DI7

Pulse Input #2/DI8

12VDC

RED

DI7/PI1

WHT

GND

BLK

12VDC

RED

DI8/PI2

WHT

GND

BLK

3 conductor shielded cable

(R)+12

Sensus Act-Pak (G) Out High Speed PickUp transmitter (by others)

(B) Com

FLOW Electronic Flow Transmitter 0-????GPM/0-????Pulses (by others)

shield connected to GND 3 conductor shielded cable

(R)+12

Sensus Act-Pak (G) Out High Speed PickUp transmitter (by others)

(B) Com

FLOW Electronic Flow Transmitter 0-????GPM/0-????Pulses (by others)

shield connected to GND

Note: PI3-PI8 = DI1-DI6 (up to 50Hz)

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

CHECKED BY:

-7-

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name Status

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

2 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection)

ANALOG INPUTS

- 4 Analog Inputs, 12bit. - 24Vdc @ 20mA per output, 80mA Total - 0-20mA/0-5V DIP Switch Selectable. - Reverse Voltage and Surge protection.

ANALOG INPUT 0-20mA

1 2 3 4

0-5V

Analog Input #1

Analog Input #2

Analog Input #3

Analog Input #4

24V

RED

AI1

BLK

GND

GRN

24V

RED

AI2

BLK

GND

GRN

24V

RED

AI3

BLK

GND

GRN

24V

RED

AI4

BLK

GND

GRN

AO1

RED

GND

BLK

3 conductor shielded cable

+ -

Micro-Comm ??psi Transducer

GND

shield connected to GND

3 conductor shielded cable

+ -

Micro-Comm ??psi Transducer

GND

shield connected to GND

3 conductor shielded cable

+ -

Micro-Comm ??psi Transducer

GND

shield connected to GND

3 conductor shielded cable

+ -

Micro-Comm ??psi Transducer

GND

shield connected to GND

Tank Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N??? (transducer by Micro-Comm) Tank Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N??? (transducer by Micro-Comm) Tank Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N??? (transducer by Micro-Comm) Tank Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N??? (transducer by Micro-Comm)

ANALOG OUTPUTS

- 2 Analog Outputs, 12-Bit DAC - 0-20mA. - 900Ohm Maximum Loop Resistance.

Analog Output #1

3 conductor shielded cable

Analog Device

Analog Output #1 Tag: Analog Output. Name: ???? 0-???? = 4-20mA (???? by Micro-Comm)

Analog Device

Analog Output #2 Tag: Analog Output. Name: ???? 0-???? = 4-20mA (???? by Micro-Comm)

+ -

shield connected to GND at Micro-Comm side ONLY.

Analog Output #2

AO2

RED

GND

BLK

3 conductor shielded cable

+ -

shield connected to GND at Micro-Comm side ONLY.

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

CHECKED BY:

-8-

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name Status

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

3 OF 16

CONNECTIONS & CONTACTS BY OTHERS

MICRO-COMM M1550 RTU

(All dashed lines indicate customer/contractor connection)

(continued from previous page)

12V

12V

BANK #1 CURRENT LIMIT 1.0A

L48-Discrete Output Module #1

L48 EDO Operational Specifications 1. 16 Open Collector Outputs 2. Internal Diode Clamping for Inductive Loads 3. 10.5-15 Vdc Power Input 3. 12Vdc & Max 1.6A Power Output 5. Reverse Voltage & Surge protection 6. Temp. Range -40° to 50° C

EXPANSION RS-485 COM3 Terminal Block TX+ TXRX+

ORG

RX-

BLK

TX-

SGND

DRAIN

SGND

+12V

RED

+12V

GND

BLU

GND

? (contact by others)

DO2

?

? (contact by others)

DO3

?

DO4

?

DO5

?

DO6

?

DO7

?

? (contact by others)

DO8

?

? (contact by others)

? (contact by others) ? (contact by others) ? (contact by others) ? (contact by others)

12V

RX+

GRN

?

12V

RX12V

TX+

12V

BANK #1 CURRENT LIMIT 1.0A

12Vdc, 2.0A

WHT

DO1

1 0

1 2 3 4 5 6 7 8

ALL SWITCHES OFF FOR EDO #1

DO9

?

? (contact by others)

DO10

?

? (contact by others)

DO11

?

? (contact by others)

DO12

?

? (contact by others)

DO13

13

DO14

13

DO15

13

R1

14

? (contact by others) ?

13

DO16

R2

R3

R4

14

14

14

?

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

STATUS:

Status

-9-

9 R3 5

9

5

?

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project Manager

DATE:

?

MICRO-COMM JOB#:

Project #

Project Name CHECKED BY:

?

? (contact by others)

?

M1550

PROJECT:

9 R2 5

? (contact by others)

12V SITE NAME:

?

? (contact by others)

?

12V

9 R1 5

M1550.VSD

3/8/04

11/8/06

4 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection) ? (contact by others)

DI1

L47-Discrete Input Module #1

COM

? (contact by others)

DI2

? (contact by others)

DI3

COM

? (contact by others)

DI4

? (contact by others)

DI5

COM

12Vdc, 2.0A

? (contact by others)

DI7

? (contact by others)

L47 AIM Operational Specifications

EXPANSION RS-485 COM3 Terminal Block TX+

DI6

1. 2. 3. 4. 5. WHT

TX-

GRN

RX+

ORG

16 Discrete Inputs, Optically Isolated Temp Range -40° to 50° C DIN Rail Mountable Enclosure 10.5-15 VDC Supply Reverse Voltage and Surge protection

RX+ RXTX+

RX-

BLK

TX-

SGND

DRAIN

SGND

+12V

RED

+12V

GND

BLU

GND

COM

DI8

? (contact by others)

DI9

? (contact by others)

COM

DI10

? (contact by others)

DI11

? (contact by others)

COM

? (contact by others)

DI13

? (contact by others)

COM

1 0

DI12

1 2 3 4 5 6 7 8

DI14

? (contact by others)

DI15

? (contact by others)

ALL SWITCHES OFF FOR EDI #1

COM

? (contact by others)

DI16 SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

Status

- 10 -

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name CHECKED BY:

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

5 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection) 24V

Analog Input #1

L45-Analog Input Module #1 Analog Input #2

AI1 GND

RED

3 conductor shielded cable

BLK

-

GRN SHIELD WIRE GROUNDED AT PLC ONLY

3 conductor shielded cable

24V

SHIELD WIRE GROUNDED AT PLC ONLY

3 conductor shielded cable

24V

GND SHIELD WIRE GROUNDED AT PLC ONLY

3 conductor shielded cable

24V

Analog Input #4

SHIELD WIRE GROUNDED AT PLC ONLY

24V

TX+

12Vdc, 2.0A

Analog Input #5

GRN

RX+

ORG

AI5

RX+ RXTX+

RX-

BLK

TX-

SGND

DRAIN

SGND

+12V

RED

+12V

GND

BLU

GND

SHIELD WIRE GROUNDED AT PLC ONLY

Analog Input #6

3 conductor shielded cable

SHIELD WIRE GROUNDED AT PLC ONLY

3 conductor shielded cable

24V

Analog Input #7

SHIELD WIRE GROUNDED AT PLC ONLY

1 2 3 4 5 6 7 8

ALL SWITCHES OFF FOR EAI #1

Analog Input #8

3 conductor shielded cable

24V

SHIELD WIRE GROUNDED AT PLC ONLY

STATUS:

M1550

+

Micro-Comm ??psi Transducer

GND

CHECKED BY:

- 11 -

+

Micro-Comm ??psi Transducer

GND

+

Micro-Comm ??psi Transducer

GND

+

Micro-Comm ??psi Transducer

GND

0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

Level Transducer Tag: Tank Level . Name: Tank Level 0-60 psi = 4-20mA Model L5N???

(Transducer by Micro-Comm)

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project Manager

DATE:

Level Transducer Tag: Tank Level . Name: Tank Level

MICRO-COMM JOB#:

Project #

Project Name Status

Micro-Comm ??psi Transducer

GND

-

AI8 GND

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

+

-

AI7 GND

1

PROJECT:

GND

-

AI6 GND

SITE NAME:

Micro-Comm ??psi Transducer

Level Transducer Tag: Tank Level . Name: Tank Level

L45 AIM Operational Specifications 1. 8 Ch, 16 bit Analog Inputs 2. 10.5-15 Vdc Supply 3. 12Vdc to 24Vdc, 160mA Int. P.S. 4. 0-20mA/0-5V DIP Switch Select. 5. Reverse Voltage & Surge protection 6. Temp. Range -40° to 50° C

24V

0

+

-

GND

WHT

TX-

3 conductor shielded cable

Micro-Comm ??psi Transducer

GND

-

AI4 GND

EXPANSION RS-485 COM3 Terminal Block

+

-

AI3

Micro-Comm ??psi Transducer

GND

-

AI2 GND

Analog Input #3

+

M1550.VSD

3/8/04

11/8/06

6 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection) L46-Analog Output Module #1

Analog Input #1 4-20mA=0-?? + -

AO1+ AO1-

L46 EAO Operational Specifications 1. 2. 3. 4. 5. 6. 7.

EXPANSION RS-485 COM3 Terminal Block TX+

12Vdc, 2.0A

WHT

SHIELD WIRE GROUNDED AT PLC ONLY

4 Channel, 4-20mA Output Temp Range -40° to 50° C DIN Rail Mountable Enclosure 10.5-15 VDC Supply Reverse Voltage and Surge protection 2.5kV Isolation per Channel 24Vdc Internal Isolated Loop Power

Analog Input #2 4-20mA=0-??

RX+

AO2-

GRN

RX+

ORG

TX+

RX-

BLK

TX-

SGND

DRAIN

SGND

+12V

RED

+12V

GND

BLU

GND

RX-

(By OTHERS)

+ -

AO2+

TX-

(By OTHERS)

SHIELD WIRE GROUNDED AT PLC ONLY

Analog Input #3 4-20mA=0-??

SHIELD WIRE GROUNDED AT PLC ONLY

1 0

(By OTHERS)

+ -

AO3+ AO3-

Analog Input #2 4-20mA=0-??

1 2 3 4 5 6 7 8

ALL SWITCHES OFF FOR EAO #1

(By OTHERS)

+ -

AO4+ AO4SHIELD WIRE GROUNDED AT PLC ONLY

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

Status

- 12 -

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name CHECKED BY:

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

7 OF 16

MICRO-COMM M1550 RTU

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection)

RADIO CONNECTION - COM1 25 Pin Male Sub-D Connector RS-232 and RF Signals + PWR

10.5 - 15Vdc , 4.0A + PWR

- PWR - PWR GAIN GAIN

Pin 9

RED BLACK

Pin 10 Pin 1 Pin 25

+ Pwr - Pwr

39K Ohms

Pin 12 Pin 13

GND TXA PTT

Pin 14 Pin 19

RXA

Pin 16

WHT/GRN BLUE WHT/BLUE

Pin 7

WHT/ORG

7

Radio Connection: Radio connected to M1500 using 8 conductor flat phone cable with 15 pin male connector to the Radio Accessory Connector. Antenna connected to lightning arrestor using Beldon 9913 coax. Antenna

Motorola

Model CM200 Radio RADIO ACCESSORY CONNECTOR

2 3

1 2

15 16

11

Coax Lightning Arrestor

Ground Rod Connection:

Lightning Arrestor Ground Lug connected to a Seperate 10FT Ground Rod using 12 gauge wire.

(By Others)

FRONT PANEL DISPLAY - COM2 9 Pin Female Sub-D Connector RS-232 w/flow control DCD RXD TXD DTR - 13.8Vdc, 2.0A SG DSR RTS CTS RI

Pin 1 Pin 2 Pin 3 Pin 4

GRN/WHT BLU ORG/WHT GRN

Pin 7 Pin 8

ORG BLU/WHT

Pin 5 Pin 6

Pin 9

Micro-Comm

4 1 6

TxD RxD +12 COM

2 3

CTS RTS

5

Display with keypad RJ-11 Jack 1

6

FRONT PANEL DISPLAY: Operator Interface with LCD display and keypad. Displays local analogs, controlling tank 's level, and provides access to control setpoints. Utilizes 12VDC power and RS232 communications

RS-232 - COM4 9 Pin Female Sub-D Connector RS-232 w/flow control DCD RXD TXD DTR - 13.8Vdc, 2.0A SG DSR RTS CTS RI

Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8 Pin 9

ETHERNET 10BaseT-COM5 RJ 45 Connector NC NC RXNC NC RX+ TXTX+

Pin 1 Pin 2

CAT 5E CABLE T-568A PINOUT 1-WHT/GRN 2-GRN 3-WHT/ORG 4-BLU 5-WHT/BLU 6-ORG 7-WHT/BRN 8-BRN

Pin 3 Pin 4 Pin 5 Pin 6 Pin 7 Pin 8

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

CHECKED BY:

- 13 -

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name Status

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

8 OF 16

RADIO CONNECTION - COM1 25 Pin Male Sub-D Connector + PWR + PWR - PWR - PWR GAIN GAIN

Pin 21 Pin 22 Pin 23

CABLE DB25F TO DB25F, 500/550/ 1500 TO RADIO SWITCH 36"

Pin 24

RED

Pin 9

Pin 9

RED BLACK

Pin 10 Pin 1

Pin 10 Pin 1

BLACK

Pin 25

Pin 25

39K Ohms

Pin 12

RADIO #1 RADIO #2 RADIO #3 RADIO #4

+ PWR + PWR - PWR - PWR

L54 RADIO SWITCH

Pin 13

GND TXA PTT

Pin 7 Pin 14

RXA

Pin 16

WHT/GRN BLUE WHT/BLUE

Pin 19

+12VDC GND

6 MDL

GND TXA PTT

Pin 16

RXA

Pin 19

WHT/ORG

RED BLACK

Pin 7 Pin 14

+ Pwr - Pwr

RADIO #1 8

Motorola

Model CM200 Radio #1 RADIO ACCESSORY CONNECTOR 1 2

15 16

7 2 3 11

+12VDC GND

RED BLACK

6 MDL

+ Pwr - Pwr

1

8

RADIO ACCESSORY CONNECTOR 1 2

15 16

7 2 3

GND

RED

6 MDL

BLACK

+ Pwr - Pwr

Motorola

Model CM200 Radio #3 RADIO ACCESSORY CONNECTOR 1 2

15 16

7 2 3

GND

RED BLACK

6 MDL

+ Pwr - Pwr

RADIO ACCESSORY CONNECTOR 1 2

15 16

8

1

1

Coax Lightning Arrestor

Antenna

Motorola

Model CM200 Radio #4

8

Coax Lightning Arrestor

Antenna

CABLE RJ45 TO 16 PIN DIN, 500/550/1500 TO RADIO #4

11

+12VDC

RADIO #4

CABLE RJ45 TO 16 PIN DIN, 500/550/1500 TO RADIO #3

11

+12VDC

1

RADIO #3

Radio Connection: Radio connected to Radio Switch using a L20C, RJ45 phone plug to 16 pin DIN cable. Antenna connected to lightning arrestor using Beldon 9913 coax. Antenna

Motorola

Model CM200 Radio #2

RADIO #2

CABLE RJ45 TO 16PIN DIN, 500/550/1500 TO RADIO #1

(continued from previous page)

CONNECTIONS & CONTACTS BY OTHERS (All dashed lines indicate customer/contractor connection)

CABLE RJ45 TO 16 PIN DIN, 500/550/1500 TO RADIO #2

MICRO-COMM M1550 RTU

7 2 3 11

Ground Rod Connection:

Coax Lightning Arrestor

Antenna

Coax Lightning Arrestor

Lightning Arrestor Ground Lug connected to a Seperate 10FT Ground Rod using 12 gauge wire.

(By Others)

SITE NAME:

15895 S. Pflumm Rd. Olathe, KS 66062 Phone (913) 390-4500 Fax (913) 390-4550 (C) Copyright 2006 Micro-Comm, Inc.

M1550

PROJECT:

STATUS:

Status

- 14 -

CREATED:

DRAWN BY:

LAST REVISED:

FILENAME:

PAGE:

Project #

Project Name CHECKED BY:

MICRO-COMM JOB#:

Project Manager

DATE:

M1550.VSD

3/8/04

11/8/06

9 OF 16

Installation Requirements The installation of the M1550 shall comply with all local and national fire and electrical codes, i.e. NFPA 70, National Electric Code. In order to provide proper fire and electrical shock protection, the M1550 shall be powered from an isolated power source, use 14 AWG supply wiring provided with an 8A over current protection fuse. The fuse shall be located at the secondary of the source to properly protect the power supply secondary conductors. Field wiring should use 60°C copper conductors. The pluggable terminal blocks will accept 12-26 AWG wire. The wire should be stripped 0.310” and the terminal block tightened to the recommended torque, 0.79 N-m (7.0 lb-in.) Use appropriate gauge wire for the control circuit loads. Minimum 22 AWG wire is recommended for the Discrete Inputs. Minimum 22 AWG, twisted, shielded wire is recommended for the Analog Inputs and Analog Outputs. 14 AWG wire is recommended for the Discrete (Relay) Outputs. DC control signals should be segregated from AC power and AC control wiring by using separate wire ducts and separate conduit. The M1550 is an open type device that requires an appropriate enclosure, suitable to the installation site. The surrounding air temperature of the M1550 should not exceed 50°C (122°F).

- 15 -

Lithium Battery Replacement The internal lithium battery is a technician replaceable item. Caution: the lithium battery used in this device may present a fire or chemical burn hazard if mistreated. Do not recharge, disassemble, heat above 100°C (212°F) or incinerate. Replace battery with Panasonic, Part No. BR-2/3A or Micro-Comm Part No. BAT-004-3 only. Use of another battery may present a risk of fire or explosion. To replace the battery, remove all power to the unit. Caution – power to the relay contacts may be supplied from other equipment. Un-plug all of the terminal blocks and communications cables. Un-mount the unit and remove the four screws on the sides of the unit. Place the unit on a clean working surface and lift the mounting base from the face plate. The battery is located in the center of the face plate, clipped into the battery holder labeled J15. Use a small blade screwdriver to pry the battery clip to the side and up. Then pry on the other side to fully remove the battery clip. At this point the battery is held in place by the battery holder contact spring force and it is simple to remove the battery with your fingers. Place a new battery in the battery holder, matching the orientation of the “+” and “-“ markings on the battery to the battery holder. Replace the battery clip by pressing it into place. Mate the mounting base to the face plate and re-install the four screws. Re-mount the unit and plug all of the cables back into the unit. Dispose of the battery properly. Keep away from children. Do not disassemble and do not dispose of in fire.

- 16 -

Expansion I/O Module Setup

(EAI8 Module)

The EDI16, EDO16, EAI8 and EAO4 modules allow an RTU to have additional discrete or analog inputs/outputs. These modules are connected to the RTU using the COM3 RS-485 port on the M1550. M1550 COM3 TX+

I/O Module TX+

TX-

TX-

RX+

RX+

RX-

RX-

SGND

SGND

+12V

+12V GND

GND

Dip switches set both the address of the module and the baud rate used by the RS-485 connection to the RTU. ON 1 2 3 4 5 6 7 8

Switches 1-7 set the address (binary): Module #1 = switches 1-7 OFF Module #2 = switch 1 ON, 2-7 OFF Module #3 = switch 2 ON, 1,3-7 OFF etc. The baud rate is set using switch 8: 9600 baud = switch 8 off 19200 baud = switch 8 on The default baud rate used by the RTU is 9600 baud. This can be changed in the RTU Configuration 32 program if necessary. The normal COM3 Mirco-Comm I/O polling loop will take around 2.6 seconds to update all modules at 9600 or around 0.7 seconds at 19200 baud. Micro-Comm I/O protocol on COM3 currently supports (4) EDI16, (4) EDO16, (4) EAO4 and (2) EAI8 modules. All modules use Modbus RTU protocol and will be communicated with automatically using the “MicroComm I/O” protocol or can be communicated with manually using the MESSAGE() or MIOMSG() functions in script.

- 17 -

Display Module Operation The Micro-Comm display module allows the operator to view up to 32 analog levels, 32 discrete input conditions, 32 discrete output conditions, change up to 32 stop/start setpoints, change all 8 output timer settings (both on and off delays) , view/change the user variables (X1-X32) and view/change user memory with up to 64 screens. In addition to these options there is a debug mode available that will let the operator turn on and off outputs, check inputs and view communications.

TOWER LEVEL DISCHARGE

12.9 FT 120 PSI

1

2

3

4

5

6

7

8

9

YES

NO

.

0

SPACE

BKSP

ENTER

General Instructions: • Use the Up/Down arrows to move between categories (analog level displays, discrete inputs and outputs, timer settings, stop/start setpoints, user variables and user memory screens) • Use the Right/Left arrows to move between items (which analog screen, timer output etc.) • Press ENTER to start entering a value for timers or setpoints. • Use the number keys to enter values. Use BKSP if you need to backspace. • Press ENTER when done with each entry. Special Modes: • Type .123 to get into the debug mode. Then hit the ENTER key to see a menu of choices. • Type .456 to get into the view communications screen. All radio communication data will then appear on the display. Press the up arrow to get out of this mode. • Type .741 to temporarily go from CTU32 mode to display mode. Note: This will only work if “hankshake” is disabled ahead of time since the RTS line will normally be off - see setup below. NOTE: The display communicates with the RTU using a serial cable (9 pin to RJ-11). The protocol options should be set to 9600 baud, 8 data bits, none parity, echo disabled. These are the factory defaults. To set a display back to factory defaults, hold down the PERIOD, ZERO and F1 keys during power up and then press the F1 key to load the defaults. The default for “handshake” is “enabled” (this will need to be disabled if you plan to use the temporary display mode described above). To change these parameters, press the PERIOD, ZERO and F1 keys any time after power up.

- 18 -

Allen-Bradley DF1 and Modbus Protocol Support The M1550 can use Allen-Bradley DF1 or Modbus RTU protocols. The information below describes what protocol options are supported and how the data is mapped to physical I/O or memory locations in the RTU: DF1 Specifications Data Link Layer Protocol: DF1 Half-Duplex Master/Slave, DF1 Full-Duplex or DF1 Radio Modem Error Checking: CRC-16 Message Packet Formats: SLC-500 Protected Typed Logical Reads/Writes PLC-5 Word Range Read/Write PLC-2 Physical Read/Write Basic Command Set - Unprotected Read/Write Modbus Specifications Protocol Mode: Modbus RTU Master/Slave and Modbus/TCP Error Checking: CRC-16 Function Codes Supported: 1-Read Coil Status, 2-Read Input Status, 3-Read Holding Registers, 4-Read Input Registers, 5/15-Force Single/Multiple Coils, 6/16-Preset Single/Multiple Registers DF1 SLC-500 File N9:0 N9:1 N9:2 N9:3 N9:4 N9:5 N9:6 N9:7 N9:8 N9:9

Modbus 4x Reg

Modbus I/O

PLC I/O and Memory Registers

r r r r r r r r r r

4x0001 4x0002 4x0003 4x0004 4x0005 4x0006 4x0007 4x0008 4x0009 4x0010

r r r r r r r r r r

10001-10016 10017-10032 10033-10048 10049-10064 10065-10080 10081-10096 10097-10112 10113-10128 10129-10144 10145-10160

r r r r r r r r r r

N10:0 N10:1 N10:2 N10:3 N10:4 N10:5 N10:6 N10:7 N10:8 N10:9

r/w r/w r/w r/w r/w r/w r/w r/w r/w r/w

4x0011 4x0012 4x0013 4x0014 4x0015 4x0016 4x0017 4x0018 4x0019 4x0020

r/w r/w r/w r/w r/w r/w r/w r/w r/w r/w

00001-00016 00017-00032 00033-00048 00049-00064 00065-00080 00081-00096 00097-00112 00113-00128 00129-00144 00145-00160

r/w r/w r/w r/w r/w r/w r/w r/w r/w r/w

N11:0 – N11:4

r/w

N12:0 - N12:63

r/w

N13:0 - N13:63

r

N14:0 - N14:31

Discrete Inputs DI1-DI16 EDI #1 Discrete Inputs DI17-DI32 EDI #2 Discrete Inputs DI33-DI48 EDI #3 Discrete Inputs DI49-DI64 EDI #4 Discrete Inputs DI65-DI80 DI81-DI96 DI97-DI112 DI113-DI128 DI129-DI144 DI145-DI160 Discrete Outputs DO1-DO16 EDO #1 Discrete Outputs DO17-DO32 EDO #2 Discrete Outputs DO33-DO48 EDO #3 Discrete Outputs DO49-DO64 EDO #4 Discrete Outputs DO65-DO80 DO81-DO96 DO97-DO112 DO113-DO128 DO129-DO144 DO145-DO160 DO81-DO160

4x0021-4x0084 r/w

30001-30064

r

AO1-AO64

4x0085-4x0148

r

30065-30128

r

AI1-AI64

r/w

4x0149-4x0180 r/w

30129-30160

r

PI1-PI32

N15:0 - N15:63

r/w

4x0601-4x0664 r/w

Stop/Starts 1-32 STOP1,START1,STOP2,START2 etc.

N16:0 - N16:191

r/w

4x0201-4x0424 r/w

X Variables X1-X224 (16 bit words)

4x0701-4x0764

Timer Variables TSEC1-TSEC64 (16 bit @ 1sec/bit)

N17:0 - N17:63

r

N19:0 - N19:15

r/w

N20:0 - N20:99 N21:0 - N21:99 N22:0 - N22:99 … N109:0 - N109:99

r/w r/w r/w r/w

r

4x1201-4x1216 r/w 4x3000-4x3099 4x3100-4x3199 4x3200-4x3299 … 4x11900-4x11999

ON/OFF Timer Settings (ON1,OFF1,ON2,OFF2 etc.)

r/w r/w r/w

User Memory Locations 0-99 (16 bit words) User Memory Locations 100-199 User Memory Locations 200-299 … User Memory Locations 8900-8999

r/w

- 19 -

M1550 Configuration Program Installation RTU Configuration 32 is required for programming the M1550 PLC. RTU Configuration 32 is currently available for Windows NT/2000/XP and Mac OS X. To Install the Windows version, follow the steps below: When upgrading to a new version of the program, go to the Control Panels in Windows and double-click on Add/Remove Programs. Look through the list and remove any old versions of RTU Configuration. 1) Insert the CD into the CD-ROM Drive. 2) RUN the SETUP program located on the CD-ROM. 3) Follow the prompts and do a typical install. 4) After installation, the program icon will appear in the Start menu’s Program list.

When running the configuration program for the first time you will need to look at the serial port setup screen to make sure you have the correct COM port number selected. The port setup is located in the program’s “Edit - Preferences...” menu. Connection to the RTU is by means of a Null-modem cable from the computer’s RS-232 port to the RTU’s COM2 port (display port).

- 20 -

RTU Information Screen The RTU Information screen contains version, date, checksums, user information, address switch settings as well as a picture of the RTU. This information about the RTU will be available after the user has read the Personality Module. The Job Name and Site Name fields can be changed if necessary and the User Name and Last Programmed will reflect who made the most recent change. All the “User” information is sent to the RTU whenever the personality data is uploaded.

- 21 -

Configuration Parameters

The screen below shows a sample RTU Configuration dialog box. This screen is where all the operational parameters stored in the Personality Module can be changed (radio communications parameters, output timer settings, automote control settings and stop/start setpoints). To retrieve the personality data from an RTU, click on the blue down arrow icon or select Read Personality Data from the Transfer menu. After making changes, click the blue up arrow icon or select Program Personality Data from the Transfer menu.

- 22 -

RTU Configuration Parameters Model Number

The model of the RTU being configured is selected and shown here.

Protocol

The protocol selection for the radio communications port (COM1). Options include Micro-Comm RTU32, DF1 Half-Duplex Slave, DF1 Half-Duplex Master, DF1 Full-Duplex, DF1 Radio Modem, Modbus RTU Slave, Modbus RTU Master or Modbus/TCP.

Baud Rate

This selects the speed for the radio communications port (COM1). 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200 bps are supported.

Parity

Parity checking mode (Even, Odd or None). Even parity should normally be selected when using Micro-Comm RTU protocol.

Data Bits

The number of data bits used by the radio port (5, 6, 7 or 8). This should normally be set to 7 for MicroComm RTU communications.

Stop Bits

The number of stop bits used by the radio port (1 or 2). This should normally be set to 2 for MicroComm RTU communications.

PTT

Time in milliseconds that will occur after the radio is keyed and before the data is sent out the radio port. This should normally be set to 250 msec or more for Micro-Comm RTU communications using conventional radios. Data radios will allow for much lower PTT times (50 msec or less).

Enable Modem

When this option is checked, the M1550 will turn on the internal 600 (or 110) baud radio modem. Leave this box un-checked when using an external radio modem.

Ant. Outputs

The range of 8 discrete outputs to use when a remote is doing Antenna/Radio switching. RTU32 protocol can only specify an 8 bit mask so this selection allows it to be applied to outputs 1-8 or 9-16.

Ant. Default

Discrete ouput number to leave on for Radio #1 when doing Antenna/Radio switching at a remote.

Station #

For use with Modbus or DF1 protocols ONLY. This sets the station # for this RTU as used by the protocol on all of the communication ports.

COM2 Protocol

Communication protocol used on COM2. This can be Micro-Comm Display, Micro-Comm RTU32, Micro-Comm CTU32, DF1 Half-Duplex Slave or Master, DF1 Full-Duplex, DF1 Radio Modem, Modbus RTU Slave or Master, Modbus/TCP, Web Server, EtherNet/IP SLC and EtherNet/IP CLX (compact logix).

COM2 Baud

This selects the speed for the COM2 port. The default is 9600 baud for compatibility with the Micro-Comm Display Module.

COM2 PTT

Time in msecs that will pass after RTS is turned on and before data is sent out COM2. The default is 0 which will leave the RTS turned on all the time.

COM3 Protocol

Communication protocol used on COM3. This can be Micro-Comm I/O, DF1 Half-Duplex Slave or Master, DF1 Full-Duplex, DF1 Radio Modem, Modbus RTU Slave or Master, Modbus/TCP, MicroComm Display, Micro-Comm RTU32, CTU32, EtherNet/IP SLC and EtherNet/IP CLX (compact logix).

COM3 Baud

Communications speed for the Micro-Comm I/O modules or for Modbus RTU / DF1 communication. The default is 9600 baud.

- 23 -

Timer Settings

The timer settings control how long the RTU will wait to energize or de-energize a relay output when it has been told to come on or go off. These timers will always be used regardless of the mode of operation - Micro-Comm CTU control, Script Language, Modbus or DF1.

Stop/Start Setpoints 1-32

These setpoints can be labeled and accessed from the Micro-Comm Display module and then used in script for control. Stop and Start setpoints are scaled using the analog selected in the Stop/Start Labels screen.

Use 8-bit Remote Setpoints

This option will force the remote setpoint protocol (used by SCADAview) to use 8-bit (LSB) values. This may be required if the central is a C2000 or earlier.

Pulse Dividers

These sets the number of pulses that must occur before the pulse input counter is incremented. Normally this will be set to 1.

COM4 Settings

The options for COM4 are similar to that of COM1 with the additional “Mode” option.

- 24 -

Ethernet (COM5) Settings

The options for the ethernet port are configured with the screen shown below:

Protocol

The protocol selection for the Ethernet Port (COM5). Options include Micro-Comm RTU32, DF1 HalfDuplex Slave, DF1 Half-Duplex Master, DF1 Full-Duplex, DF1 Radio Modem, Modbus RTU Slave, Modbus RTU Master, Modbus/TCP, Micro-Comm CTU32, Web Server, EtherNet/IP SLC and EtherNet/ IP CLX (compact logix).

Mode

This selects whether COM5 will be a TCP Server, TCP Client or UDP Mode (client/server).

IP Address

TCP/IP Address of the M1550 PLC on the network.

Subnet Mask

Selects the class of the local network (usually either 255.255.255.0 or 255.255.0.0)

Gateway

The address of the local network router (if any).

Reverse-Poll

Enabling reverse-poll when using CTU32 protocol will allow multiple computers (up to 4 using client mode) to receive status updates.

Local TCP Port

Port number used when we are a TCP Server. Our default is 4001. It will be forced to 44818 when using EtherNet/IP. It should also be changed to 502 when using Modbus/TCP protocol.

Max. Connect

The maximum number of clients that can connect to us when we are a TCP Server (1 - 4).

Destination IPs

If the mode is a TCP Client, these are the addresses and port numbers that the PLC will connect to.

Local Listen Port

Port number on which we will receive data from the other PLCs when using UDP Mode. This can be the same port as used for transmitting data. (4001 is our default).

UDP Ranges

When using UDP Mode, these ranges of IP addresses and port numbers will all be sent data when the PLC transmits. Note: Do not include the PLC’s own IP Address in these ranges.

The “Network Search” button will scan the local network for our PLCs. - 25 -

Analog Labels and Scaling Factors To change analog labels and scaling factors, click on the blue water tower icon or select Analog Labels & Scales from the View menu. The labels and scales are retrieved/sent to the RTU during reading/writing of the personality module configuation data. Up to 32 analog levels can be displayed and they will always appear in the order entered in the setup screen. If an analog label is left blank it will not show up on the display. When analog levels are displayed, the offset is first added to the raw analog value and the result is then multiplied by the range value. (This matches the Micro-Comm SCADAview program). A Range/Preset calculator (shown below) can be displayed by right-clicking and selecting the menu option.

- 26 -

Output Timer Labels To change the 20 character output timer display labels, click on the clock icon or select Timer Labels from the View menu. The labels are retrieved/sent to the RTU during reading/writing of the configuration data. These labels are normally used for pumps and provide both ON and OFF delays entered on the MicroComm Display Module. Note: Lines where the label is left blank will not be accessible from the Display Module.

- 27 -

Stop/Start Setpoint Labels

Stop/Start labels are used on the Display Module to allow the operator to change operational parameters such as Pump Stop/Start setpoints, High/Low alarms and Pump Restore/Cutoffs. Along with the 20 character label is a selection for what type of setpoint (Stop/Start, High/Low etc.) and which analog input # will be used for scaling and units. Note: Lines where the label is left blank will not be accessible from the Display Module.

- 28 -

X Variable Labels

User variables are the 16-bit unsigned integer X1-X32 script language variables that can be used for any purpose. By entering a label in the User Variable Labels setup screen, the current value will be shown and can be changed on the Display Module.

- 29 -

Discrete I/O Labels

Labels for both 32 discrete inputs and 32 discrete outputs are user defined in the RTU Configuration 32 software. These labels may be used to display pump calls, pump runs, valve positions, alarms etc. A 12-character label is used to name the input or output along with a 6-character ON label and a 6-character OFF label to describe the on or off state. If the input or output name is left blank it will not appear on the display and if no discretes are labeled the display will just skip over the entire section (inputs or outputs). The screen below shows the Discrete Input Labels setup screen:

- 30 -

User Memory Screens User memory screens allow for display and entry of data stored in user memory (locations 0-15999 in the M1550). The raw data type can be either 16 bit or 32 bit (using 2 consecutive user memory locations) and can be displayed as numeric, discrete labels or binary numbers. The user memory screens are accessed by arrowing all the way down to the bottom row of the MicroComm display. The sample screens below show how a 32bit flow total could be displayed and how a pump HOA selector could be configured.

- 31 -

User Memory Database Editor The User Memory Database screen provides the capability of reading, programming and editing all user memory locations (0-15999) as well as saving and loading a comma seperated (.CSV) database file. This file could then be used for data logging/trending or saving a backup copy of important data such as flow totals, runtimes etc. The screen shown below is accessed from either the Utilities menu or by selecting “Read User Memory” from the Transfer menu.

Right-clicking on this screen will bring up a menu with options to “Read User Memory”, “Program User Memory”, “Save CSV File...” and “Load CSV File...”. Double-clicking on a cell will put it into edit mode and a new integer value can be entered. The data will be displayed and entered in decimal unless the “Display User Memory and X Variables in Hex” is selected in the preferences. This screen can also be made to show “live” data like the user memory data table viewer by selecting the “Auto-Refresh User Memory Database Window” option in the application preferences. NVRAM Database In addition to the User Memory Database, there is also a very similar NVRAM Database window which can be used to download and save data from the RTU’s personality module. This could be used for longterm data logging since it currently supports 65000 words of data. The script commands NVREAD, NVWRITE and NVCOPY are used to manage this data.

- 32 -

RTU Script Language Editor To enter or edit the Script Language Code, click on the script icon or select “Script Editor” from the View menu. Script language can be retrieved from the RTU by clicking the Read button shown at the bottom of the editor window or by selecting Read RTU Script from the Transfer menu. Lines starting with a single quote character are comments and do not get sent to the RTU when programming. Comments are saved in the .S5C configuration file and can optionally be saved to the RTU in place of the revision notes. After entering lines of code the user can click the Check button to make sure the syntax looks ok and to see how many bytes of code have been used. Currently the main script code can’t be larger than 16894 bytes. The code is then programmed into the RTU personality module by clicking the Program button or by selecting Program RTU Script in the Transfer menu. Script subroutines are edited by selecting the subroutine number from the list in the lower-left corner of the screen. Each subroutine can be read, programmed and checked separately using this editor. Currently each subroutine can be up to 2110 bytes.

- 33 -

Revision Notes Editor To enter or edit the Revision Notes for the RTU, click on the notepad icon or select Revision Notes from the View menu. The screen below shows some sample notes - they can be script comments, software description, revision history, variable tables or anything else desired. The Read and Program buttons are used to retreive or store the notes in the personality module. Revision notes are also saved in the .S5C configuration file. If the option “Use Commented Script for Revision Notes” is turned on in the preferences, this screen will be filled in with the current commented script whenever it is opened. It can then be programmed into the personality module in addition to the un-commented (compiled) script. The user will also then be asked if the commented script should be programmed whenever the configuration or compiled script is programmed. Commented scripts can be read back from an RTU and imported into the actual script by right-clicking and selecting the “Import Commented Script” menu option (shown below).

- 34 -

Data Table Viewer The Data Table Viewer screen allows the operator to see and change I/O variables, User variables and the Stop/Start setpoints in real-time when connected to an RTU. This screen can be very useful when debugging script language code. The User Memory data table can display all user memory (a range of 64 locations at a time) and will allow for changing these values. Analog inputs and Stop/Start setpoints are displayed as raw 12-bit numbers (0-4095) or can optionally be scaled based on the range/offset values entered in the analog setup screen. Pressing the “S” key on this display will toggle scaling on and off. Discrete inputs and outputs are shown as either 1 or 0 (on or off). When the “Force I/O” option is selected, the I/O variables shown in red may be changed to the desired value by clicking on the readout box, typing a new value and pressing enter. When the “Disable Script” option is also checked, the script will stop running and any I/O that it was controlling will then be accessible.

- 35 -

Display Module Emulator

The display module is an optional hardware component to a M1550 PLC which allows an operator to see levels and change setpoints. When programming the M1550 with the RTU Configuration 32 software the operator can use the Display Module Emulator screen to see what the display module would show. This can be very useful since both the display module and the programming software may be using the same com port on the RTU.

- 36 -

Debug Terminal The Debug Terminal screen allows the user to interact directly with the RTU over the programming port (COM2 or COM3) or with other third-party serial equipment. It will display incoming data using ASCII, Modbus or DF1 mode based on the “Display Mode” selection in the lower-left hand corner of the screen. Protocol analysis of master messages (requests) can be done by selecting “RTU32-Decode”, “ModbusDecode” or “DF1-Decode”. Data logging can also be done by clicking on the “Log Data...” button and typing in a file name. Radio communications on COM1 can be monitored on COM2 - COM5 by clicking on the “COM1” button, COM2 can be monitored on COM3-COM5 by clicking the “COM2” button etc,etc. The “Debug” button will enter a hardware debugging mode where outputs can be turned on and off, inputs can be read, the clock can be set etc. Press the Enter key when in this mode to get a menu.

- 37 -

Script Language Syntax RTU32 Script Language Reference

Rev. 2.2.3 – 6/1/2007

Numbers:

16-bit unsigned integers (0 to 65535) - all computations (except in special functions) are done using unsigned integers.

Variables: DI1-DI160

DO1-DO160 DO1TD-DO8TD DI1RT-DI16RT DI1RC-DI16RC DO1RT-DO8RT DO1RC-DO8RC AI1-AI64 AO1-AO64 PI1-PI64 TSEC1-TSEC224 STOP1-STOP32 START1-START32 X1-X224 Xx.0-Xx.15 M0-M15999 Mx.0-Mx.15 L1-L16 Lx.0-Lx.15 T1AI1-T1AI8 T2AI1-T2AI8 T1DI1-T1DI32 T2DI1-T2DI32 T1PI1,T2PI1 FIRSTPASS POWERFAIL MEMLOCK MIOLOCK MSGLOCK1-MSGLOCK5 TSEC[x] X[x] M[x]

Operators: +

++ - -- * / % | & ! ^ == < > = =

Discrete inputs 1-160 (1=on, 0=off) Discrete outputs 1-160 Discrete output 1-8 Timer Done (1=relay is energized) Runtimes for DI1-DI16 (tenths of hours) Cycle counters for DI1-DI16 (# of starts) Runtimes for DO1-DO8 (tenths of hours) Cycle counters for DO1-DO8 (# of starts) Analog inputs 1-64 (AI1-AI16 are on-board, AI17-AI24 are the EAI8 module) Analog outputs 1-64 (AO1-AO8 are EAO8 modules 1-4) Pulse input 16bit counters (PI1-PI18 are physical, PI19-PI64 are script-only) General purpose seconds timers (count down, 0 to 65535 seconds) Stop setpoints (16bit) - read only Start setpoints (16bit) - read only User X variables (16bit) - read/write Bit referencing of user X variables (returns 0 or 1) - read/write User memory variables (16bit) - read/write Bit referencing of user memory variables (returns 0 or 1) - read/write Local subroutine variables (16bit) - read/write Bit referencing of local subroutine variables - read/write LISTEN() address #1’s analog input data LISTEN() address #2’s analog input data LISTEN() address #1’s discrete input data LISTEN() address #2’s discrete input data LISTEN() address #1,#2 raw pulse inputs or flow rates Set to a “1” on the first pass of script execution (read-only) Set to a “1” and held to 2 minutes when a power fail is detected (volts10,GOTO(100)) X1=X1+1 LABEL(100) X2=X2+1 - 41 -

GROUP(gnum, uloc, genable, gtype, clevel, psaddr, npumps, spump, penables, failsecs [,psaddr2, npumps2, spump2, psaddr3, npumps3, spump3, psaddr4, npumps4, spump4]) Control groups are used in conjuction with SCADAview 32 to do all the housekeeping for pump status, alternation, fail generation etc. - similar to C2000 (CTU7-CTU9) based groups. The parameters are as follows: gnum group number (1-128) uloc memory location for the start of the crontol group data structure genable group enable flag (1=enable, 0=disable) - group will alternate when disabled gtype group type (1=normal, 2=normal + RTU HOAs, 3=discrete given # of pumps, 4=discrete given # of pumps + RTU HOAs), 5=pump-down, 6=pump-down + RTU HOAs) clevel analog control level for comparison with stop/starts or the required # of pumps if using a type 3 group psaddr primary pump station address (0-255 = HH-WW) npumps number of pumps to control at the primary address (1-8) spump starting pump output number at the primary address (1-8) penables pump enable binary mask (0=no pumps enabled, 65535=16 pumps enabled) failsecs number of seconds to wait for a run before failing a pump (0=no fail) Optional parameters (psaddr2, npumps2, spump2 etc.) can be used to define up to 3 more pump station addresses and outputs to be controlled by the group. The maximum total number of controlled pumps is 16. The GROUP() function will return the current # of pump calls. IF(x,y,z)

If x is true evaluate y else evaluate z (else is optional). Multiple statements may be used for y or z by separating them with a colon. Example: IF(DI1, DO1=1:DO2=1, DO1=0:DO2=0)

LABEL(x)

Marks a line in the script that could be jumped to using the GOTO(x) function. This should be by itself on a line of script - see the GOTO(x) function for more info.

LISTEN(saddr, uloc, lostime [, ant#, rly1, ant1, rly2, dbrly, tbrly, pdaddr, pdoff, pdmask] ) Defines station addresses to listen for when using either Micro-Comm RTU/RTU32 (automote messages or replies), old-style PDU messages or Modbus RTU Slave replies. When using MicroComm protocol, this function returns a “1” as long as the station is not in LOS. Also, the actual time in seconds since a reply was heard can be found in the station data structure. The parameters are: saddr address number (0-255 = HH-WW) or Modbus Slave address to listen for uloc starting user memory location for the station data structure lostime time in seconds before the LOS bit will be set in the station status byte ant#, rly1, ant1, rly2, dbrly, tbrly - optional parameters that a central may need to talk to a non-polled remote (for remote HOA or Control Group information). These parameters are the same as shown for the MESSAGE function. pdaddr old-style PDU string address to listen for (PDU parameters are also optional) pdoffset starting location in pdu string for this station’s data pdmask data that is expected to be in the PDU string for this station (see the MPDU function) Example: X1=LISTEN(@PI,200,480) This would listen for station address “PI” and save the station data structure starting at user memory location 200. X1 will equal 1 as long as the station is not in LOS (480 seconds). Note: When using Modbus RTU Slave protocol, the reply data is just saved in a block starting at the uloc. The Modbus replies must be to “Read Holding Register” messages (4x registers). MAVG(uloc, nwords) Returns the average value from a given range of user memory locations: uloc = the starting user memory address nwords = number of words to average

- 42 -

MCOPY(src, dst, nwords) Copies data from one area of user memory to another using the following: src - starting user memory location for the source data dst - starting user memory location for the destination data nwords - the number of words (16bit numbers) to copy Example: To copy the first 10 words from uloc 100-109 to uloc 200-209 MCOPY(100,200,10) MCRC(uloc, nwords) Returns the CRC 16-bit checksum of a given range of user memory locations: uloc = the starting user memory address nwords = number of words MDATA(uloc, d1 [,d2, d3, ...]) This function simply copies the given data words into consecutive user memory locations and returns the total number of words copied. uloc - starting user memory location for the data d1, d2, d3, ... - data words to place into memory (can be as many as needed) MDECTOHEX(dval, uloc, nchars) Converts an integer value to an ASCII hex string of characters located in user memory. dval - value to convert (16 bit unsigned integer) uloc - starting user memory location of the hex string nchars - number of hex characters (1-4) MDISPLAY(row, column [,editflag]) Changes what is being displayed on the Micro-Comm Display Module by moving to the given row and column. The “row” should be one of the following: 1=Analog Input Labels, 2=Discrete Inputs, 3=Discrete Outputs, 4=Timer Settings, 5=Stop/Starts, 6=X Variable Labels, 7=User Memory Screens. If the optional editflag parameter is set to “1”, the displayed screen will immediately go into edit mode (just as if the user had pressed Enter). Example: This will change the display to user memory screen #1 whenever an alarm input on DI3 goes on. The user memory screen should be set up to show an alarm message. IF(OSR(DI3,0),MDISPLAY(7,1,0)) ‘ uses the one-shot function so that it won’t keep doing it. MESSAGE(port, type, timeout, addr, ref, offset, npts, uloc, ant#, lostries) Modbus RTU Master Messages (type 0 and 1) port - communications port number (1,2 or 3) type - message type (0=Modbus RTU Read, 1=Modbus RTU Write) timeout - amount of time in milliseconds the RTU will wait for a response addr - address of the modbus slave device (1 to 247) ref - modbus reference location in the slave to start reading or writing offset - offset added to the reference location to start reading or writing npts - number of data points (bits or words) to read or write uloc - memory location for the data (User Mem 0-15999) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) lostries - number of polling tries before done bit goes to 0 (returned value)

- 43 -

MESSAGE(port, type, timeout, addr, rref, roff, rnpts, ruloc, wref, woff, wnpts, ruloc, ant#, lostries) Modbus RTU Read/Write Registers Master Message (type 27) port - communications port number type - message type (27=Modbus RTU Read/Write) timeout - amount of time in milliseconds the RTU will wait for a response addr - address of the modbus slave device (0-255) rref - modbus holding register reference in the slave to start reading (40000-49999) roff - offset added to the reference location to start reading rnpts - number of data points (words) to read ruloc - memory location for the data received (User Mem) wref - modbus holding register reference in the slave to start writing (40000-49999) woff - offset added to the reference location to start writing wnpts - number of data points (words) to write wuloc - memory location for the data to be written (User Mem) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries) DF1 Half-Duplex Master, Full-Duplex or DF1 Radio Modem Messages (types 3 - 8) port - communications port number (1,2 or 3) type - message type (3=SLC-500 Integer File Read, 4=SLC-500 Integer File Write, 5=PLC-5 Read, 6=PLC-5 Write, 7=Unprotected Read, 8=Unprotected Write) timeout - amount of time in milliseconds the RTU will wait for a response addr - address of the DF1 slave device (1 to 254) ref - number and type for the file in the slave to read/write (not used for types 7 or 8) (0-255, MSB specifies a SLC file type other than integer - i.e. $8A for floating point files) offset - word number in the integer file to start reading or writing nwords - number of words to read or write uloc- memory location for the data (User Mem 0-15999) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, lostries, MR, MW [,sa2, uloc2, MR2, MW2, sa3, uloc3, MR3, MW3, sa4, uloc4, MR4, MW4]) Micro-Comm RTU/RTU32 Read/Write Messages (type 2, type 9 or type 24) port - communications port number type - message type (2=Old-Style Control Card, 9=RTU32, 24=RTU32 w/6-bit data packing) timeout - amount of time in milliseconds the RTU will wait for a response saddr - address of the station being polled (0-255 where HH=0, WW=255) Note: The script compiler will convert station addresses specified by the “@” symbol followed by two letters (i.e. @WW would be compiled as 255) ant# - discrete output number to energize when transmitting (1-16, 0=none) rly1 - first choice relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2- second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station & antenna (MSB=antenna mask,LSB=address) uloc - user memory location for the station data (usually 100,200,300 etc) (the station data structure is shown in a table later in this manual) lostries - # of tries (1-255) before the LOS flag is set and the double-poll option flag (MSB=double-poll flag, LSB=# of tries - just add 256 to the # of tries to use double-poll) Note: double-poll will automatically stop after a station goes into LOS. MR - read message type (see RTU32 Protocol table) MW - write message type (see RTU32 Protocol table) [sa2, uloc2, MR2, MW2, sa3, uloc3, MR3, MW3, sa4, uloc4, MR4, MW4] optional parameters used to poll for up to 3 additional station addresses from the same RTU (available with type 9 and type 24 RTU32 messages) - 44 -

MESSAGE(port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries) Micro-Comm RTU32 Memory Read/Write Messages (type 10 or type 11) port - communications port number type - message type (10=memory read, 11=memory write) timeout - amount of time in milliseconds the RTU will wait for a response saddr - address of the station being polled (0-255 where HH=0, WW=255) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) rly1 - first choice relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2 - second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station & antenna (MSB=antenna mask,LSB=address) uloc - local user memory starting location for the data to be read or written ruloc - remote user memory starting location for read or write nwords - number of words to read or write (1-255 words) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR) Micro-Comm RTU32/RTU Automote Messages (type 12 / 25 or type 14) port - communications port number type - message type (12=RTU32 Automote, 25=RTU32 w/6bit data packing, 14=Old RTU Automote) timeout- amount of time in milliseconds the RTU will wait after transmitting saddr - address of the station to automote (may or may not be a local station address) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) rly1- first relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2- optional second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station station & antenna (MSB=antenna mask,LSB=address) uloc - user memory location for the station data (not used when the station address matches one of the RTU’s physical, RESPOND() or MESSAGE() addresses) MR - read message type to automote (see RTU32 Protocol table) Note: Station data will not be sent when it has it’s LOS bit set. MESSAGE(port, type, timeout, ant#) Micro-Comm RTU32 Delay Message (type 13) - stops polling for a given amout of time. port - communications port number to delay polling on type - message type (13=delay) timeout- amount of time in milliseconds that polling will be delayed. ant# - discrete output # / mask used during the delay (1-16, 0=none / MSB=mask for 9-16) MESSAGE(port, type, timeout, saddr, uloc, lostries) Micro-Comm CTU32 Master Message (type 15) - polls a CTU or CTU32 for station status. port - communications port number type - message type (15=status update request) timeout - amount of time in milliseconds to wait for a response saddr - address of the station being polled (0-255 where HH=0, WW=255) uloc - user memory location for the station data (usually 100,200,300 etc.) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, saddr, ant#) Micro-Comm CTU32 Master Message (type 16) - sends a CTU32 reverse-poll status update string port - communications port number type - message type (16=send status update) timeout - amount of time in milliseconds to delay before next message saddr - address of the station being sent (0-255 where HH=0, WW=255) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) - 45 -

MESSAGE(port, type, timeout, ant#, txuloc, txchars, rxuloc, stchar, rxchars, lostries) ASCII Message (type 17) - sends a string of ascii characters and buffers a response port - communications port number type - message type (17=ascii message) timeout - amount of time in milliseconds to wait for a response ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) txuloc - user memory start location for the transmit data txchars- number of characters to transmit rxuloc - user memory starting location for the receive data stchar - character that marks the start of a received string (use 256 to just save all data) rxchars - maximum number of received characters to save in the memory buffer lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, delay, pduaddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, nwords) Micro-Comm Old-Style PDU String Message (type 18) port - communications port number type - message type (18=Old-Style PDU) delay - amount of time in milliseconds before going on to the next message pduaddr - address of the PDU being polled (0-255 where HH=0, WW=255) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) rly1 - first choice relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2- second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station & antenna (MSB=antenna mask,LSB=address) uloc - user memory location for the start of the PDU data nwords - # of pdu data words to send (LSB of each word is sent) MESSAGE(port, type, delay, saddr1, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR1, [SA2,MR2,...SA10,MR10]) Micro-Comm PDU32 String Message (type 19 or 26) port - communications port number type - message type (19=PDU32, 26=PDU32 w/6bit data packing) delay - amount of time in milliseconds before going on to the next message saddr1 - first station address being sent (0-255 where HH=0, WW=255) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) rly1 - first choice relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2- second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station & antenna (MSB=antenna mask,LSB=address) uloc - user memory location for station if address is not found MR1 - first station reply type (see table) SA2, MR2 etc. - additional station addresses and reply types (up to 10 stations total) Note: Station data will not be sent when it has it’s LOS bit set.

- 46 -

MESSAGE(port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries) Micro-Comm RTU32 User Memory Setpoints Message - writes data if changed (type 20 or 23) port - communications port number type - message type (20=read or write on change, 23=zero-compressed version) timeout - amount of time in milliseconds to wait for a response saddr - address of the station being polled (0-255 where HH=0, WW=255) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) rly1 - first choice relay station address (0-255) ant1 - antenna mask for the 1st relay station to use (0=no antenna switching) rly2 - second-choice relay station & antenna (used if rly1 is in LOS) dbrly - double-bounce relay station & antenna (MSB=antenna mask,LSB=address) tbrly - triple-bounce relay station & antenna (MSB=antenna mask,LSB=address) uloc - local user memory location for the data to read / write (a write message will occur whenever a local change is made to the data block and will repeat until it is successful - normally it will just read the data from the remote) ruloc - remote user memory starting location to read / write nwords - number of words to read / write (limit 255 or 1000 for type 23) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries) Modbus RTU User Memory Setpoints Message - writes data if changed (type 21) port - communications port number type - message type (21=read or write on change) timeout - amount of time in milliseconds to wait for a response addr - address of the station being polled ref - modbus reference location in the slave to start reading or writing offset - offset added to the reference location to start reading or writing nwords - number of data words to read or write uloc - local user memory location for the data to read or write (a write message will occur whenever a local change is made to the data block and will repeat until it is successful - normally it will just read the data from the remote) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) lostries - number of polling tries before done bit goes to 0 (returned value) MESSAGE(port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries) DF1 SLC-500 User Memory Setpoints Message - writes data if changed (type 22) port - communications port number type - message type (22=read or write on change) timeout - amount of time in milliseconds to wait for a response addr - address of the DF1 slave device (1 to 254) ref - file number for the integer file in the slave to read/write offset - word number in the integer file to start reading or writing nwords - number of data words to read or write uloc - local user memory location for the data to read or write (a write message will occur whenever a local change is made to the data block and will repeat until it is successful - normally it will just read the data from the remote) ant# - discrete output # / mask used when transmitting (1-16, 0=none / MSB=mask for 9-16) lostries - number of polling tries before done bit goes to 0 (returned value) MFILL(uloc, value, nwords) Fills data in memory given the following parameters: uloc - starting memory location for the fill value - number to fill with (16bit integer) nwords - the number of words to fill

- 47 -

MFCALC(oper, uloc1, uloc2, ruloc) Allows floating point math functions to be performed on user memory data (32bit floats). oper - operation to be performed (1=add, 2=subtract, 3=multiply, 4=divide, 5=raise to power) uloc1 - user memory location of the first floating point number uloc2 - user memory location of the second floating point number ruloc - user memory location for the result Examples: MFCALC(3,0,2,4) ‘M4=M0*M2 MLCALC(5,6,8,10) ‘M10=M6^M8 (raise to power) MHEXTODEC(uloc, nchars) Convert and return the integer value of a string of ASCII hex characters located in user memory. uloc - starting user memory location of the hex string nchars - number of hex characters (1-4) MIODONE(port, type, uloc [, value]) Returns a “1” if the specified MIOMSG is done given the port number, message type and uloc (these 3 parameters should uniquely identify a message). It can also be used to set or clear the done status using the optional value parameter. Note: MIODONE(0,0,0) will return a “1” if all current MIOMSGs are done. MIOMSG(port, type, timeout, addr, ref, offset, npts, uloc, lostries) Sets up a high-speed (background task) Micro-Comm I/O-Modbus RTU message loop. Unlike normal user messages, these can have timeouts as small as 30 msec. port - communications port number (3, 4 or 5) type - message type (0=Read, 1=Write, 21=User Memory Setpoints) timeout - amount of time in milliseconds to wait for a response addr - address of the modbus slave device (0 to 247) ref - modbus reference location in the slave to start reading or writing offset - offset added to the reference location npts - number of data points to read or write uloc - user memory location for the data lostries - number of polling tries before done bit goes to 0 (returned value) Example: X1=MIOMSG(3,0,50,0,40001,0,8,100,4) ‘reads analog input module (AI1-AI8) MLCALC(oper, uloc1, uloc2, ruloc) Allows 32 bit math (unsigned long integer) functions to be performed on user memory data. oper - operation to be performed (1=add, 2=subtract, 3=multiply, 4=divide, 5=raise to power) uloc1 - user memory location of the first long integer uloc2 - user memory location of the second long integer ruloc - user memory location for the result Example: MLCALC(1,113,213,10) ‘M10=M113+M213 MPDU(uloc, saddr, pdmask) Adds old-style PDU data to a range of user memory locations. It returns the total number of words copied to user memory. This is used in conjuction with Type 18 messages to send old-style PDU strings. uloc - the starting user memory address saddr - station address to get the data from (0=HH - 255=WW) pdmask - bit mask with b0-b8 set based on what data is to be copied: (b0=Analog A, b1=Analog B, b2=Discretes, b3=Flow Rate, b4=IEM, b5=Pump 1-4 C/F, b6=Pump 5 C/F, b7=Analogs C,D, b8=Analogs E,F) Note: All analog data should be scaled to 8-bit. MREAD(uloc)

Returns the 16bit word stored in user memory location uloc (0-15999).

- 48 -

MSGDONE(port, type, uloc [, sparam]) Returns the done status for a message given the port number, message type and uloc (these 3 parameters should uniquely identify the message). If both type and uloc are zero, a value of “1” will only be returned if all messages for the given port are done. The done bit can also be set or cleared using the optional “sparam” parameter. If the optional “sparam” parameter is 0 or 1, the done bit will be set accordingly. Other parameter values will do the following: 2 = returns the done counter (0-65535) 3 = returns the fail counter (0-65535) 4 = returns the done percentage x 100 (0-100% = 0-10000) 5 = resets both the done and fail counters Note: Whenever the done or fail count rolls over to zero, both counters will be reset and percentage will go to 10000. Also, done and fail counters are incremented whenever a message is successful or unsuccessful (unlike the done bit status which get’s cleared based on the message command’s “lostries” parameter). MSGNUM(port)

Returns the current user message number pending on the given communications port (1-5). The message number is it’s location in the script with relation to other messages on the same port. Message numbering starts at “1”.

MSUM(uloc, nwords) Returns the sum of a given range of user memory locations: uloc = the starting user memory address nwords = number of words to sum MSYNC(sync#, uloc1, uloc2, nwords) Keeps two blocks of user memory in sync. If a word in block 1 changes, block 1 will be copied to block 2 and vice versa. The parameters are: sync# - a unique sunc function number (1-64) uloc1 - starting user memory location for block 1 uloc2 - starting user memory location for block 2 nwords - the number of words to keep in sync (block size) Note: Block 1 is the “master” so if both blocks change, block 1 will be copied to block 2. Example: MSYNC(1, 100, 200, 100) ‘keeps M100-M199 in sync with M200-M299 MWRITE(uloc, y) Writes the 16bit variable or constant y to the user memory location specified by uloc (locations from 0-15999 are supported). NVCOPY(src, dst, nwords, direction) Copies a block of data from the personality module NVRAM to User Memory or from User Memory to NVRAM given the following parameters: src - source uloc or nvloc location depending on direction of copy dst - destination uloc or nvloc location depending on direction of copy nwords - number of 16bit words to copy direction - 0=NVRAM to User Memory, 1=User Memory to NVRAM NVREAD(nvloc)

Returns a 16bit word stored in the personality module NVRAM location nvloc (0-65471)

NVWRITE(nvloc,y) Writes the 16bit variable or constant y to the personality module NVRAM location specified by nvloc (locations 0-65471 are supported) OSR(x, osr#)

One-shot rising function. This function will return a “1” only once whenever the x parameter goes from 0 to non-zero (false to true). The osr# parameter must be a unique number (0-255) for each OSR() function used in script. Example: IF (OSR(DI1,0),X1=X1+1) ‘counts the number of times DI1 goes on...

- 49 -

PID(t, ai#, ao#, p, i, d, min, max, start, dband, period) Sets the parameters for a real-time PID module. Setting “ai#” to 0 disables the PID. When reenabled, the analog output will start again at the “start” value. A total of 8 PIDs (one for each analog output) can be running at the same time. The PID will use a scaled value for the analog input and will internally keep track of a “raw” analog output value so that it can be scaled in the script as well. The PID() function will return the “raw” analog output. t = target setpoint (0-4095) ai# = analog input # used (1-64) ao# = analog output # used (1-8) p = proportional term x 1000 (0-65535) i = integral term x 1000 (0-65535) d = derivative term x 1000 (0-65535) min = minimum analog output (0-4095) max = maximum analog output (0-4095) start = starting value for analog output (0-4095) dband = deadband (output will hold when input is this close to the target) period = time period in seconds for the PID calculation Example: AI1=SCALE(AI1,819,3604,0,255) ‘scale AI1 300# xdcr 4-20ma => 0-255 psi PID(X1,1,1,100,10,6,0,1000,500,20,4) ‘PID using AI1,AO1 and X1 target (0-255) AO1=SCALE(AO1,0,1000,819,4095) ‘scale AO1 0-1000 => 4-20ma output PITOAI(pi#, ai#, maxp, maxa, maxt) Sets the parameters for real-time pulse to analog conversion. pi# - pulse input # (1 - 64) ai# - analog input # (1 - 64) maxp – maximum pulses-per-sec x 100 maxa - maximum analog input reading (0 to 65535) maxt - maximum # of seconds between pulses before AI goes to zero. Example: PITOAI(1,3,1000,4095,2) This converts a pulse of 0-10pps on PI1 to a value of 0-4095 on AI3. If 2 seconds goes by without seeing a pulse, AI3 will be set to 0. PMEM(x)

Returns a byte from the RAM copy of the personality module configuration (locations 0-127). Refer to the personality module memory map for more info. Some locations will return current status information.

POLYNOMIAL(x, xexp, c, cexp, a1, a1exp, a2, a2exp, a3, a3exp, a4, a4exp, rexp) Computes the result of a 4th degree polynomial function: f(x) = const + a1*x + a2*x^2 + a3*x^3 + a4*x^4 x = given variable x xexp = exponent multiplier for x (10^xexp) c = constant value cexp = exponent multiplier for contant (10^cexp) a1,a2,a3,a4 = polynomial parameters a1exp,a2exp,a3exp,a4exp = exponent multipliers for parameters a1-a4 (10^aexp) rexp = exponent multiplier for the return value (10^rexp) Example: M1=POLYNOMIAL(M0,0,17879,-3,-40821,-4,34023,-5,-40364,-7,14639,-9,2) This computes the following polynomial and return the result *100. f(M0) = 17.879 - 4.0821*M0 + 0.34023*M0^2 - 0.0040364*M0^3 + 0.000014639*M0^4 POW(x, xexp, y, yexp, rexp) Returns the value of x raised to the y power. Pre-scaling and post-scaling is done using the given exponent parameters. The result is rounded up to the nearest unsigned integer value. Equation used is: result = ( (x * 10^xexp) ^ (y * 10^yexp) ) * (10^rexp) Example: X2=POW(222,-3,2,-1,4) would return a value of 7401 computed using: (0.222^0.2)*10000 = 7401

- 50 -

PUMPFAIL(callvar, runvar, tsec#, failsecs) Returns a “1” if the call variable has been equal to “1” for more than the fail seconds while the run variable is zero. This fail will clear on it’s own if the run occurs at some later time. The parameter parameters are: callvar - call variable or expression (usually an output) runvar - run variable or expression (usually an input) tsec# - TSEC timer # to be used (1-224) failsecs - seconds before fail is generated Example: X1=PUMPFAIL(DO1TD,DI1,1,240) RAMP(ramp#, startValue, endValue, rtimeSec) This will return the start value when first called and then will ramp up (or down) to the given ending value over the given period of time (in seconds). The parameters are: ramp# a unique number for the function (1-8) startValue value to start with (when the function is first called) endValue value returned at the end of the ramp time rtimeSec time period in seconds for the ramp to occur Example: AO1=RAMP(1,819,4095,120) This would ramp analog output #1 from 819 to 4095 over a 2 minute period. RESPOND(saddr, uloc [,protocol [,nobuild] ]) Defines an additional station address for the RTU to respond as when polled with RTU32 protocol or Modbus protocol if optional flag is set. The parameters are: saddr station address number (0-255 = HH-WW) uloc memory location for the station data structure protocol when this optional parameter is a “1”, the given address and uloc will apply to Modbus protocol instead of RTU32. In this case, the uloc defines a new starting location for the Holding Registers (4x0001). All other Modbus data types will remain the same. nobuild when this optional parameter is set to “1”, the station status and timestamp will not be updated locally - this may need be used if all the station’s data is being read from another RTU using a protocol other than RTU32. Example: RESPOND(129,3200) defines RTU32 address “PI” with station data located at 3200. REPLYWITH(saddr, MR) Forces the reply message type to use when responding with RTU32 protocol. This could be used, for instance, to send certain data only when necessary (report-by-exception). The parameters are: saddr station address (0-255 = HH-WW) MR read message type to reply with (see RTU32 Protocol table) - a value of 255 will cancel the forced reply and go back to what is asked for. RUNCOUNTER(cnum, cvar, uloc) Counts the number of “on” cycles for the given variable. The counter is incremented whenever the value of cvar goes from zero to non-zero. The parameters are: cnum unique counter number (1-128) cvar variable or expression to count uloc user memory location used to store the counter (16 bit) RUNTIMER(tnum, tvar, uloc) Provides a run-time meter on the given variable. The run time is incremented in 10ths of hours while the value of tvar is non-zero. The parameters are: tnum unique timer number (1-128) tvar variable or expression to time uloc user memory location used to store the timer (16 bit) - 10ths of hours

- 51 -

SCALE(raw, rmin, rmax, smin, smax) Returns a scaled value given the actual raw value, the minimum/maximum raw values and the minimum/maximum scaled values. Example: AI1=SCALE(AI1,819,4095,0,4095) SELECT(test, value1, statement1 [, value-n, statement-n]) Similar to the IF function, SELECT will evaluate the given test expression and execute one of the statements based on it’s value. If the test expression is equal to value1, statement1 will be executed. If test is equal to value2, statement2 will be executed and so forth. Multiple statements may also be used by separating them with a colon. Example: SELECT(X1,100,DO1=1,200,DO2=1,300,DO3=1) This will turn on a discrete output based on the value of X1. SFTABLE(addr1, addr2, antmask, timeout) Modbus RTU, DF1 Half-Duplex and DF1 Radio Modem protocols allow for relaying messages via the “Store & Forward” method when using COM1. A lookup table is used to translate incoming message addresses to a relayed-to station address. The following parameters sets up an entry in the Store & Forward table: addr1 address the master is using for the remote station being relayed to addr2 address this RTU will use to get the data from the remote station antmask antenna mask used for switching radios or antennas during the relay - this is an 8-bit mask applied to either DO1-DO8 or DO9-DO16 based on the configuration selection timeout amount of time in milliseconds the RTU will wait for a response SQR(x [, xexp, rexp]) Returns the square root of x with optional parameters for pre-scaling and post-scaling. Equation used is: result = sqrt( (x*10^xexp) ) * 10^rexp Example: X1=SQR(256,-3,4) would return a value of 5060. SDATA(saddr, word#) Returns the value of a given word number from the “Station Data Structure” for Micro-Comm stations obtained using the MESSAGE() or LISTEN() functions. The station data structure is shown later in this manual. Example: X1=SDATA(@TH, 4) returns the value for AI1 from station TH. SSTATUS(saddr, bit#) Returns the state of a given status bit number from the “Station Status” word for Micro-Comm stations obtained using the MESSAGE() or LISTEN() functions. The following bits are defined: b7 (LOS) set when station goes into Loss of Signal (user defined) b6 (Data Valid) set when the received data is less than three cycles (tries) old b4 (Control Valid) set when data is first received and cleared at LOS Example: X1=SSTATUS(@TH, 7) returns a “1” if station TH is in LOS. SUB1(x)-SUB20(x)

Calls a subroutine and returns the EXIT(x) value to the main script routine. Currently up to 20 subroutines are supported. Values can be passed to a subroutine using the following syntax: SUB1(x1,x2,x3,x4,x5) Where x1 through x5 are 16bit integer variables or constants passed by value to the subroutine. They become local variables referenced as L1 through L16 from within the subroutine. Example: The following shows the main script and a subroutine. The subroutine totals up the three values passed and returns the result to the main script. The main script stores the result in the X1 variable. Main Script: X1=SUB1(1,2,3) Subroutine #1: L4=L1+L2+L3 EXIT(L4)

- 52 -

TCLOCK(iTime, rTime, iDay, PFRate, CLevel, CStop, OvrStop, OvrStart, uloc) This is a timeclock control function that provides for time inhibit/restore, prefill and override setpoints. The return value and the given user memory location will have it’s bits set as follows: b0=time inhibited, b1=prefill call, b2=override call (level below the override start) The parameters are: iTime - inhibit time (military time format 0-2359) rTime - restore time iDay - inhibit day-of-week (0=every day, 1-7=Sunday-Saturday) PFRate - prefill rate in units/hour (units the same as CLevel) CLevel - control analog level CStop - normal control stop setpoint (top-off level for prefill) OvrStop - override stop setpoint OvrStart - override start setpoint uloc - user memory location to use for the inhibit and call bits TIME(x) Returns a system time value based on the requrested parameter number. The parameters available are as follows: 0 - Seconds since power-up (rollover at 65535) 4 - Year (0-99) 1 - Day of the week (Sunday = 1) 5 - Hours (0-23) 2 - Month (1-12) 6 - Minutes (0-59) 3 - Day (1-31) 7 - Seconds (0-59 8 - Seconds since being polled by a central on COM1 - stops at 65535 secs (for central LOS) 9 - Seconds since being polled by a PC using CTU32 protocol on COM2-COM5 (for PC LOS) 10 - Seconds since polled by master on COM2, 11 - Seconds since polled by master on COM3 12 - Seconds since polled by master on COM4, 13 - Seconds since polled by master on COM5 TOTALIZE(pi#, ppc, uloc, nwords [,maxdelta]) This totalizes one of the high-speed pulse inputs given the following: pi# - pulse input register number (1-64) ppc - pulses per totalizer count uloc - user memory location for the totalizer register nwords - totalizer storage size in # of words (1 or 2) maxdelta - optional parameter to set the maximum change in pulse count that will be considered valid (the default is 32767). This can be used to avoid problems with external pulse registers. Example: TOTALIZE(1,1200,13,2) - increments a 32bit totalizer (2 words starting at user memory location 13), every time PI1 increases by 1200 (this could be a flow meter with 1200 pulses per 1000 gallons). XCOPY(msrc, mdst, nwords) Copies data from one location in the RTU to another (including I/O locations) given the following parameters: msrc - start modbus location for the source data mdst - start modbus location for the destination data nwords - the number of words (16bit values) to copy Note: msrc and mdst locations will correspond to the Modbus reference location shown in the DF1Modbus protocol table minus 400000. Supported memory locations include all the I/O data (1-166), X Variables (201-424) and User Memory Locations (3000-11999). Example: To copy the first 16 discrete inputs to X2, the command is XCOPY(1,202,1)

- 53 -

Micro-Comm Script Language - RTU Processing Flow Chart Much like a PLC processing ladder logic, the script is executed in a continuous loop. All I/O is read and written outside of the script so all changes made to inputs or outputs will actually occur when the script finishes.

Read Inputs (analogs, pulses, discretes)

Respond to Interrogations Update the User Display Run Script General Housekeeping...

Write Outputs (start timers etc.)

Note: The M1550 can now respond to interrogations during script. This can cause undesired results when reading/writing user memory while this same memory is being manipulated in script. See the “MEMLOCK” variable for information on how to enable this feature. (setting MEMLOCK equal to 0 will allow incoming communications to access user memory)

- 54 -

Micro-Comm Script Language - Ladder Logic Comparisons The following is a list of Script Language instructions and their corresponding Ladder Logic equivalent. The Ladder Logic shown is similar to Allen-Bradley SLC-500 instructions.

Script Language

Ladder Logic DI1

DI2

DO1

DI1

DI2

DO1

DI1

DI2

DO1

DO1=DI1&DI2

DO1=!DI1&DI2

IF(DI1&DI2,DO1=1)

L

DI1 IF(!DI1&!DI2,DO1=0)

DI2

DO1 U

DI1 DO1=!DI1|DI2 DI2

- 55 -

DO1

- 56 -

Personality Module Memory Map Addr 01 2 3 4 5

-

678910 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 -

Description COM1 Baud Rate (204=19200,187=9600,153=4800,136=2400,102=1200, 85=600, 68=300, 51=150, 34=135, 17=110, 0=75) 0x55 - special code 0xAA - special code COM1 Parity, Data Bits (UART register) COM1 Stop Bits (UART register) COM1 PTT Delay (x10 msec increments) COM1 Protocol (1-RTU32, 2-DF1 Slave, 3-Modbus Slave, 4-Modbus Master, 5-DF1 Master, 7-DF1 Full Duplex, 8-Modbus/TCP) Station # (for DF1 or Modbus on all COMs) COM3 Protocol (0,1,2-MCIO,3-Modbus Slave,4-Modbus Master, 5-DF1 Master, 7-DF1 Full Duplex, 8Modbus/TCP) COM3 MCIO EDI16 Module Status Bits COM3 Baud Rate (17=19200,18=9600,19=4800,20=2400,21=1200, 22=600, 23=300, 24=110) COM2 Protocol (0-None, 1-MC Display,2-DF1 Slave,3-Modbus Slave, 4=Modbus Master, 5-DF1 Master, 7-DF1 Full Duplex, 8-Modbus/TCP) Product ID # (17=S4500) Software Date Month (convert to Hex for display) Software Date Year (convert to Hex for display) FLASH Checksum (LSB) FLASH Checksum (MSB) BIOS Checksum (LSB) BIOS Checksum (MSB) Software Major Version Number (Ascii) Software Minor Version Number (Ascii) Software Build Version Number (Ascii) Realtime Clock - Day of Week (1-7) Realtime Clock - Month (1-12) Realtime Clock - Day (1-31) Realtime Clock - Year (0-99) Realtime Clock - Hours (0-23) Realtime Clock - Minutes (0-59) Realtime Clock - Seconds (0-59) Realtime Clock - Status (1=RTU has clock module) Pulse Input Divider MSB for PI1 Pulse Input Divider LSB for PI1 Primary Address (last 8 switches) Secondary Address (first 4 + last 4 switches) Pulse Input Divider MSB for PI2 Pulse Input Divider LSB for PI2

36 -

COM2 Baud Rate (CC=19200, BB=9600, 99=4800, 88=2400, 66=1200, 55=600, 44=300) - defaults to 9600 baud

37 -

COM2 PTT (RTS) Delay (x10 msec increments) - defaults to 0

38 -

Password Protected Flag (1=protected)

39 -

COM1 Radio Modem Enable (0xA5=disabled)

40 -

COM3 Mode (0=RS-232, 1=RS-485)

41 -

COM3 PTT (RTS) Delay (x10 msec increments) - defaults to 0

42 -

Remote Radio/Antenna Switch outputs to use (0=DO1-DO8,1=DO9-DO16)

43 -

Remote Radio/Antenna Switch default output number (0-16) - 0 = none

44 -

Remote Setpoints 8-bit flag (0xA5 = 8bit, otherwise 16bit) - required when using C2000 CTU

45 -

COM4 Mode (0=RS-232, 1=RS-485)

46 -

COM4 PTT (RTS) Delay (x10 msec increments) - defaults to 0

47 -

COM4 Protocol

48 -

COM4 Baud Rate

49 -

COM4 Parity, Stop Bits, Data Bits (LCR byte)

50 - COM3 Parity (Even = 0xA5, Odd = 0x5A, None=anything else) 51 - RTU32 Protocol System Code (0=none) 52 - Personality Module Configuration CRC (MSB) 53 - Personality Module Configuration CRC (LSB) 54 - Personality Module Script+Subs CRC (MSB) 55 - Personality Module Script+Subs CRC (LSB) …

(56-57 not used) 58 -

RTU 1 Status - b0=LOS, b1=AUTOMOTE (1200,1380 secs)

59

(not used)

60 -

RTU 1 Discrete Output Byte from CTU

74 -

RTU 2 Status - b0=LOS, b1=AUTOMOTE (1200, 1380 secs)



(61-73 not used) 75

(not used)

76 -

RTU 2 Discrete Output Byte from CTU



(77-104 not used) 105 -

COM3 MCIO EAI8, EAO4 and EDO16 Module Status Bits

106 -

Power Fail Status (0=OK, 1=Voltsn) Yes Call off (N-n) pumps starting after the first n pumps that were being called and are in AUTO. No

Call on (n-N) additional pumps starting at the lead pump pointer and skipping over any pumps that are not available or are already being called. If fail time is non-zero, check the time since pumps were called and set fail bits if necessary.

All Done -Telemetry Call bits will now be set in station data structure for all pumps called.

- 63 -

Message Type Table User Message Types Type

Description and Parameters

0

Modbus RTU Read

1

Modbus RTU Write

2

Micro-Comm RTU (old-style control card)

3

DF1 SLC-500 File Read

4

DF1 SLC-500 File Write

5

DF1 PLC-5 Read

6

DF1 PLC-5 Write

7

DF1 Unprotected Read

8

DF1 Unprotected Write

9

Micro-Comm RTU32

10

Micro-Comm RTU32 User Memory Read

11

Micro-Comm RTU32 User Memory Write

12

Micro-Comm RTU Automote (old-style control card)

13

Delay Polling (on a given port)

14

Micro-Comm RTU32 Automote

15

Micro-Comm CTU32 Status Update Request

16

Micro-Comm CTU32 Reverse Poll

17

ASCII Message

18

Micro-Comm PDU (old-style)

19

Micro-Comm PDU32

20

Micro-Comm RTU32 User Memory Setpoints

21

Modbus RTU User Memory Setpoints

22

DF1 SLC-500 User Memory Setpoints

23

Micro-Comm RTU32 User Memory Setpoints (zero-compressed)

24

Micro-Comm RTU32 with 6bit/char packed data (more efficient)

25

Micro-Comm RTU32 Automote with 6bit/char packed data

26

Micro-Comm PDU32 with 6bit/char packed data

27

Modbus RTU Read/Write Registers

port, type, timeout, addr, ref, offset, npts, uloc, ant#

port, type, timeout, addr, ref, offset, npts, uloc, ant#

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, lostries, MR, MW

port, type, timeout, addr, ref, offset, nwords, uloc, ant#

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, lostries, MR, MW

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries

port, type, delay, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR

port, type, delay, ant#

port, type, delay, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR

port, type, timeout, saddr, uloc, lostries

port, type, delay, saddr, ant#

port, type, timeout, ant#, txuloc, txchars, rxuloc, stchar, rxchars

port, type, delay, pduaddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, nwords

port, type, delay, SA1, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR1, [SA2,MR2,...SA10,MR10]

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, addr, ref, offset, nwords, uloc, ant#, lostries

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, ruloc, nwords, lostries

port, type, timeout, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, lostries, MR, MW

port, type, delay, saddr, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR

port, type, delay, SA1, ant#, rly1, ant1, rly2, dbrly, tbrly, uloc, MR1, [SA2,MR2,...SA10,MR10]

port, type, timeout, addr, rref, roff, rnpts, ruloc, wref, woff, wnpts, wuloc, ant#, lostries

- 64 -