B0780af M
B0780af M
FoxRTU Station
User’s Guide
*B0780AF* *M*
B0780AF, Rev M
May 2020
https://www.se.com
Legal Information
The Schneider Electric brand and any trademarks of Schneider Electric SE and its subsidiaries referred to
in this guide are the property of Schneider Electric SE or its subsidiaries. All other brands may be
trademarks of their respective owners.
This guide and its content are protected under applicable copyright laws and furnished for informational
use only. No part of this guide may be reproduced or transmitted in any form or by any means (electronic,
mechanical, photocopying, recording, or otherwise), for any purpose, without the prior written permission
of Schneider Electric.
Schneider Electric does not grant any right or license for commercial use of the guide or its content,
except for a non-exclusive and personal license to consult it on an "as is" basis. Schneider Electric
products and equipment should be installed, operated, serviced, and maintained only by qualified
personnel.
As standards, specifications, and designs change from time to time, information contained in this guide
may be subject to change without notice.
To the extent permitted by applicable law, no responsibility or liability is assumed by Schneider Electric
and its subsidiaries for any errors or omissions in the informational content of this material or
consequences arising out of or resulting from the use of the information contained herein.
Contents FoxRTU Station User's Guide
Contents
Preface ......................................................................................................................... 13
Revision Information .................................................................................................. 13
Related Documents ................................................................................................... 13
Global Customer Support .......................................................................................... 13
We Welcome Your Comments .................................................................................. 13
Chapter 1: Introduction.................................................................................................. 14
SCD2200 RTUs......................................................................................................... 14
FoxRTU Station ......................................................................................................... 14
System Requirements ............................................................................................ 14
Firmware ................................................................................................................... 15
Chapter 2: Software Installation .................................................................................... 16
Full Install .................................................................................................................. 16
Software Updates ...................................................................................................... 18
Release Notes ........................................................................................................... 18
Chapter 3: Navigation ................................................................................................... 19
Software Layout ........................................................................................................ 19
Menu Bar ................................................................................................................... 20
File Menu ............................................................................................................... 20
Edit Menu............................................................................................................... 21
Tools Menu ............................................................................................................ 21
Help Menu ............................................................................................................. 23
Multiple Ways to Select a Menu................................................................................. 23
Workspace ................................................................................................................ 24
Chapter 4: Projects, Groups, and RTUs ........................................................................ 26
Overview ................................................................................................................... 26
Creating a Project ...................................................................................................... 26
Grouping RTUs ......................................................................................................... 27
Adding RTUs ............................................................................................................. 27
Renaming .................................................................................................................. 27
Project Properties ...................................................................................................... 28
Chapter 5: RTU Configuration ....................................................................................... 29
Overview ................................................................................................................... 29
Add Modules ............................................................................................................. 29
Backplanes and Racks........................................................................................... 29
Adding Modules ..................................................................................................... 30
Example ................................................................................................................. 31
B0780AF, Rev M 3
FoxRTU Station User's Guide Contents
RTU Properties.......................................................................................................... 32
Protocols ................................................................................................................... 33
FoxRTU Protocol ................................................................................................... 35
Modbus .................................................................................................................. 35
DNP3 ..................................................................................................................... 37
P6008 .................................................................................................................... 43
Allen Bradley DF-1 ................................................................................................. 46
SNMP .................................................................................................................... 47
HART ..................................................................................................................... 48
User Defined .......................................................................................................... 48
NTP ....................................................................................................................... 48
HTTP ..................................................................................................................... 50
Terminal Server ..................................................................................................... 51
Ports .......................................................................................................................... 55
Ethernet ................................................................................................................. 57
Serial (RS232/422/485).......................................................................................... 58
Serial (Fiber Optic) ................................................................................................. 60
Dual Serial ............................................................................................................. 60
Dialup .................................................................................................................... 60
Line ........................................................................................................................ 61
HART ..................................................................................................................... 62
Spread Spectrum Radio ......................................................................................... 63
Routes ....................................................................................................................... 64
RTU Networking..................................................................................................... 64
Indirect Routing ...................................................................................................... 67
Relaying Radio Messages ..................................................................................... 68
Dynamic Route Changes ....................................................................................... 69
IP Routes ............................................................................................................... 69
Phone Numbers ........................................................................................................ 70
Programs................................................................................................................... 71
Redundancy Settings ................................................................................................ 73
Module Properties ..................................................................................................... 74
PS-1x/2x ................................................................................................................ 74
CP-3 ...................................................................................................................... 74
MC-31 .................................................................................................................... 75
AI-10 ...................................................................................................................... 75
AO-2/3 ................................................................................................................... 76
IO-3/5..................................................................................................................... 76
DO-1/2/6 ................................................................................................................ 77
4 B0780AF, Rev M
Contents FoxRTU Station User's Guide
DI-10 ...................................................................................................................... 78
DI-5 ........................................................................................................................ 79
Chapter 6: Dictionary .................................................................................................... 80
Variables ................................................................................................................... 80
ISaGRAF ............................................................................................................... 80
Dictionary Workspace ............................................................................................ 81
Adding Variables ....................................................................................................... 82
Variable Names ..................................................................................................... 82
Creating a Single Variable ..................................................................................... 82
Creating Multiple Variables .................................................................................... 84
Creating DNP3 Variables ....................................................................................... 85
Editing Variables ....................................................................................................... 86
Exporting and Importing Variables ............................................................................. 89
Chapter 7: Maps ........................................................................................................... 90
Viewing RTU Locations ............................................................................................. 90
Positioning an RTU.................................................................................................... 91
Finding an RTU ......................................................................................................... 92
Chapter 8: ISaGRAF ..................................................................................................... 93
ISaGRAF Overview ................................................................................................... 93
Function Blocks ......................................................................................................... 94
Getting Started .......................................................................................................... 94
Defining a Program ................................................................................................ 94
Entering Logic ........................................................................................................ 97
Downloading to the RTU ...................................................................................... 100
Debugging with ISaGRAF .................................................................................... 101
ISaGRAF Dictionary ............................................................................................. 103
How Logic is Executed ............................................................................................ 104
ISaGRAF Tips ......................................................................................................... 105
ISaGRAF Variable Types ........................................................................................ 106
Standard Variable Types...................................................................................... 106
Other Variable Types ........................................................................................... 107
IOPOINT Types ................................................................................................... 108
ISaGRAF Constants ................................................................................................ 109
ISaGRAF Reserved Names..................................................................................... 110
ISaGRAF Licensing Details ..................................................................................... 111
Chapter 9: ISaGRAF Function Blocks ......................................................................... 112
FoxRTU Protocol ..................................................................................................... 115
FOX_RX_DATA ................................................................................................... 115
FOX_TX_DATA ................................................................................................... 116
B0780AF, Rev M 5
FoxRTU Station User's Guide Contents
6 B0780AF, Rev M
Contents FoxRTU Station User's Guide
B0780AF, Rev M 7
FoxRTU Station User's Guide Contents
8 B0780AF, Rev M
Contents FoxRTU Station User's Guide
B0780AF, Rev M 9
FoxRTU Station User's Guide Contents
10 B0780AF, Rev M
Contents FoxRTU Station User's Guide
B0780AF, Rev M 11
FoxRTU Station User's Guide Contents
12 B0780AF, Rev M
Preface FoxRTU Station User's Guide
Preface
The FoxRTU Station User Guide describes about the FoxRTU Station Version 2.3.3, a
Windows-based software application used to configure and monitor the SCD2200 RTU.
Refer to System Requirements for information on this version of FoxRTU Station.
This version of FoxRTU Station should be used with CP-3 processors running firmware
Version 6793 or later. For additional information, see Firmware.
Revision Information
This revision of the document includes these changes:
Related Documents
• EcoStruxureTM Foxboro SCADA SCD2200 Hardware User's Guide (B0780AE)
Find the latest version of these documents on the Global Customer Support
(GCS) website.
B0780AF, Rev M 13
FoxRTU Station User's Guide Chapter 1: Introduction
Chapter 1: Introduction
SCD2200 RTUs
A Remote Telemetry Unit (RTU) is a device that contains
processing and communications equipment and is often
located in a remote place. SCD2200 RTUs can interface to
switches, relays and sensors, and connect to other
intelligent devices via a wide range of supported protocols.
FoxRTU Station
This manual describes FoxRTU Station Version 2.3.3. FoxRTU Station is a Windows based
software application used to configure and monitor the modular SCD2200 RTUs using the
CP-3 processor.
The manual also covers the basic usage of ISaGRAFTM, which is used for logic entry and
debugging. Further details may be found in the ISaGRAF on-line help.
System Requirements
FoxRTU Station is supported on the following PC operating systems:
14 B0780AF, Rev M
Chapter 1: Introduction FoxRTU Station User's Guide
Firmware
Firmware is the software that is built into the RTU processor modules. FoxRTU Station and
the RTU firmware work closely together, so it is important that compatible versions are used.
This version of FoxRTU Station should be used with CP-3 processors running firmware
Version 6793 or later.
It may also be used with RTU processors with earlier firmware, subject to the restrictions
outlined under Firmware Compatibility. Be aware that some of the firmware features
described in this manual may not be supported in earlier firmware, or may work differently.
Certain features described in this manual may require firmware that is later than version
6793. These are identified by the note: “(requires recent firmware)”.
Firmware updates are available from the Global Customer Support website
(https://pasupport.schneider-electric.com), and may be installed using FoxRTU Station (see
Downloading Firmware). Check the firmware release notes to determine whether the feature
you require is implemented in that release.
Note: A firmware release contains all the changes and features described in its Release
Notes, including those made in preceding versions and also listed in the Release Notes.
Parallel firmware release streams may exist from time to time, which means that a
chronologically later firmware release (one with higher version number) may not necessarily
contain all the changes and fixes made in a release with a lower version number. For any
release, only those changes listed in its Release Notes are included.
B0780AF, Rev M 15
FoxRTU Station User's Guide Chapter 2: Software Installation
It is recommended that you close all other programs before starting the installation. You may
also need to temporarily disable anti-virus programs.
During installation, you may be prompted to restart your computer. This can be delayed until
after all applications have been installed.
16 B0780AF, Rev M
Chapter 2: Software Installation FoxRTU Station User's Guide
Installation is now complete. If you were requested to restart your computer, do so now.
If you have an ISaGRAF USB protection key, insert it into a USB port on your computer.
You can now try out FoxRTU Station!
B0780AF, Rev M 17
FoxRTU Station User's Guide Chapter 2: Software Installation
Software Updates
Keep your copy of FoxRTU Station up to date by downloading and installing updates as they
become available.
The latest version of FoxRTU Station can be downloaded from the Global Customer Support
website (https://pasupport.schneider-electric.com). Note that the download package contains
FoxRTU Station software only; you will need to already have installed ISaGRAF 5.13.309
from a FoxRTU Station USB flash drive or CD.
To install an update, simply double click on the downloaded executable file. This will start the
FoxRTU Station installer.
New releases of FoxRTU Station will normally be installed alongside the previous release,
so you can have versions 2.2.0 and 2.1.0 installed at the same time, for example. If desired,
the older version can be uninstalled via Windows Control Panel. Minor updates will normally
replace the installed version, e.g. Version 2.2.1 would replace 2.2.0.
Release Notes
Release notes are supplied with each FoxRTU Station release. These describe the changes
made in each version, and any other special instructions that may be required. Be sure to
read these before installing or using FoxRTU Station.
18 B0780AF, Rev M
Chapter 3: Navigation FoxRTU Station User's Guide
Chapter 3: Navigation
Software Layout
FoxRTU Station employs a layout similar to many Windows applications. The Workspace
and many of the menus are contextual meaning the display will vary according to what is
currently selected.
Legend
The title bar displays the name of the active project (if open) and the FoxRTU Station
A program version
E The status bar displays information about the progress or result of an action.
Workspace displays variable information depending on the currently selected items in
F the navigation pane and stacked menu bar. This may include system configuration,
modules, variables and event logs.
The navigation pane displays the hierarchy of projects, groups and RTUs. Clicking on
G an item displays relevant information in the Workspace; double clicking allows the
item’s properties to be viewed and edited.
B0780AF, Rev M 19
FoxRTU Station User's Guide Chapter 3: Navigation
Menu Bar
The commands available from the Menu bar options – File, Edit, Tools and Help are
described below. Some commands can be accessed using shortcut keys. These are listed
alongside the Menu Bar commands shown below.
File Menu
20 B0780AF, Rev M
Chapter 3: Navigation FoxRTU Station User's Guide
Edit Menu
Tools Menu
B0780AF, Rev M 21
FoxRTU Station User's Guide Chapter 3: Navigation
Upload > Service Report: Requests the RTU to prepare a diagnostic service report
(requires firmware version 2918 or later). If you encounter a problem with the RTU, our
support team may ask you to email the service report that the problem can be diagnosed
more quickly.
Advanced > Download MC-3 firmware: Used to download firmware to an MC-3 module.
Status: Displays live status information for the selected RTU. Multiple module status
windows can be viewed at the same time for the one RTU.
22 B0780AF, Rev M
Chapter 3: Navigation FoxRTU Station User's Guide
Help Menu
B0780AF, Rev M 23
FoxRTU Station User's Guide Chapter 3: Navigation
Workspace
The workspace area is context-specific, meaning that it will change according to what is
currently selected in the navigation pane and stacked menu bar.
Default View
View RTUs
View Modules
24 B0780AF, Rev M
Chapter 3: Navigation FoxRTU Station User's Guide
View Dictionary
Event Log
Comms Analyzer
Map
B0780AF, Rev M 25
FoxRTU Station User's Guide Chapter 4: Projects, Groups, and RTUs
Projects and groups are only used by FoxRTU Station to organize how the information is
displayed and saved. Project and group names are not downloaded into the RTU.
All settings for a project (including details for any RTUs defined therein) are saved to a
project folder on the PC’s file system. The name and location of this folder is specified
when you first save the project.
Creating a Project
A new project must be created before any RTU configurations can be created.
You can also create a project by clicking on the Start a new project
link on the default workspace screen.
26 B0780AF, Rev M
Chapter 4: Projects, Groups, and RTUs FoxRTU Station User's Guide
Grouping RTUs
When configuring multiple RTUs, they can be kept in groups. Grouping similar RTUs can
simplify large project layouts, for example, outstations and master RTUs may be grouped.
Adding RTUs
RTUs can be added directly into a project or added into a project group.
Select the project or group name in the navigation pane, then select
New RTU
Renaming
The new project, group and RTUs can be renamed.
B0780AF, Rev M 27
FoxRTU Station User's Guide Chapter 4: Projects, Groups, and RTUs
Project Properties
A project has certain properties that can be set. These relate to the overall project, and do
not affect the operation of any RTU.
28 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
These settings are saved to a project file on the PC, then compiled into a form which can be
downloaded to each RTU’s processor module.
Add Modules
An RTU’s backplanes are organized into between one and four linked racks. Each rack
supports up to 16 modules and may contain either one or two linked backplanes. Therefore,
the maximum number of modules per RTU is 64.
The slot numbers for a given backplane depend on the type of backplane and the rack
number. The rack number is configured using DIP switches on the backplane. Rack #1
always contains slots 1-16, Rack #2 contains slots 17-32, Rack #3 contains slots 33-48 and
Rack #4 contains slots 49-64.
B0780AF, Rev M 29
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Note that:
• The powered backplanes (BP-x) include an integrated power supply, so a PS-xx
power supply module is not required. (An external 12V DC supply is required.)
These backplanes are intended for small, single-rack systems, although additional
passive backplanes (xBPLN) can still be connected.
• The 4-slot passive backplane version 3.3 and higher can be configured (via DIP
switches) to have slot numbers 1-4 or 13-16. Earlier revisions have slots numbered
13-16.
• The symbol denotes a cable link between backplanes.
FoxRTU Station does not distinguish between physical backplanes – it treats the RTU as a
single unit with 64 slots, numbered 1-64. It is important, however that each module’s slot
number be entered correctly. For example, in a small RTU with a single early revision 4-slot
passive backplane, the entered slot numbers should be in the range 13-16, not 1-4.
Likewise, if two 12-slot backplanes are chained together, the available slot numbers will be
1-12 and 17-28, not 1-24.
For more information, refer to the SCD2200 Hardware Manual, available for download from
the Global Customer Support website.
Adding Modules
When you first create an RTU in FoxRTU Station, it will contain two modules by default: a
power supply module in backplane slot 1 and a processor module in slot 2.
Modules can now be added or moved to build up the desired RTU layout.
FoxRTU Station will automatically create variables in the dictionary corresponding to all the
I/O points in each power supply or I/O module.
30 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Example
In the following example project, two RTUs have been defined. Details are displayed for
RTU #17 (“Pump room”). This RTU consists of a single 4-slot rack (slots 13-16), which
contains a power supply, CP-3 processor, digital output module and a communications
module.
B0780AF, Rev M 31
FoxRTU Station User's Guide Chapter 5: RTU Configuration
RTU Properties
The RTU Properties menu allows the global settings of each RTU to be modified. The
settings are grouped into several tabs.
The General tab contains descriptive settings (name, location, etc.) and protocol addressing
information.
32 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Protocols
A protocol is a set of communication commands used to communicate with a device. The
RTU supports the following protocols:
In the above table, if the RTU implements a “master” protocol then it can initiate messages
to another device. These messages are typically triggered when appropriate ISaGRAF
custom function blocks are executed. Conversely, when the RTU acts as a “slave” it
responds to incoming requests.
In the above table, a “serial” port type refers to any serial-based option card, including
RS232/422/485 (COM I), Fibre (COM F), Dialup (COM D), Line (COM L) and Spread
Spectrum Radio (COM R2/R3/R4).
For Ethernet (TCP/IP) based protocols, multiple protocols can generally operate
simultaneously on the same physical Ethernet port. Messages are distinguished using the
TCP or UDP “port numbers” built into TCP/IP. For example, DNP3 messages are normally
directed to TCP/UDP port 20000, while Modbus/TCP messages use TCP port 502.
B0780AF, Rev M 33
FoxRTU Station User's Guide Chapter 5: RTU Configuration
By default, only the FoxRTU protocol is enabled. To set up other protocols, you need to:
• Add the protocol to the RTU configuration. This causes the required driver software
to be started when the configuration is downloaded to the RTU.
• Assign the protocol to the required ports. FoxRTU Station validates all selections,
and prevents you from assigning two different protocols to a serial port, for
example. Note that the HART protocols do not need to be assigned to a port as
they operate using fixed ports.
34 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
FoxRTU Protocol
Overview
FoxRTU Protocol is the “native” protocol for SCD2200 RTUs. By default, it is enabled on all
Ethernet and serial ports.
This protocol allows data to be transmitted through multi-level networks. That is, messages
to a remote RTU can be automatically forwarded via intermediate RTU(s).
The protocol supports the transfer of event logs (historical data), as well as real-time data.
FoxRTU Protocol is also used by FoxRTU Station for querying the status of an RTU, e.g.
checking firmware version, number of logged events, etc.
The RTU implements both the slave and master ends of the protocol, so an RTU can be set
up as a concentrator, which can poll outstation RTUs for events and then be polled by
FoxRTU Station or a SCADA system. When operating as a master, the RTU generates
FoxRTU messages using custom ISaGRAF function blocks.
FoxRTU Variables
To transfer data using the FoxRTU Protocol, registers must be manually created in the
Dictionary to hold the data:
• To store local data where they can be polled by another system, Local FoxRTU
Registers need to be created. These have names of the form FOXRn.
• To store data that have originated from another RTU, Network FoxRTU Registers
should be created. These have names of the form FOXrRn, where r is the RTU
from which they originated.
The FoxRTU Protocol supports two types of polling (In this example RTU1 is polling RTU2):
• Direct polling: The FOX_RX_DATA function block will copy RTU2’s local registers
FOXRn into network registers FOX2Rn on RTU1.
• Indirect polling: The FOX_NW_RX_DATA function block will copy RTU2’s network
registers FOX3Rn and FOX4Rn (assuming RTU2 is set up to poll RTU3 and RTU4)
into RTU1’s matching network registers FOX3Rn and FOX4Rn.
Port Types
The FoxRTU protocol is supported on all port types, except the HART option card.
For Ethernet ports, FoxRTU protocol uses UDP ports 473 and 4058.
Modbus
Overview
Modbus is a simple, widely used protocol which can transfer integer and boolean values.
Modbus does not support the transfer of historical event data. The SCD2200 RTU supports
three Modbus variants:
• Modbus/RTU is used on serial lines, e.g. RS232, RS485
• Modbus/ASCII is also used on serial lines but it uses ASCII encoding, which is less
efficient but can be easier to deal with in some systems
B0780AF, Rev M 35
FoxRTU Station User's Guide Chapter 5: RTU Configuration
For each of these, the RTU supports both the master end (where the RTU initiates a request
when the MODBUS custom ISaGRAF function block is executed), and the slave end (where
the RTU responds to incoming requests).
For serial ports, the Modbus slave functionality can be disabled if desired in the serial port
settings.
For more details on the specific Modbus functions supported by the RTU, refer to the tables
in the Protocol Support section.
Data Types
Modbus defines four types of data points:
• Coils are single bit outputs
• Discretes are single bit inputs
• Holding registers are 16-bit output registers
• Input registers are 16-bit input registers
Points are addressed using a 16-bit index (0-65535). Each point type has a separate
address space, so the maximum quantity of each type of point is 65536.
Modbus Variables
To transfer data using Modbus, variables must be created in the Dictionary to hold the data:
• To store local data where they can be polled by another system, Local Modbus
Registers need to be created. These have names of the form MODCn (coil),
MODDn (discrete), MODHn (holding) or MODIn (input).
• To store data that have originated from another RTU, Network Modbus Registers
should be created. These have names of the form MODrCn (coil), MODrDn
(discrete), MODrHn (holding) or MODrIn (input), where r is the RTU from which they
originated.
Extended Addresses
Note that Modbus addresses are 8 bits long (1-254). When accessing Modbus variables on
an RTU with an address greater than 255, be aware that only the least significant byte (lower
8 bits) of the RTU address will be used in Modbus messages.
For example, if you have slave RTUs with address 20 (0014h) and address 276 (0114h) on
the same multi-drop network (e.g. Ethernet or RS-485), then you will not be able to poll both
of them using Modbus, because the least significant byte of each address is the same. To
rectify this you would need to change one of the addresses, or use different physical ports.
36 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Modbus Settings
Modbus/TCP has some additional settings that can be adjusted:
Modbus/TCP Settings
Right-click on the RTU name and select Properties
(or just double-click the RTU name).
Select the Protocols tab
Select Modbus TCP from the protocols list and click
Edit (or just double-click on Modbus TCP)
DNP3
Overview
Distributed Network Protocol version 3 (DNP3) is a widely used telemetry protocol. It is more
sophisticated than Modbus in that it supports:
• Polling for events (state changes) as well as current values (Class 0 data)
• Optional unsolicited reporting of state changes from slave to master, which reduces
the amount of polling required
• Grouping events into classes (Class 1, 2 or 3) which can be selectively retrieved
• A richer set of data object types
B0780AF, Rev M 37
FoxRTU Station User's Guide Chapter 5: RTU Configuration
A SCD2200 RTU can act as a DNP3 Slave, a DNP3 Master, or both. The RTU can respond
to DNP3 messages (DNP3 Slave), initiate DNP3 messages using DNP3 function blocks
(DNP3 Master) or forward DNP3 messages. DNP3 has various protocol settings that can be
edited as detailed below.
Data Types
The following DNP3 data types are supported:
• Analog inputs are 32-bit integer (variations 1 and 3), 16-bit integer (variations 2
and 4) or 32-bit floating point (variation 5) input registers
• Analog outputs are 32-bit integer (variation 1) or 16-bit integer (variation 2) or 32-
bit floating point (variation 3) output registers
• Binary inputs are single bit inputs (variations 1 and 2)
• Binary outputs are control outputs (variations 1 and 2). Single bit pulse on/off and
latch on/off operations are supported, as well as paired trip/close operation, where
one physical output “trips” the device (turns it off) and the other “closes” it (turns it
on)
• Binary counters are 32-bit integer (variations 1 and 5), 16-bit integer (variations 2
and 6) counter inputs
• Frozen counters are copied from the associated binary counter when a DNP3
“freeze” command is received
DNP Variables
To transfer data using DNP3, variables must be created in the Dictionary to hold the data:
• To store local data where they can be polled by another system, Local DNP3
Registers need to be created. These have names of the form DNPAIn (analog
input), DNPAOn (analog output), DNPBIn (binary input), DNPBOn (binary output),
DNPBCn (binary counter) or DNPFCn (frozen counter).
• To store data that have originated from another RTU, Network DNP3 Registers
should be created. These have names of the form DNPrAIn (analog input),
DNPrAOn (analog output), DNPrBIn (binary input), DNPrBOn (binary output),
DNPrBCn (binary counter) or DNPrBCn (frozen counter), where r is the RTU from
which they originated.
Note that for DNP3, another way to create a specified number of variables is by adjusting the
settings on the DNP3 Protocol settings General tab (such as Number of Binary Inputs).
If the RTU only needs to forward DNP3 messages, DNP3 variables do not need to be
configured. DNP3 messages will be forwarded if a route has been configured for the target
RTU and the DNP3 protocol is enabled on that port. The communication timeout and retry
parameters associated with this route are applied to the DNP3 messages forwarded through
the RTU.
Port Types
DNP3 is supported on all port types, except the HART option card.
For Ethernet ports, DNP normally uses TCP port 20000. It can also be configured to use
UDP port 20000, or an alternative TCP/UDP port number.
38 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
DNP Settings
DNP3 has several additional settings that can be adjusted:
DNP3 Settings
Right-click on the RTU name and select Properties
(or just double-click the RTU name).
Select the Protocols tab
Select DNP3 from the protocols list and click Edit (or
just double-click on DNP3)
B0780AF, Rev M 39
FoxRTU Station User's Guide Chapter 5: RTU Configuration
40 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Note: The default settings for the Timer Poll and the
ISaGRAF cycle time are both 100ms. This means that if
a DNP point is toggled in logic every cycle then it is
possible that some transitions may not generate an
event. If this is unacceptable then the Timer Poll setting
should be reduced (which may impact system
performance), or the ISaGRAF cycle time should be
increased.
B0780AF, Rev M 41
FoxRTU Station User's Guide Chapter 5: RTU Configuration
42 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
If the intermediate RTU is now polled by a DNP3 master, the RTU will return any events and
static values previously read from the outstations, in addition to its own local points.
P6008
Overview
P6008 is a proprietary protocol that enables monitoring and control of the RTU’s I/O via a
control system. The protocol is half duplex and operates over serial option card interfaces.
Unlike DNP3 and Modbus, variables are not created in the ISaGRAF dictionary for P6008
points. Thus, only physical I/O points can be accessed using P6008 – it is not possible to
read values generated by logic.
P6008 uses a 6-bit address field. The RTU address must therefore be set in the range 1-62
to be able to be addressed using P6008. Address 63 is used as a broadcast address.
B0780AF, Rev M 43
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Port Types
P6008 is supported on certain serial port types, as indicated in the following table:
RTU Module Option Card Supported
SCD2200 CP-3 or MC-31 COM-I isolated serial yes
COM-I2 dual isolated serial yes
COM-D dialup modem yes
COM-L 2/4 wire line yes
other -
MC-3 any -
I/O Addressing
P6008 defines six I/O point types: digital inputs, momentary and permanent digital outputs,
analog inputs, analog outputs and counters. Each type has its own separate address space,
except permanent digital and analog outputs, which share the same address space.
In the SCD2200 RTU, the assignment of P6008 addresses, for a given point address space,
starts at 0 with the first I/O module that has points of the specified type. The numbering then
proceeds consecutively through that module’s points, then the next module, and so on. (The
first I/O module is the one with the lowest slot number.)
For modules containing both AO and PO points (which share the same address space), the
AOs precede the DOs in the point numbering sequence.
Power supply modules are not considered to be I/O modules, and their points are not
addressable using P6008.
By default, an I/O module’s digital outputs will be allocated as PO points. They may
alternatively be treated as MO points by setting an option in the module settings dialog. It is
not possible for some points within a module to be configured as POs and some as MOs.
44 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Example
The following table shows how P6008 point addresses, as seen by the P6008 master, would
be assigned for a typical RTU configuration.
Point Slot 3 Slot 6 Slot 7 Slot 12
Type IO-3 DO-2 DO-2 [MO] DI-10
MO 0 - 15
PO 1 (b0-3) 2 (b0-7), 3 (b0-7)
AO 0
AI 0-3
DI 0 (b0-3) 1 (b0-7), 2 (b0-7)
CI 0-6
In this example, the P6008 Momentary Outputs option (see DO-1/2/6 Module Properties)
has been set for the slot 7 DO-2 module only.
For points using type 2 addressing, the point address notation “1 (b0-3)” in the above table
indicates “group 1, bits 0-3”.
Note that because AOs and POs share the same address space, the IO-3 analog output is
assigned address 0, and is then followed by the digital outputs at address (group) 1.
B0780AF, Rev M 45
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Settings
P6008 has several additional settings that can be adjusted:
Data read using the Allen Bradley protocol are transferred using a block of local FoxRTU
registers (FOXRnn).
46 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
SNMP
Simple Network Management Protocol or SNMP is supported on the processor Ethernet
ports. The RTU supports the following modes of operation:
• The RTU can be an SNMP Manager (master), and can send query messages to
other devices using custom ISaGRAF function blocks.
• The RTU can be an SNMP Agent (slave), where it responds to incoming queries.
• The RTU can send or receive SNMP Trap messages (asynchronous notifications)
using ISaGRAF custom function blocks.
Note that each of the above is treated as a separate protocol, and must be added and
enabled separately.
When operating as a slave, the RTU makes available certain configuration and status
information. These are defined in the RTU MIB (Management Information Block) document,
which is available on the Global Customer Support website. The SNMP object identifier
(OID) codes for SCD2200 RTUs are in the range 1.3.6.1.4.1.3833.2.n.n.n. These data
include:
• RTU address and name
• Event log information
• Network interface and traffic information
The SNMP Slave Daemon has the following protocol settings that can be edited. To bring up
this dialog, double click on SNMP Daemon (Slave) in the RTU Properties protocol list.
B0780AF, Rev M 47
FoxRTU Station User's Guide Chapter 5: RTU Configuration
HART
The HART protocol can only be used with a HART option board and is automatically added
to the RTU when a HART port is added to the RTU configuration.
The RTU supports the master end of this protocol. Messages can be initiated by the RTU
using the HART function block, which is based on Revision 5 of the HART protocol.
HART data are stored in a block of integer and floating point FoxRTU network variables
(FOXrRn and FOXrFn), where r is user-specified and not necessarily the same as the
device’s HART address.
User Defined
The User Defined ISaGRAF function blocks can be used to send and receive arbitrary serial
messages. This allows simple serial protocols to be implemented in the ISaGRAF logic
program.
NTP
The Network Time Protocol (NTP) allows the RTU time to be periodically synchronized with
a network time server. This is done by having the RTU send request messages to UDP port
123.
NTP can operate using any Ethernet port: either the CP-3/MC-31 main Ethernet port, or a
port fitted with a T3/A3 option card. As with other protocols, NTP needs to be enabled on the
required port before it can be used.
As with other master protocols, the destination IP address (i.e. the address of the time
server) and the Ethernet port to use are specified by defining a route. The route’s “Target
RTU” address may be set to any unused address – this number is not used by the protocol
itself, but it can be used in logic for updating the route target IP address (using
FOX_SET_ROUTE) or querying communication statistics (FOX_GET_COMM_STATS).
Unlike other master protocols, there is no function block defined for NTP. NTP requests are
sent automatically, at the configured rate. (If requested by the server, the RTU may increase
the interval between polls to reduce server load.)
The time supplied by an NTP server is an absolute time, in UTC. This implies that the RTU’s
system time must also operate using UTC. If NTP is used, you should configure a time zone
for the RTU (see RTU Time Zone). This allows times to be displayed in local time (or UTC, if
you prefer), while internally the RTU’s clock runs on UTC.
48 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
NTP Settings
Right-click on the RTU name and select Properties (or
just double-click the RTU name).
Select the Protocols tab
B0780AF, Rev M 49
FoxRTU Station User's Guide Chapter 5: RTU Configuration
HTTP
If the Hyper Text Transfer Protocol (HTTP) is enabled, certain RTU status information will be
accessible using a standard web browser. The RTU web server will listen for requests on
selected CP-3 Ethernet ports (not MC-31 ports).
HTTP Settings
Right-click on the RTU name and select Properties (or
just double-click the RTU name).
Select the Protocols tab
Select HTTP from the protocols list and click Edit (or just
double-click on HTTP)
http://192.168.0.1
http://192.168.0.1:8001
50 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Terminal Server
Overview
The Terminal Server protocol is used to transparently route data between an Ethernet port
and a serial port. This means that software which normally uses a serial port to talk directly
to a device can, with the help of a serial to Ethernet converter, communicate with the device
remotely via an IP network.
For example, consider a device with an RS232 interface which may be configured by
connecting a serial cable from a local PC workstation to the device and then running
configuration software on the workstation, as shown below.
Workstation
Device
This function may be performed remotely by enabling the Terminal Server protocol on the
RTU. The following diagram shows a typical configuration.
Workstation
Device serial
configuration Virtual COM
software port software
Ethernet
port
IP network
RTU
Ethernet Pass-through
port route Device
(Terminal
Serial
server RS232/485
port
protocol) Serial
(Terminal
port
server
protocol)
B0780AF, Rev M 51
FoxRTU Station User's Guide Chapter 5: RTU Configuration
In this case, virtual COM port software (e.g. TCP-COM, by PC Micro) is run on the
workstation. Any commands sent by the device configuration software to the virtual COM
port are forwarded to the RTU’s IP address via the IP Ethernet network.
Alternatively, an external serial-to-Ethernet converter (e.g. Moxa NPort 5110) may be used
instead of the virtual COM port software.
The RTU performs a similar function when configured for the Terminal Server protocol –
commands received via the Ethernet port are forwarded to an RTU serial port and thence to
the device. Responses from the device are returned to the configuration software in a similar
way.
Note that while the terminal server protocol supports bidirectional data transfer, all
connections must be initiated by the workstation. It is therefore most suitable for poll-
response protocols where the workstation sends a command to the device and the device
responds. If unsolicited serial data is sent by the device then it will be discarded, until a
connection is made from the workstation to the RTU. Once a connection has been
established, any subsequent data sent by the device will be forwarded to the workstation.
The next step is to define a pass-through route between the Ethernet port and the serial
port. This is done using the Pass Throughs tab on the RTU Properties dialog.
Note: Since the terminal server can be enabled for all RTU supported protocols, it is
recommended to use only DNP3 Secure..
52 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
B0780AF, Rev M 53
FoxRTU Station User's Guide Chapter 5: RTU Configuration
54 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Ports
The Ports tab on the RTU Properties dialog is used to configure the physical
communications ports in the RTU. These include Ethernet and serial ports, and include ports
on the processor module (CP-3) and on communications modules (MC-31).
An SCD2200 RTU can address up to 192 ports (although performance is not guaranteed
and users need to consider bandwidth limitations and practice common sense with high port
counts). A single CP-3 or MC-31 module supports one fixed Ethernet port, plus up to two
additional Ethernet ports or up to four additional serial ports.
Port 1 – Ethernet
The Ports tab will initially show a list of all fixed ports, i.e. the Ethernet port (Port 1) on the
CP-3 and each defined MC-31 module. If option card ports are present, you can add these
by clicking the Add button.
Add a Port
B0780AF, Rev M 55
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Once the required ports have been added, most will require various settings to be
configured. These are described in the following sections.
56 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Ethernet
A twisted pair 10/100BaseT Ethernet port is included as Port 1 on the CP-3 and MC-31.
Additional Ethernet ports may be added to the RTU by installing T3 (twisted pair) or A3 (fiber
optic) option cards in Ports 2 or 3 of a CP-3 or MC-31.
To configure Ethernet, double click on the required Ethernet port in the port list on the Ports
tab on the RTU Properties dialog (or click Edit). The following settings are available:
Subnet Mask: (Default=255.255.255.0) This should be set to the correct subnet mask for
the network to which the RTU is connected (check with your network administrator). The
subnet mask defines which part of the IP address is used to identify the network (or
“subnet”) and which part is used to identify a particular device on the network. With the
default setting, the first three numbers in the IP address specify the subnet and the last one
specifies one of 256 devices connected to that subnet.
Gateway: (Default=0.0.0.0, i.e. no gateway) This specifies the IP address of a device on the
local subnet which can forward messages to other networks, or the Internet. If not set then
the RTU will only be able to communicate with devices that are connected to the local
subnet.
B0780AF, Rev M 57
FoxRTU Station User's Guide Chapter 5: RTU Configuration
If required, each Ethernet port can be assigned its own separate gateway. For example,
multiple gateways would be required in applications where the RTU had, for redundancy
purposes, two diverse methods for connecting to the outside world. For example, the primary
link could be an ADSL modem connected to Port 1 on the CP-3, which would be configured
with the ADSL modem’s IP address as the gateway address. The backup link might be a 3G
modem connected to Port 1 of the MC-31, which would be configured with its gateway set to
the 3G modem’s IP address.
Ethernet ports on different modules (as in the above example) can have independent
gateways configured. It is also possible for Ethernet ports in the same module (e.g. ports 1
and 2 of a CP-3) to have independent gateways. See also IP Routes.
Protocols: Protocols which have already been added to the RTU are assigned to the
Ethernet port by ticking the appropriate box(es). Note that MC-31 Ethernet ports only support
FoxRTU, DNP3, Modbus/TCP, NTP and Terminal Server protocols. CP-3 Ethernet ports
support any Ethernet based protocols.
Serial (RS232/422/485)
Serial ports may be added to the RTU by installing COM I (isolated serial) or COM I2 (dual
isolated serial) cards in a CP-3 or MC-31 module. The following electrical standards are
supported:
• RS232 uses single-ended signaling and provides point-to-point communication over
relatively short distances (typically up to 15m, depending on baud rate). The link is
full-duplex (separate wires for each data direction). RTS and CTS signals are
available on the connector and can be used for flow control.
• RS422 uses differential signaling to provide point-to-point or multi-drop
communication over longer distances (typically up to 1000m, depending on baud
rate). The link is full-duplex (separate pairs for each data direction). The RTS signal
is used to enable the transmitter.
• RS485 also uses differential signaling, but is half-duplex. A single pair of wires is
used to connect multiple devices in a multi-drop configuration. Protocols used over
RS485 must verify that only one device transmits at a time. The RTS signal is used
to enable the transmitter.
58 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
To change the serial port settings, double click on the port in the port list on the Ports tab.
Bits per second: The speed at which the RTU will send
or receive messages (75-115200bps).
B0780AF, Rev M 59
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Dual Serial
The COM I2 card supports two independent isolated serial ports, each of which is identical to
that on the COM I card.
The ports are identified using a two part notation: slot.port, where slot is the option card slot
number (2 or 3) and port is the port number within the card (1 or 2). Thus if two COM I2
cards are installed in a module, the four serial ports would be numbered as follows, from top
to bottom: 2.1, 2.2, 3.1, 3.2.
This notation can be used with ISaGRAF function blocks that take a port number as a
parameter, such as FOX_GET_PORT_STATS. For example, if an MC-31 in slot 15 has a
COM I2 card installed in the lower option card slot then you would specify its ports as
‘15:3.1’ and ’15:3.2’.
When a COM I2 card is added, two serial ports are automatically added to the port list (e.g.
port 2.1 and port 2.2). These can then be configured independently. Note however that if
either port is subsequently deleted, both ports will be removed.
Dialup
The Dialup option board (COM D) incorporates a 33.6 kbps PSTN modem.
The basic serial port settings on the Settings tab are the same as for the Serial option cards
– you need to specify the baud rate and other serial parameters, and select the protocol
(only one) that is assigned to the port.
For a PSTN modem, the settings on the Transmission tab are not relevant and should
normally all be left on zero.
The Modem tab contains settings relating to the modem. These are also used when
connecting to an external modem using a serial option card.
60 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Remaining Online
To remain online after connection, set Inactivity timeout to 0 and Hang-up timeout to 0 in
both RTUs in the dialup link. If the line is disconnected, the RTU will reconnect when the
next TX or RX message is initiated from ladder logic.
Line
The Line option card (COM L) is used to connect to a private line or analog radio. The board
is optically isolated, operates at 1200 bps and provides FSK CCITT V.23 modulation.
The basic serial port settings under the Settings tab are the same as the Serial option cards.
The baud rate is fixed at 1200 bps but you can set the other serial parameters and the
protocol.
The transmit timing parameters under the Transmission tab may need to be adjusted when
using the Line option card:
B0780AF, Rev M 61
FoxRTU Station User's Guide Chapter 5: RTU Configuration
HART
The HART option board provides a Bell 202 interface to devices supporting the HART
protocol. Each HART option board can communicate with up to 15 HART devices.
The basic serial parameters (Settings tab) are fixed at 1200 baud for the HART option card.
The HART protocol is the only one supported on this port type, so it will be selected
automatically.
The transmit timing parameters (Transmission tab) may need to be adjusted when using the
HART option card:
62 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
The basic serial parameters (Settings tab) are fixed at the baud rate indicated above. The
desired protocol will still need to be selected.
The parameters on the Transmission tab are not applicable for the SSR option card.
In standard configurations the Vendor ID, Hopping Pattern and Destination Address fields do
not need to be modified as the addressing is performed transparently via the RTU
addressing system.
It is good practice when implementing a system in a build-up area to not use the default
radio settings even if the system is expected to function well. This will help to remove
interference with other radio devices in the area.
B0780AF, Rev M 63
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Routes
RTU Networking
An RTU network consists of two or more RTUs that can communicate with each other in
some way. The communication path is called a route.
This example shows RTU1 as the master RTU and RTUs 2-4 as the remote RTUs. RTU3
also stores and then forwards messages between RTU1 and RTU4.
Each RTU has a “route table” that is referred to when communicating with other RTUs or
devices in the network. Routes only need to be configured for RTUs that are initiating
messages. If an unsolicited message is received from a new RTU, the new RTU route
information will be automatically added to the working route table configuration.
In the above scenario, RTU1 is set up to poll the three slave RTUs. It therefore needs to
have routes defined which tell it how to access each of the slaves.
RTU3 will also need a route set to tell it how to reach RTU4.
64 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
B0780AF, Rev M 65
FoxRTU Station User's Guide Chapter 5: RTU Configuration
66 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Permit UDP communications: By default, DNP3 uses the TCP protocol, which provides
detected error checking and flow control. If this option is enabled then UDP will be used
instead. UDP is a connectionless protocol, and is somewhat similar to using a serial link.
Note: This setting will be ignored if the route is assigned to an MC-31 Ethernet port. For MC-
31 ports, only TCP is supported for outgoing connections.
Enable DNP3 Secure Authentication: The RTU supports DNP3 Secure Authentication v2.
Use this option when the local RTU is a DNP3 Master and is communicating with a DNP3
Slave which requires authentication. When enabled, an Update key can be entered, which
must match that defined on the slave device.
Session key timeout: The Update key is used to create an initial session key. The session
key is automatically changed each Session Key Timeout interval to help protect against
“replay” attacks.
Authentication reply timeout: How long to wait for a reply to the initial authentication
message.
The following sections discuss the route setup for some typical applications.
Indirect Routing
In this example, RTU 1 has serial connections to RTU 2 and RTU 3. RTU 3 has a serial
connection to RTU 4.
The route configuration described below would allow the master to poll any slave, and any
slave to initiate a communication to the master.
RTU Route Target Route
RTU 1 RTU 2 Direct via Port 2
RTU 3 Direct via Port 3
RTU 4 Indirect via RTU 3
RTU 2 RTU 1 Direct via Port 2
B0780AF, Rev M 67
FoxRTU Station User's Guide Chapter 5: RTU Configuration
If the system is purely master/slave, i.e. RTU 2-4 do not need to initiate communications to
the master, then the route configuration could be simplified. RTU1 would still need three
routes so it can reach RTU 2, 3 and 4. However the only other route required would be the
direct route from RTU 3 to RTU 4.
To help prevent both RTU2 and RTU3 responding at the same time, RTU2 and RTU3 are
configured with unique system IDs as shown below. RTU1 sends the indirect message to
RTU2 with a System ID of A1. RTU3 will only respond to messages with a system ID of A2
and so ignores the message. When RTU2 forwards the message to RTU3, the message is
sent with a System ID of A2. RTU3 then responds to the message.
Note: System IDs 00, AC, A5 and FF are reserved. Do not use them.
RTU Route Target Route Sys ID Route
RTU 1 RTU 2 A1 Direct via Port 2
RTU 3 A2 Indirect via RTU 2
RTU 2 RTU 1 AE Direct via Port 2
RTU 3 A2 Direct via Port 2
RTU 3 RTU 2 A1 Direct via Port 2
RTU 1 AE Indirect via RTU 2
68 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
The general rule is that a route should be statically configured in FoxRTU Station if the RTU
needs to initiate messages to a remote RTU (e.g. it is configured as a master, or it needs to
forward messages to another RTU, or it needs to be able to send unsolicited DNP3
messages before any poll messages have been received). If the RTU is acting purely as a
slave device then entering a static route to the master is not necessary.
Dynamic route updates do not actually change the RTU configuration. This means that if the
RTU restarts then it will revert to its statically configured routes. Also, if you upload the
configuration to FoxRTU Station during operation, any dynamic routes will not be visible.
Be aware that a route set dynamically using one of the above two methods may be
subsequently overridden by the other method being triggered, which can sometimes cause
surprising results.
For example, suppose logic similar to that described in Redundant Communications is used
to switch routes when a communications failure is detected. Then if the cable is removed,
the route will switch to the alternative port. If the cable is then restored within a minute or
two, buffered messages in the remote device may be retransmitted and received by the
RTU, which will cause the route to be updated (i.e. restored to the original port).
IP Routes
When sending a poll or response message via an Ethernet port, IP (Internet Protocol)
routing rules are used by the CP-3 or MC-31 module to determine which of its Ethernet ports
to use, if it has more than one.
This decision is based on the destination IP address to which the message is being sent.
Normally, the rule is simple: if the destination is on the same subnet as one of the module’s
Ethernet ports, then that port is used. Otherwise, if a gateway address is defined for one
port, then that port is used.
Note that IP routing rules may override route settings configured in the RTU route table. For
example, suppose Port 1 and Port 2 on a CP-3 have IP addresses 192.168.0.1 and 10.0.0.5
respectively. If you were to define an RTU route that specifies Port=1, Address=10.0.0.7
then the “Port=1” setting would be ignored. Port 2 would be used because the destination
address’s subnet matches that of Port 2.
What if more than one of a module’s ports has a gateway address defined? The following
rules apply:
B0780AF, Rev M 69
FoxRTU Station User's Guide Chapter 5: RTU Configuration
• When operating as a slave, a CP-3 or MC-31 module will always transmit the
response to a poll via the Ethernet port on which the poll message was received.
• If an RTU route which uses a CP-3 port is set or updated then an IP route is
automatically set, to verify that the configured CP-3 port is used for sending
outgoing request messages.
Phone Numbers
If an RTU uses a PSTN port to communicate with remote RTU(s) then the phone number of
each remote RTU is configured on the Phone tab on the RTU Properties dialog.
70 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Programs
One or more programs can be added to the RTU to provide logic processing capability.
When editing a program, FoxRTU Station launches the ISaGRAF Workbench editor.
Programs or function blocks can also be imported from other RTU configurations or projects.
Functional Block Diagram (FBD) is a graphic language. It allows the programmer to build
complex procedures by taking existing functions from the standard library or from the
function or function block section.
Structured Text (ST) is a high level structured language designed for automation
processes. This language is mainly used to implement complex procedures that cannot be
easily expressed with graphic languages. ST language can be used for the description of the
actions within the Steps and conditions attached to the Transitions of the SFC or the Actions
and Tests of the FC language.
Flow Chart (FC) is a graphic language used to describe sequential operations. A Flow Chart
diagram is composed of actions and tests. Between actions and test are oriented links
representing data flow. Actions and tests can be described with ST, LD or IL programs.
Functions and Function blocks of any language (except SFC) can be called from actions and
tests. A Flow Chart program can call another Flow Chart program. The called FC program is
a sub-program of the calling FC program.
Instruction List (IL) is a low level language. Instructions always relate to the current result
(or IL register). The operator indicates the operation that must be made between the current
value and the operand. The result of the operation is stored again in the current result.
B0780AF, Rev M 71
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Note that programs can be created and edited by one of two methods:
• You can use the buttons on Programs tab on the RTU Properties dialog, as
described above. This will launch ISaGRAF and automatically open the editor for
the selected program.
• Or you can click the ISaGRAF button on the toolbar to run the ISaGRAF
Workbench. You can then select the required program from the tree navigator
within ISaGRAF, or create a new program.
Any programs created from within ISaGRAF will be reflected in the list in the RTU Properties
dialog, and vice versa.
72 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
Redundancy Settings
An RTU can have a second CP-3 processor module to provide processor redundancy in
case one processor is unsuccessful.
As described in Configuring Redundant Processors, redundant CP-3 modules can either use
a mirrored configuration (an identical configuration is loaded into the primary and secondary
processors), or independent configurations.
If independent configurations are used, the two processors can be configured to share a
common IP address. Only the currently active processor responds to messages directed to
the shared IP address.
The Redundancy tab is enabled if you have configured a redundant processor RTU (two CP-
3 modules), and mirror mode is switched off (i.e. the CP-3s each have their own
configuration).
To adjust redundancy settings, first verify that Mirror mode is switched off, then double click
on the RTU name in the navigation pane to open the RTU Properties dialog. Click on the
Redundancy tab.
B0780AF, Rev M 73
FoxRTU Station User's Guide Chapter 5: RTU Configuration
Module Properties
Modules and cards have properties that can be configured after the module or card has
been added to the RTU configuration.
To edit a module’s properties, first verify that the list of modules is displayed (select the
Projects workspace), then double click on the desired module. This will display the Edit
Module dialog.
This dialog has a General tab, plus other tabs which vary according to module type. The
following sections describe the available settings for each module type.
On the General tab, you can change the module’s slot number. If you want to change the
type of module then it is necessary to delete the module from the configuration and then add
a new one.
For technical information about the various module types, refer to the SCD2200 Hardware
Manual, available for download from the Global Customer Support website.
PS-1x/2x
CP-3
74 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
MC-31
AI-10
B0780AF, Rev M 75
FoxRTU Station User's Guide Chapter 5: RTU Configuration
AO-2/3
IO-3/5
76 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
DO-1/2/6
B0780AF, Rev M 77
FoxRTU Station User's Guide Chapter 5: RTU Configuration
DI-10
Sequence-of-Events: (Tick to enable each channel or select Seq of Ev button to enable all
channels)
When SOE is enabled, any change of state of the input channel (an event) is recorded in the
event log to an accuracy of 1 millisecond. The DI-10 has an internal buffer with enough
space for 1000 event logs. This means that a DI-10 can cope with bursts of up to 1000
events at a time. Events are uploaded into the processor module at a maximum rate of 100
events per second allowing the DI-10 to cope with events at a sustained rate of 100 events
per second. Events are stored in a circular buffer - which causes the oldest event to be
overwritten with the newest event when the buffer is full.
De-bounce Filters: (None, 1ms, 3ms, 10ms, 30ms, 100ms, 250ms and AC Filter) The value
in the digital input register will not update until the input channel has been at the new state
continuously for the De-bounce Filter time. This is useful when connecting to mechanical
relay or switch contacts. De-bounce filters are applied to groups of 4 channels as shown
above. 'AC Filter' is used when connecting AC inputs to the DI-10 module.
Counter Inputs: (Frequency, Pulse or Quadrature) The DI-10 can have up to 7 counter
inputs which are stored as 16-bit unsigned integer values. Counters can be used on any
input channel(s). Quadrature counting works on pairs of input channels. Channel pairs are
1&2, 3&4, 5&6, 7&8, 9&10, 11&12, 13&14 and 15&16. So, selecting Quad Count on channel
1 will actually work with quadrature on channels 1 and 2. Selecting Quad Count on channel
2 will also work with quadrature on channels 1 and 2, but will reverse the phase of the
inputs. The same applies to the other channel pairs used for quadrature inputs.
S-O-E Protocol: Specifies whether events should be recorded as FoxRTU or DNP3 protocol
events. This is only applicable for inputs where SOE events are enabled.
• If FoxRTU is selected then SOE events (i.e. events with millisecond-accurate
timestamps) of the form SLssDI10Din will be recorded in the RTU event log.
• If DNP3 is selected, then SOE events will be recorded for any DNP3 variables
which are mapped to SOE-enabled inputs.
78 B0780AF, Rev M
Chapter 5: RTU Configuration FoxRTU Station User's Guide
If a DNP3 variable is mapped to a DI-10 input but the input is not SOE-enabled, or the
protocol is set to FoxRTU, then “normal” events (generated by the CP-30 polling the current
state of the input at the end of each logic cycle) will be recorded.
User Type (1-31) and Priority (0-7): These are applied to event logs generated for channels
enabled for Sequence-Of-Events logging. User Type can be used to filter similar types of
logs within the event log list. For example, SOE logs could be type 1 while analog input logs
could be type 2. It will then be possible to only upload type 1 SOE logs or type 2 analog input
logs instead of having to upload all the event logs together. This setting is not applicable if
DNP3 is selected for the SOE protocol.
DI-5
The DI-5 module does not require any configuration.
B0780AF, Rev M 79
FoxRTU Station User's Guide Chapter 6: Dictionary
Chapter 6: Dictionary
Variables
The RTU uses variables to store and access data and these are kept in the Dictionary.
These variables are also used by ISaGRAF Workbench logic programs. Variables are also
sometimes referred to as symbols.
When the Dictionary workspace is selected, new variables can be created and existing
variables can be edited or deleted.
If an I/O module is added to an RTU, FoxRTU Station automatically adds variables to the
dictionary for all the data that are available from that I/O module. For example, if you add a
DI-10 module to the project then 23 variables will be automatically created for that module’s
16 digital inputs and 7 counters. See RTU Variables for details on the variables associated
with each module type.
If desired, some or all these automatically created variables may be deleted if not required.
As noted in ISaGRAF Licensing Details, your ISaGRAF license may be limited to a certain
number of symbols (variables), so it may be necessary to delete unused variables to fit your
application under the variable limit.
ISaGRAF
The Dictionary is shared between FoxRTU Station and ISaGRAF Workbench. All variables
automatically or manually created in FoxRTU Station will appear in the ISaGRAF dictionary
list (press in ISaGRAF Workbench) and may be used in logic programs. Likewise, all
global variables created in ISaGRAF will appear in the FoxRTU Station dictionary.
80 B0780AF, Rev M
Chapter 6: Dictionary FoxRTU Station User's Guide
Dictionary Workspace
An example Dictionary view for an RTU with various types of variables is shown below.
As can be seen in the above example, the Dictionary variables are grouped into categories,
or groups. This process is largely automatic. The ‘+’ and ‘-‘ buttons can be used to expand
and collapse each group.
The Dictionary workspace includes some features to make it easier to deal with what can be
very long lists of variables:
• Filter button. The Dictionary can be filtered so that only variables that contain the
characters specified in the filter are displayed. Enter a few characters from the
name you are looking for and click Filter. Press Clear to clear the filter and show all
variables.
• Sort. By default, variables are sorted by group. By clicking on the column headings
the list can be sorted by the contents of those columns.
B0780AF, Rev M 81
FoxRTU Station User's Guide Chapter 6: Dictionary
Adding Variables
New Variable
Select the New button (located above the variable list). The New
Variable dialog will be displayed. This allows you to create either a
single variable, or a block of automatically generated variables.
Variable Names
There are certain requirements on variable names:
• Variable names must start with a letter.
• Only the first 16 characters of variable names are event logged.
• Variable names may only contain alphanumeric characters (A-Z, a-z, 0-9) and the
underscore character (_).
• Variables starting with the underscore character are reserved and must not be
used.
• Reserved ISaGRAF keywords (e.g. “FALSE”) cannot be used as variable names
(see ISaGRAF - Reserved Variable Names for a complete list).
If the variable name matches the required naming convention (see RTU Variables) then it
will be recognized as a FoxRTU, Modbus or DNP3 protocol variable, and will be displayed
with the corresponding symbol (e.g. for DNP3 variables). User variables that are not
recognized by FoxRTU Station are displayed with the symbol.
Note: If the variable is to be mapped to a protocol (i.e. FoxRTU, Modbus, DNP3) it is better
to use the Multiple tab (see below), as this enforces the required naming convention for
these types of variable.
82 B0780AF, Rev M
Chapter 6: Dictionary FoxRTU Station User's Guide
Retain value: If this option is set then the variable value will be saved to non-volatile
memory after each logic cycle. If the RTU restarts for any reason then the last value will be
restored when logic execution resumes. Note that if this option is enabled then an initial
value cannot be set.
B0780AF, Rev M 83
FoxRTU Station User's Guide Chapter 6: Dictionary
Type: The characters to insert in the variable name between the RTU address and the
register number. This will vary depending on the selected format:
• DNP Types: AI (Analog Input), AO (Analog Output), BC (Binary Counter), FC
(Frozen Counter), BI (Binary Input) and BO (Binary Output).
• Modbus Types: C (Coil), D (Discrete), H (Holding) and I (Input).
• FoxRTU Types: R (Local Register) and F (Floating Point Register – used with
HART protocol only)
• Free format: Any string can be entered here
Register Range: The register numbers to use for the variables. For Modbus and FoxRTU
formats, registers are numbered from 1. For DNP3, registers are numbered from 0.
Data Type: This will be set automatically according to the selected Type value. For free
format variables, a data type can be selected from the list. See ISaGRAF – Variable Types.
The Description at the bottom of the window shows the range of variables that will be
created when OK is selected.
84 B0780AF, Rev M
Chapter 6: Dictionary FoxRTU Station User's Guide
B0780AF, Rev M 85
FoxRTU Station User's Guide Chapter 6: Dictionary
Editing Variables
To delete a variable, select it in the Dictionary workspace and press the DEL key (or right
click and select Delete).
To edit a variable, double click on it (or right click and select Edit). This will open the Edit
Variable dialog:
86 B0780AF, Rev M
Chapter 6: Dictionary FoxRTU Station User's Guide
High Limit: If the scaled variable value is above this limit (specified either as an absolute
value or a percentage of the maximum value) then the point value will be set to the High
Limit and the DNP3 Over Range flag will be set.
Low Limit: If the scaled variable value is below this limit then the point value will be set to
the Low Limit and the DNP3 Over Range flag will be set.
Deadband: An event will only be recorded if the variable’s scaled value changes by at least
this amount. Not applicable if Class is set to None.
Note: If a DNP3 analog input variable is mapped to an AI-10 input which is configured with a
bipolar range (i.e. +/- 2.5V, +/- 5V or +/- 10V), the Low Limit should normally be set to 0. The
limits are symmetrical about the low limit, e.g. if Low Limit=0 and High Limit=1000 then a
scaled value above 1000 or below -1000 will set the Over Range flag.
B0780AF, Rev M 87
FoxRTU Station User's Guide Chapter 6: Dictionary
88 B0780AF, Rev M
Chapter 6: Dictionary FoxRTU Station User's Guide
To export the dictionary, select the required RTU, then File Export To Excel…,
When editing the variables in Excel, be sure not to modify the format. Create new rows by
copying existing rows.
To import the dictionary, select the required RTU, then File Import From Excel…,
B0780AF, Rev M 89
FoxRTU Station User's Guide Chapter 7: Maps
Chapter 7: Maps
Viewing RTU Locations
The Map workspace allows the geographic locations of the defined RTUs to be visualized.
To view the RTU locations, select a project or RTU name in the navigation pane, then click
Map in the Stacked Menu Bar.
Legend
A The drop-down displays the name of the provider that retrieves the map data.
In the Search box, you can enter the name of the place you want to search for and
B view on the map.
D The scroll bar helps to view the entire length of the map.
E The pin points to the location that you have searched for.
The map can be scrolled by dragging with the mouse, and zoomed using the slider on the
right hand edge.
The configured locations of the RTUs in the current project are shown as “push pins” on the
map. The pin for the selected RTU is highlighted in red.
By default, the Google Maps service is used to retrieve the map data. However, alternative
providers can be selected using the control at the top of the workspace. Note that an internet
connection is required to load map data. A system message may be displayed in the map
workspace if web access is unavailable, or there is a problem with the map provider server.
90 B0780AF, Rev M
Chapter 7: Maps FoxRTU Station User's Guide
You can also search for place names by entering them in the Search field, and clicking Find.
Finally, map displays can be saved (e.g. as a JPG file) by clicking the Save button. These
files can then be reviewed in any image editing application, or inserted into a word processor
document, for example.
Positioning an RTU
B0780AF, Rev M 91
FoxRTU Station User's Guide Chapter 7: Maps
Finding an RTU
Once an RTU’s geographical position has been saved in the project, you can then display its
position on a map, as follows:
Right click on the RTU and select Locate. The Map workspace will
open and indicate the location of the RTU.
92 B0780AF, Rev M
Chapter 8: ISaGRAF FoxRTU Station User's Guide
Chapter 8: ISaGRAF
ISaGRAF Overview
ISaGRAF™ provides the logic processing for each RTU. ISaGRAF allows logic to be
created in any of the IEC 61131 control languages: ladder diagram (LD), structured text
(ST), function block diagram (FBD), sequential function chart (SFC) or instruction list (IL).
The flow chart (FC) language can also be used. See RTU Properties – Programs for more
details about the various languages.
The ISaGRAF editor (called Workbench) is used to create and edit logic programs. As noted
in RTU Properties – Programs, ISaGRAF may be launched either by:
• Selecting the required RTU, then clicking the ISaGRAF toolbar button. The required
logic program can then be selected from inside ISaGRAF.
• Right-clicking on the required RTU and selecting Properties, then selecting the
Programs tab, then selecting the required program, then clicking Edit.
ISaGRAF and FoxRTU Station are separate applications, but are closely integrated. Both
share a common database so that variables created in ISaGRAF are visible in FoxRTU
Station, and vice versa.
The following diagram illustrates how FoxRTU Station interacts with ISaGRAF and the RTU
during the process of configuring the RTU.
Workstation RTU
Config FoxRTU
database Station
edit modules
and settings Compiled download Compiled
build config and config and
logic logic
Dictionary ISaGRAF
and logic
database edit logic
Firmware
When you define and configure modules in FoxRTU Station, these settings are saved to a
configuration database. Variables, whether created automatically when a module was added
or manually, are saved to the dictionary, which is part of the ISaGRAF logic database. These
two databases are linked by the overall FoxRTU Station project, which may also contain
configuration and logic databases for other related RTUs.
Before the configuration settings entered in FoxRTU Station and the logic entered in
ISaGRAF can be used by the RTU, they need to be “compiled” or “built”. This can be done
by clicking the Build toolbar button in FoxRTU Station, or it can be done automatically when
a configuration is downloaded to the RTU.
B0780AF, Rev M 93
FoxRTU Station User's Guide Chapter 8: ISaGRAF
The final step is to download the compiled configuration and logic to the RTU, which is done
by clicking the Download toolbar button in FoxRTU Station. You will be prompted to rebuild
the configuration and/or logic if FoxRTU Station detects that they have changed since the
last time they were built. Once the download is complete, the RTU will restart and the
firmware will then begin processing the newly loaded configuration and logic.
Note that while ISaGRAF is running, most functions in FoxRTU Station are disabled. These
will be re-enabled once all ISaGRAF windows are closed.
Function Blocks
Most of the work in a logic program is carried out by function blocks. Programming consists
of selecting the appropriate function blocks and tying them together using the desired
language, e.g. ladder diagram, structured text, etc. Most function blocks have input
parameters which specify the data to operate on and/or option settings.
ISaGRAF provides many built in function blocks, which are divided into several categories,
e.g. arithmetic, process control, signal generation, logical operations, and so on. All are
documented in the ISaGRAF Workbench on line help. You can also create user-defined
function blocks.
Several custom function blocks have been developed to support the operation of SCD2200
RTUs. In ISaGRAF, these are listed in the “FoxRTU” category. Most of these function blocks
relate to communications protocols, event logging or system parameters. Foxboro function
blocks are documented in this manual – see ISaGRAF Function Blocks.
The section ISaGRAF - Logic Examples includes several practical logic fragments for
performing real world tasks.
Getting Started
This section provides a brief tutorial on how to enter, compile and run a simple logic
program.
Note: Some familiarity with Ladder Diagram programming is assumed in this tutorial.
Defining a Program
The first step is to define the modules that make up the RTU. In this example, the 4-slot RTU
described in RTU Configuration - Example is used. Once the RTU has been defined, verify
that the correct RTU is selected in the navigation pane, then press the ISaGRAF toolbar
button to start ISaGRAF.
Note: If you have an ISaGRAF license key, verify that it is plugged into a USB port on your
computer before starting ISaGRAF. See ISaGRAF Licensing Details for more information.
94 B0780AF, Rev M
Chapter 8: ISaGRAF FoxRTU Station User's Guide
The ISaGRAF Workbench will now load. By default, this will show the Link Architecture
screen.
While ISaGRAF provides its own project-related features (represented by the tree view on
the left), these are not used in a SCD2200 RTU environment. Projects (collections of RTUs)
are instead managed by FoxRTU Station. Each RTU defined within a FoxRTU Station
project is associated with its own independent ISaGRAF project.
B0780AF, Rev M 95
FoxRTU Station User's Guide Chapter 8: ISaGRAF
In ISaGRAF, something that can execute logic is called a resource. In a SCD2200 system,
the ISaGRAF project contains exactly one resource: the RTU itself. The window labelled res
lists the logic programs and function blocks (collectively referred to as POUs, or program
organization units) which have been defined for the RTU.
In this example, no logic has been defined yet. We will now create a new program using the
Ladder Diagram language. Right click on Programs, then select Add Program and LD:
Ladder Diagram.
Now double click on the program name. The appropriate editor for the selected language
(Ladder Diagram in this case) will then open:
96 B0780AF, Rev M
Chapter 8: ISaGRAF FoxRTU Station User's Guide
Entering Logic
In this example, the following display settings have been changed to improve legibility:
• Switch off the grid (Options menu > Layout, then uncheck Display grid)
Most functions in the Ladder Diagram editor can be performed using toolbar buttons. The
bottom row contains buttons to insert ladder diagram elements such as contacts (Boolean
inputs), coils (Boolean outputs) and function blocks.
In this simple example, we will create a single rung of logic which will flash one of the LEDs
on the digital output module. A series contact will allow the flashing to be stopped.
Begin by clicking the toolbar button to insert a function block. Because nothing is selected, a
new logic rung will be created, consisting of an unnamed function block and coil. (In Ladder
Diagram, every rung must contain an output, or “coil”.)
B0780AF, Rev M 97
FoxRTU Station User's Guide Chapter 8: ISaGRAF
Double click on the function block to select the required block. In this case, the one we want
is called BLINK, which is in the Signal generation category. Select the category, then the
function block name, then click OK. If you want to learn more about this function block, click
Help.
The ladder diagram will now be updated to contain the name of the function block.
The BLINK function block has one output and two inputs:
• Q is a Boolean output which will switch between true and false at the configured
rate.
• RUN is a Boolean input. If true, then the Q output will oscillate as described above.
• CYCL is a time input, which sets the oscillation period.
We now need to enter the desired time period. Double click the space to the left of the CYCL
label to display the Select variable dialog. Here you can enter a constant value, create a new
variable or select an existing variable.
In this case the time period is constant, so just enter t#1s then click OK. Time interval
constants consist of t#, followed by an integer, followed by a unit (ms, s, m, h or d).
98 B0780AF, Rev M
Chapter 8: ISaGRAF FoxRTU Station User's Guide
Now we need to associate the coil with an output (say output #1) on the digital I/O module in
slot 15. Double click on the coil to again bring up the Select variable dialog.
ISaGRAF variables for each of the module’s output points were automatically created by
FoxRTU Station when the module was added. Note however that I/O points are not just
simple Boolean variables; they are compound structures which contain timestamp and flag
values in addition to the actual data value.
First verify that the Type field is set to All Types. Then scroll down the list of variables to find
SL15DO5DO1 (“slot 15, DO-2/6 module, digital output 1”). Click the “+” icon to expand the
sub-fields within the variable, then select SL15DO5DO1.value and press OK.
B0780AF, Rev M 99
FoxRTU Station User's Guide Chapter 8: ISaGRAF
Because the RUN input to the BLINK function block is connected directly to the left hand
“power rail”, the function block will be permanently active, so the LED will start flashing as
soon as the logic is loaded onto the RTU. Just for fun, we will now add a contact in series
with the function block which will allow us to stop the flashing during operation.
Start by clicking once on the BLINK function block to select it, then clicking the leftmost
toolbar button, which will insert a contact on the left of the selected object.
In this case we will then change the contact to an “inverted” or “normally closed” contact by
clicking the toolbar button once so that a diagonal line symbol is displayed inside the
contact.
Finally, we can create a new variable to control the contact by double clicking on the contact
and then entering a name, say stop into the Select variable dialog. By default, the newly
created variable will be of type BOOL (Boolean), and will have global scope, meaning it can
be used in any program within the RTU.
Because the contact is inverted, when we set the stop variable to TRUE the contact will
open and the function block will be disabled.
Logic entry is now complete so you can close all ISaGRAF windows and return to FoxRTU
Station. You will be prompted to save the ISaGRAF project.
Following the restart, you should see LED 1 on the digital output module start flashing,
indicating that the logic has been successfully loaded.
Note: To download a new configuration to the RTU you will need to know the current IP
address of the CP-3. If this is not the same as the address you have set in the port
configuration then you need to tell FoxRTU Station to use the existing address by clicking
the Connection toolbar button and entering the existing address.
If you don’t know the existing IP address then you have a couple of options:
• If the CP-3 is connected to the local Ethernet network then you can click Discovery,
which will attempt to automatically detect the CP-3.
• You can reset the CP-3 to the factory default address of 192.168.0.1 by performing
a Factory Reset.
The ISaGRAF debug connection uses the IP address configured in the Connection dialog –
by default, the IP address of Ethernet Port 1 on the CP-3. If you want to establish a debug
connection via Ethernet Port 2 or 3 on the CP-3 then you would need to set the appropriate
IP address here.
Note: To use ISaGRAF debugging, verify that it has been enabled in the current RTU
configuration (see RTU Properties dialog).
After the logic has been downloaded and has started running, click the ISaGRAF button to
start ISaGRAF Workbench.
Double click on the name of your program to open the Ladder editor. Then click the Debug
Target button, as shown below.
After a short pause, the logic will be re-displayed, but this time the rungs will be color coded
according to their current state – red for on (true), blue for off (false).
In this case the input to the function block is red (on), and the output will be flashing red and
blue, mirroring the flashing of the LED on the digital output module. (There will always be a
small amount of “lag” due to the time taken to communicate the states over the Ethernet
network, so for fast changing logic some transitions may not be visible in the ISaGRAF
window.)
To modify a value, double click the stop contact, which will cause a status window to pop up:
This shows that the current state of the stop variable is FALSE, which, because the contact
is inverted, causes the input to the function block to be true. If you now click TRUE, the
variable’s state will be changed and you should observe that the LED on the digital output
module stops flashing.
The Lock button allows you to force a variable to a particular state, overriding anything that
might be setting it in the logic program. An asterisk is displayed next to any variable that is
currently locked.
To end a debugging session, click (Stop Debug Target), or close the ISaGRAF windows.
Note: To successfully debug in ISaGRAF, the logic shown in ISaGRAF Workbench must
exactly match that which is running on the RTU. If it doesn’t then ISaGRAF will display a
system message. In particular, if you change any logic or variables in ISaGRAF then to
debug it you will need to first exit ISaGRAF, then download the logic to the RTU using
FoxRTU Station.
ISaGRAF Dictionary
To display a list of all defined variables, click (Dictionary) to display the ISaGRAF
dictionary.
Note: If you click the Dictionary toolbar button an editor window (e.g. Ladder Editor),
ISaGRAF may not automatically switch to the main window containing the Dictionary display.
Click the button on the Windows task bar to switch to the main window.
To filter the display so that only a certain group of variables (e.g. Modbus variables) are
displayed, click the group name in the left hand pane.
This window may also be used during a debugging session, in which case the current
variable values will be displayed.
The above cycle is normally triggered at a fixed rate. By default, the RTU will attempt to
execute a new cycle every 100ms.
Note however that in projects with a substantial amount of logic defined, the above tasks
may take longer than 100ms – in which case the logic cycles will be executed back to back,
as quickly as possible.
To make heavily loaded systems more deterministic, the cycle trigger period can optionally
be increased in ISaGRAF Workbench. On the main ISaGRAF screen, select the Resource
window (normally labelled “res”) and right click the title bar. Select Properties to bring up the
Resource Properties window, then click the Settings tab.
For example, if you know that your logic takes about 250ms to execute then you could set
the Cycle Timing control to 300ms.
During an ISaGRAF debugging session, you can determine the current approximate cycle
time by selecting the Resource window, then clicking the Debug menu and selecting
Diagnosis. The Timing tab will show the current and maximum cycle execution time. These
figures should, however, only be used as a rough guide.
ISaGRAF Tips
For more information about using ISaGRAF, explore the online help within ISaGRAF
workbench.
• The (Search) toolbar button can be used to locate where variables are used, or
globally rename all references to a variable.
• FoxRTU Station is locked while ISaGRAF is running, and most toolbar buttons are
disabled. To continue using FoxRTU Station, ISaGRAF must first be shut down.
• See ISaGRAF - Logic Examples for sample logic to implement several common
applications.
(*) Note: 64-bit and string variables may be used in ISaGRAF logic, but event logging and
returning of these types via protocols such as DNP3 are not currently supported.
Note that some structure definitions may include padding bytes between certain elements,
resulting in the overall structure size, as indicated in the above table, being greater than the
sum of its elements.
IOPOINT Types
Data values originating from an I/O module or DNP3 are represented using IOPOINT_x
types (IOPOINT_B for BOOL variables, IOPOINT_D for DINT and IOPOINT_R for REAL).
These structures contain the following fields:
• value – the current value
• timestamp – (internal use only)
• datatype – (internal use only)
• flags – a set of 8 DNP3-format status bits. For I/O points (e.g. SL12DI10DI3), or
DNP3 points which are mapped to I/O points, bits 0, 5, 6 and 7 will be set
automatically by the RTU:
Bit Name Description
0 ONLINE Set if I/O module is present and working correctly
1 -
2 -
3 -
4 -
5 OVER_RANGE Set if value is over-range (analog input points only)
6 SELECTED Set when a DNP3 SELECT command is received, and cleared when
an OPERATE command is received or a Select timeout occurs
(binary output points only)
7 STATE Copy of I/O point value (binary input or output points only)
For DNP3 points which are not mapped to I/O, bits 6 and 7 will be set automatically
by the RTU:
Bit Name Description
0 ONLINE
1 RESTART
2 COMM_LOST
3 REMOTE_FORCED
4 LOCAL_FORCED
5 OVER_RANGE /
CHATTER
6 REF ERROR / Set when a DNP3 SELECT command is received, and cleared
DISCONTINUITY / when an OPERATE command is received or a Select timeout
SELECTED occurs (binary output points only)
7 STATE Set to the value written when a WRITE or OPERATE command is
received (binary output points only)
When operating as a slave, the RTU may set the STATE and SELECTED bits, as
indicated above. When the RTU is a master, if status information was returned by
the downstream device then all bits will be copied to the flags field.
Note: If you set the value field of a DNP3 variable in logic, then by default all other fields will
be zero. This means that when the master system polls the variable, it will generally mark
the value as “bad” or “offline”, because the ONLINE bit is not set. To rectify this, set the flags
field in logic as well. For example:
Alternatively, the initial value of the ONLINE flag can be set by exporting the configuration to
an Excel spreadsheet, then setting the DnpDefaultOnline column to 1 for the required points.
ISaGRAF Constants
Constant values should be specified as follows:
Type Sample Constants Description
BOOL TRUE, FALSE Boolean value
Integer types 0, -5, 20000 Decimal (base 10) value
16#2CFF Hexadecimal (base 16) value
2#0011_1110 Binary (base 2) value
DNP_CLASS_1, ROUTE_DIRECT Defined words representing particular integer
values (refer to function block definitions)
Floating point 0.0, 3.1415, -2.0 Decimal format, must include decimal point
(Real) types
1.0E-3, 9.222e6, -2.1e+8 Exponential format, must include decimal point
TIME T#0s, T#1m30s, T#90m, T#800ms Time unit symbols are: d, h, m, s, ms
DATE D#2013-3-28 Year-month-day
STRING 'cats and dogs' Enclose strings in single quotes
'dollar$$ and newline$N' Prefix special characters with $:
'tab$09' $$ – $ character
$N – newline (CR,LF)
$T – tab character
$’ – apostrophe character
$nn – ASCII character nn (hexadecimal)
Note: String constants entered in the Ladder
Diagram editor will be converted to uppercase.
The following Defined Words (symbolic constants) can be used instead of numeric
constants.
Defined Word Value Used for Function Blocks
PROTOCOL_KINGFISHER 1 FOX_GET_ROUTE, FOX_SET_ROUTE,
FOX_GET_PENDING, FOX_CLEAR_PENDING
PROTOCOL_DNP3 8
PROTOCOL_SNMPC 12
PROTOCOL_MODBUS_ASCII 14
PROTOCOL_MODBUS_RTU 15
PROTOCOL_MODBUS_TCP 16
PROTOCOL_AB 18
PROTOCOL_HART 19
DNP_CLASS_0 1 DNPM_CLASS_POLL,
DNP_CLASS_1 2 DNPM_UNSOL_ENABLE, DNPM_UNSOL_DISABLE,
DNPS_UNSOL_ENABLE, DNPS_UNSOL_DISABLE
DNP_CLASS_2 4
DNP_CLASS_3 8
DNP_CTRL_PULSE_ON 1 DNPM_BINARY_COMMAND
DNP_CTRL_PULSE_OFF 2
DNP_CTRL_LATCH_ON 3
DNP_CTRL_LATCH_OFF 4
DNP_AUTO_NONE 0 DNPM_BINARY_COMMAND,
DNPM_ANALOG_16BIT_COMMAND,
DNP_AUTO_OPERATE 1
DNPM_ANALOG_32BIT_COMMAND,
DNP_AUTO_FEEDBACK 2 DNPM_ANALOG_FLOAT_COMMAND
DNP_FC_SELECT 3 DNPM_BINARY_COMMAND,
DNPM_ANALOG_16BIT_COMMAND,
DNP_FC_OPERATE 4
DNPM_ANALOG_32BIT_COMMAND,
DNP_FC_DIRECT 5 DNPM_ANALOG_FLOAT_COMMAND
ROUTE_DIRECT 0 FOX_GET_ROUTE, FOX_SET_ROUTE
ROUTE_INDIRECT 1
SNMP_BOOLEAN 1 SNMP_SET_VALUE
SNMP_INTEGER 2
SNMP_BITSTRING 3
SNMP_OCTETSTRING 4
SNMP_NULL 5
SNMP_OBJECTID 6
SNMP_IPADDRESS 64
SNMP_COUNTER 65
SNMP_GAUGE 66
SNMP_TIMETICKS 67
SNMP_OPAQUE 68
SNMP_NSAP 69
SNMP_UINTEGER 71
The I/O point limit effectively constrains the number of readable and settable registers
available to FoxRTU Station and ISaGRAF. Note that unused variables can be deleted from
the dictionary to save on license I/O slots.
For example, a system comprising of a PS-1x, CP-3 and an IO-3 uses 31 I/O points, as
follows:
Module I/O Type I/O Function No. Of Variables
PS-1x Analog Inputs 1 to 7 Current and Voltage 7
measurement
Digital Inputs 1 to 8 Charge States and Flags 8
Digital Outputs 1 to 3 Power Control 3
IO-3 Analog Inputs 1 to 4 Misc. Analog Input 4
Analog Output 1 Misc. Analog Output 1
Digital Inputs 1 to 4 Misc. Digital Inputs 4
Digital Outputs 1 to 4 Misc. Digital Output 4
Total: 31
If this system was not required to monitor any power usage or facilitate a backup battery, the
variables assigned to the PS-1x can be removed, freeing up 18 I/O points.
For additional information on specific variables on each module, see RTU Variables.
These function blocks are shown in Ladder Diagram form. However they can be used in any
of the languages supported by ISaGRAF.
Note: The EN (Enable) and ENO (Enable Out) parameters on each function block are only
present when the block is used in a Ladder Diagram program. The function block will be
executed every cycle, while the EN input is true. The state of EN is copied to the ENO
output.
See ISaGRAF - Logic Examples for some practical examples of using these function blocks.
Note that there are some function blocks listed in ISaGRAF which are no longer supported
and must not be used. See Obsolete Function Blocks for more details.
FoxRTU Protocol
The following function blocks are used to initiate FoxRTU protocol operations.
A FoxRTU register variable must be created in the Dictionary for every point that you wish to
transfer using FoxRTU protocol.
If the RTU is operating as a slave device then it is not necessary to call these function
blocks. Simply load the required values into local FoxRTU registers (FOXRn), either by
mapping them to I/O module points or by setting them in logic.
FOX_RX_DATA
For example, to update registers FOX10R1, FOX10R2 and FOX10R75 (by polling RTU
#10), then you would set RTU=10, NBR=3 and then create an INT_ARRAY variable to
specify the three register numbers. This is done from the ISaGRAF Dictionary page. Set the
initial values of the array elements as follows:
Then specify the name of the array (RTU10regs in this example) for the function block REG
parameter.
FOX_TX_DATA
For example, to send the values of registers FOXR1, FOXR2 and FOXR75 to an RTU with
address 10, you would set RTU=10, NBR=3 and then create an INT_ARRAY variable to
specify the three register numbers, as described in FOX_RX_DATA.
FOX_NW_RX_DATA
For example, suppose RTU #10 is set up to poll RTU #2 and RTU #3. To read and update
network registers FOX2R1, FOX2R2, FOX2R42, FOX3R1 and FOX3R101 (by polling RTU
#10) you would set RTU=10 and NBR=5.
Then create an INT_ARRAY variable to specify the five register numbers, and another
INT_ARRAY to specify the source RTU address for each of these five registers. This is done
from the ISaGRAF Dictionary page. Set the initial values of the array elements as follows:
Then specify the names of the arrays (RTU10regs and RTU10addresses in this example) for
the function block REG and NRTU parameters.
FOX_NW_TX_DATA
For example, to send the network registers FOX2R1, FOX2R2, FOX2R42, FOX3R1 and
FOX3R101 to RTU #1 you would set RTU=1 and NBR=5.
Then create an INT_ARRAY variable to specify the five register numbers, and another
INT_ARRAY to specify the source RTU address for each of these five registers, as
described in FOX_NW_RX_DATA.
FOX_RX_UPDATE_SINGLE
FOX_GET_VARIABLE
FOX_SET_VARIABLE
FOX_RX_EVENT_LOGS
Note: If the remote RTU address is less than 256 then a “Series 2” event log request is
performed. This will only return events relating to FoxRTU registers and I/O module points. If
the RTU address is greater than or equal to 256 then a “Series 3” request is sent, which will
return all event logs.
FOX_TX_EVENT_LOGS
Note: If the remote RTU address is less than 256 then a “Series 2” event log request is
performed. Only events relating to FoxRTU registers and I/O module points will be sent. If
the RTU address is greater than or equal to 256 then a “Series 3” request is sent, which will
send all event logs.
DNP3 Protocol
The following function blocks are used to initiate DNP3 protocol operations.
Function blocks with names beginning with DNPM_ are used when the RTU is operating as
a DNP3 master, while DNPS_ function blocks are used when the RTU is operating as a
DNP3 slave.
A DNP3 variable must be created in the Dictionary for every point that you wish to transfer
using the DNP3 protocol.
If the RTU is operating as a slave device then it is not necessary to call these function
blocks. Simply load the required values into local DNP3 registers (DNPBIn, DNPAIn etc.),
either by mapping them to I/O module points or by setting them in logic.
DNPM_CLASS_POLL
Polls a remote DNP3 device for static values (class 0 data) and/or
events (class 1/2/3 data).
For example, to read the current states of all DNP3 variables (i.e. class 0 data) and all class
1 events from a DNP3 device with address 3008 then you would set ADDR=3008 and
MASK=3. If a variable DNP3008BI22 was defined on the local RTU then its value would be
updated (assuming that DNP Binary Input #22 was defined on the slave device). If the
variable was defined as class 1, then any events received from the device relating to this
variable would be logged.
Any received static (class 0) data for which DNP3 variables are not defined will be
discarded.
Note: The DNP3 protocol does not transmit class information along with each event. When
DNP3 events are received and logged by the RTU, the event logs will each be tagged with
the lowest event class number that was requested (1, 2 or 3). This means that if multiple
classes of DNP3 events are requested simultaneously, then the class number that will be
attached to the event logs will not necessarily match that of the original point on the remote
source RTU.
This can be important where the RTU is operating as a concentrator, i.e. polling slave DNP3
devices and in turn being polled by a DNP3 master.
For example, suppose a remote slave device contains two DNP3 points DNPBI101 (class 1)
and DNPBI102 (class 2). If the RTU performs a Class 1+2 poll (MASK=6) then all events for
both these points will be logged as Class 1 events. If a master system then issues a Class 2
poll to the RTU, events for DNPBI102 will not be returned.
If you wish to preserve the original point’s class in the event log then separate class 1, 2 and
3 polls should be performed. Likewise, the DNPM_INTEGRITY_POLL function block (which
performs a Class 0+1+2+3 poll) must not be used.
DNPM_INTEGRITY_POLL
Polls a remote DNP3 device for static values (class 0 data) and
events (class 1/2/3 data). Equivalent to calling
DNPM_CLASS_POLL with MASK=15.
Note: Events logged by the RTU using this function block will all be marked as Class 1
events, which may not be desirable in situations where the RTU is in turn being polled by a
master system. See DNPM_CLASS_POLL for more information.
DNPM_READ_GROUP
For example, if ADDR is set to 205 and GRP is set to 30 then analog input variables
(DNP205AInn) would be updated.
DNPM_ANALOG_16BIT_COMMAND
If this confirmation procedure is not required then a single Direct Operate message can be
used. The master can then optionally poll the outputs to verify that they were set.
The following combinations of the FC and AUTO function block parameters may be used:
FC AUTO Action
DNP_FC_SELECT DNP_AUTO_NONE Send Select message
DNP_FC_SELECT DNP_AUTO_OPERATE Send Select message. If valid response from slave then send Operate
message.
DNP_FC_OPERATE DNP_AUTO_NONE Send Operate message
DNP_FC_OPERATE DNP_AUTO_FEEDBACK Send Operate message. Wait for specified delay, then send Feedback
Poll message.
DNP_FC_DIRECT DNP_AUTO_NONE Send Direct Operate message
DNP_FC_DIRECT DNP_AUTO_FEEDBACK Send Direct Operate message. Wait for specified delay, then send
Feedback Poll message.
DNPM_ANALOG_32BIT_COMMAND
DNPM_ANALOG_FLOAT_COMMAND
DNPM_BINARY_COMMAND
DNPM_FREEZE_COUNTERS
DNPM_UNSOL_ENABLE
DNPM_UNSOL_DISABLE
DNPM_COLD_RESTART
DNPM_WARM_RESTART
DNPM_CLEAR_RESTART
DNPM_LINK_RESET
DNPM_TIME_SYNC
DNPS_NEED_TIME
DNPS_UNSOL_ENABLE
DNPS_UNSOL_DISABLE
Modbus Protocol
The following function blocks are used to initiate Modbus protocol operations.
A Modbus variable must be created in the Dictionary for every point that you wish to transfer
using the Modbus protocol.
If the RTU is operating as a slave device then it is not necessary to call this function block.
Simply load the required values into local Modbus registers (MODCn, MODIn etc.), either by
mapping them to I/O module points or by setting them in logic.
MODBUS
Note: In some systems, the type of Modbus point is identified by adding a digit on the front
of the register number, as follows:
• Coils are numbered 000001-065535 (or 00001-09999)
• Discrete inputs are numbered 100001-165535 (or 10001-19999)
• Input registers are numbered 300001-365535 (or 30001-39999)
• Holding registers are numbered 400001-465535 (or 40001-49999)
The value specified for the SRC and DST parameters must not include this initial digit, e.g.
to specify the first holding register use the value 1, not 40001. (The type of register is implied
by the function code.)
ABDF1_RX
The returned status code and data values will be stored in local
FoxRTU variables (FOXRnn), which must have been created in
the Dictionary.
For example, if you set NUM=5 and DEST=100 then the status code would be stored in the
variable FOXR100 and the data values would be stored in FOXR101 through FOXR105,
assuming these variables have been created in the Dictionary.
ABDF1_TX
HART Protocol
The following function blocks are used to initiate HART protocol operations.
HART
SNMP_GET_INT
Note: In the ISaGRAF Ladder Diagram editor, all string constants are converted to upper
case. This means that if you specify ‘public’ as the community name then it will be
transmitted to the device as ‘PUBLIC’. A workaround to allow lower case to be specified is to
create a string variable and set its initial value to the required string. Then specify the string
variable name rather than a string constant as the function block parameter.
SNMP_GET_UINT
SNMP_GET_STRING
SNMP_GET_OBJID
SNMP_GET_BULK
If the required variable does not exist for a particular object then
the object value will be discarded.
SNMP_SET_INT
SNMP_SET_UINT
SNMP_SET_STRING
SNMP_SET_OBJID
SNMP_SET_VALUE
SNMP_GET_TRAP
If no trap messages have been received then an empty string is returned for COM, IP and
OID, and 0 is returned for GTRP, STRP and TIME.
SNMP_SEND_TRAP
USER_TX
USER_RX
USER_RX_BYTES
Returns the number of bytes that have been received from the
remote device, but not yet read (using USER_RX).
General Communications
These function blocks return information about the status of the various communications
links managed by the RTU.
FOX_GET_COMM_STATS
Furthermore:
• If a retry count is set then each attempt counts as a message.
• For DNP3, the message counts are really message fragment counts.
FOX_RESET_COMM_STATS
FOX_GET_PORT_STATS
For example, to retrieve statistics for the built-in Ethernet port on the CP-3 you would set
PORT=’0:1’. To specify port 3.2 (bottom port on a COM I2 card in option card slot 3) on an
MC-31 in slot 22, use PORT=’22:3.2’.
FOX_RESET_PORT_STATS
FOX_GET_PENDING
FOX_GET_ROUTE
FOX_SET_ROUTE
Event Logging
The following function blocks are used to create and manage event logs on the local RTU, or
a remote RTU.
FOX_EVENT_LOG
Logs the current value of any global ISaGRAF variable, along with
timestamp and other information.
FOX_CLEAR_EVENT_LOGS
FOX_GET_EVENT_LOG_COUNT
FOX_GET_ADDRESS
FOX_GET_FIRMWARE
FOX_GET_RTU_TYPE
FOX_GET_SYSTEMID
FOX_GET_PROCESSOR
FOX_GET_MODULE_TYPE
FOX_GET_MODULE_OK
FOX_RESET_MODULE
For I/O modules, the CP-3 internally marks the module as absent,
after which the module will be re-detected and its configuration
reloaded.
REBOOT
Note: This function block has no input or output parameters, so it is not directly usable in
Function Block Diagram (FBD) programs. You can, however, create a small Ladder Diagram
function that calls REBOOT, then call that function from a FBD program.
FOX_GET_RTC
FOX_SET_RTC
FOX_GET_TIME
FOX_SET_TIME
GET_BP12V
GET_LOWBATT
Once the battery has been replaced, this flag will be cleared after
the next power cycle.
SET_BPFIELD
SET_BPAUX
INCREMENT
DECREMENT
ChangeDetect
MulDiv
MULDIV_INT
BCD_TO_BINARY
BINARY_TO_BCD
FPACK
FUNPACK
F64PACK
F64UNPACK
U32PACK
U32UNPACK
U64PACK
U64UNPACK
NBIT
NCBT
NOBT
PID Controller
The proportional-integral-derivative (PID) function block calculates the difference (or
detected error value) between a measured process value and a desired setpoint and
attempts to minimize this difference by adjusting the output variable. The PID calculation
takes into account:
• A proportional component which calculates a response proportional to the current
detected error value
• An integral component which calculates a response based upon accumulated error
detected
• A derivative component which calculates a response based upon the rate of change
of the detected error value.
FOX_PID
Kp = Proportional constant
Ki = Integral constant
Kd = Derivative constant
t = Sample interval
FOX_AGA3
FOX_AGA5
VLMS BOOL FALSE means FLOW value is in volume. TRUE means FLOW value is
in mass.
WGVL BOOL FALSE means compound percentages are in weight %. TRUE means
compound percentages are in volume %
WMUT USINT FLOW units:
If VLMS = FALSE: 1=cubic feet, 2=cubic meters, 3=liters, 4=MCF.
If VLMS = TRUE: 1=lb (gas pounds), 2=ounces, 3=kilograms, 4=grams.
ENUT USINT ENGY units:
1=BTU, 2=Therm, 3=dekaTherm, 4=Kilowatt Hour, 5=Megajoule
ENGY REAL Energy in units specified by ENUT
ERR BOOL Set TRUE when input parameters are invalid or their value led to an
inconsistent algorithm result.
FOX_AGA7
FOX_AGA8_G
FOX_AGA8_D
FOX_NX19
IMAGE
This function block is not supported.
TRIO
This function block is not supported.
FOX_CLEAR_PENDING
This function block is not supported.
DNPM_LINK_RESET
This function block is not supported.
CURRENT_ISA_DATE
This function block is not supported.
AS_AE
This function block is not supported.
FC_GET_STAT
This function block is not supported.
MATRIX
This function block is not supported.
Detecting Modules
The logic below uses the FOX_GET_MODULE_OK function block to confirm that the
modules detected in slots 1, 2 and 3 match the configuration loaded in the RTU.
Scaling
The logic below uses the MULDIV_INT function block to convert an analog input
(SL03IO3AI1.value) into engineering units. The input has a raw range of 0-32760. The input
is divided by 32760 and then multiplied by 10000 to convert it to a range of 0-10000. This
value can then be displayed as 0-1000.0 or 0-100.00 L/s in SCADA software. FlowLperSec
is a DINT variable.
Hours ON
Every 3600 milliseconds (3.6 seconds or 1/1000th of an hour) the logic below checks if
SL03IO3DI1.value is ON and if it is, HrsRun (a DINT variable) is incremented. HrsRun then
contains the number of 0.001 hour intervals that the input is ON i.e. 0 to 999,999 = 0 to
999.999 Hrs.
Counting Pulses
I/O inputs are sampled once per ISaGRAF logic cycle (nominal rate 100ms). This means
that low speed pulses (up to 5 pulses per second) can be counted using logic.
The actual pulse rate that the RTU can count depends on how fast the logic and I/O are
processed. The nominal cycle time can be longer than 100ms if there is a large amount of
logic or communications to process.
To count higher pulse rates (up to 10 kHz), a DI-10 or DI-5 digital input module can be used.
These modules have dedicated hardware counters and do not rely on the logic cycle time to
count pulses.
The logic below shows how to count pulses using a positive (rising) edge trigger contact (“P’
indicator in the contact symbol). Every time there is a new pulse, PulsesToday (a DINT
variable) is incremented.
Flow Totalization
The following example shows how to accumulate a flow volume from a flow-rate analog input
(SL03IO3AI1.value). For this example, the flow-rate engineering units are 4-20mA=0-1000
L/s. Each second, the number of liters that have flowed (FlowLastSec [a DINT variable]) is
calculated by dividing the analog input by 32760 (the raw analog input range) and then
multiplying by 1000 (the high limit of the engineering units). This number of liters is then
added to the FlowToday total (a DINT variable).
Daily Totals
Daily totals are created by rolling over current totals at midnight. The current totals are
copied to yesterday totals and then the current totals are reset.
In the example below, CurrentDAY and SavedDAY are DINT variables and Rollover is a
BOOL variable. The FOX_GET_TIME function block is used to check the current time. When
the value for CurrentDAY changes at midnight, SavedDAY is updated and Rollover is set
TRUE for one logic scan.
When Rollover is TRUE, the PulsesToday total is copied to PulsesYesterday and then zero
is copied to PulsesToday.
Note that if the DNP3 protocol is used then no logic is required – simply map DNP variables
onto the required I/O points and enable unsolicited reporting. This section describes how to
achieve this using FoxRTU protocol.
In this case the LocalRegisters array need only contain one element, and that element
should be the value 1 (to indicate that register FOXR1 should be sent).
The constant to use is calculated as percentage of the analog or register range. For analog
inputs which have a range of 0-32760 (32767 for an AI-10), a 1% change is represented in
the RTU by a change of about 328 (0.01 x 32760). Similarly, a 5% change is represented in
the RTU by a change of 1638 (0.05 x 32760).
To send the new analog value (that was copied to FOXR2 in the logic above) to another
RTU, use the same method as for Sending The Exception Report above.
Event Logging
The RTU can keep a record of variables and their values over time. FoxRTU or DNP3
variables can be logged on change or periodically. The maximum number of event logs that
an RTU will keep is configured in the RTU Properties, General tab. By default, the RTU will
keep up to 10,000 event logs.
Basic Polling
The logic below polls RTU7 Local Register Variables 1, 2 and 100 every 60 seconds. If the
poll is successful then registers FOX7R1, FOX7R2 and FOX7R100 on the local RTU will be
updated.
The logic below polls RTU7 Local Register Variables 1, 2 and 100 when the data is too old.
The maximum age of data (in minutes) is set in the variable MaxDataAge (DINT). If a
message is received from RTU7 or a poll has occurred, the RTU7QuietTimer (DINT) is reset
to 0.
Modbus Protocol
SCD2200 RTUs can be configured to behave as a Modbus master or slave. The following
examples outline both configurations.
Note that Modbus addresses are 8 bit, so if the RTU’s address is greater than 255 then only
the lower 8 bits should be specified when configuring the master device. See Modbus
Extended Addresses for more details.
The logic below polls Modbus holding registers 1001 and 1002 from RTU7 using the Modbus
protocol every 10 seconds. The data are stored in MOD7H1001 and MOD7H1002. Modbus
function code 3 (Read Holding Registers) is used.
Also, when the SetData variable is set the local holding register MODH1 will be written to
holding register 1010 on the slave device. Modbus function code 6 (Write Holding Register)
is used; if more than one register needs to be written then function code 16 (Write Multiple
Holding Registers) can be used.
The logic below polls 50 registers starting at N10:1 from an Allen Bradley PLC (station
address 26) every 10 seconds and stores the data in FOXR10 to FOXR60.
Note 1: The simplest way to connect between an RTU serial port and an Allen Bradley PLC
is to use an RS232 null modem cable (can use the ADP-05 adaptor and an RJ45 to RJ45
patch lead). An Allen Bradley SLC5/03 CPU has a DB9 male port while the SLC5/02 CPU
has an RS485 RJ45 port and may need to have a communications module installed for
RS232 (RS485 can be used instead).
Note 2: If a 1785-KE interface module is used between the PLC and the RTU, the 1785-KE
station number must also be configured in the Route list. The PLC should then be configured
as an indirect link via the 1785-KE station address.
Redundant Processors
Overview
To configure a redundant processor, simply add a second CP-3 module to the RTU. The
second CP-3 will act as a backup and will automatically take over if the primary processor
failure is detected.
One CP-3 processor must be installed in an even-numbered slot of the RTU backplane and
one processor must be installed in an odd-numbered slot of the backplane. The processor
installed in the even-numbered slot is called the primary processor, while the processor
installed in the odd-numbered slot is the secondary processor.
Initially, the primary processor operates in active mode: it scans the I/O, runs the logic, and
initiates and responds to communication messages. The secondary processor remains in
standby mode ready to switch to active mode if the primary processor failure is detected.
The standby processor ports still respond to communications messages, but it does not run
its logic or initiate messages, and will reject any write requests.
To keep the standby processor up to date, logic information, event logs and communication
indices are regularly updated in the standby processor while the active processor is running.
The processor modules do not need to be installed physically next to each other. They just
need to be in odd and even-numbered slots somewhere on the RTU backplane.
• ISaGRAF symbols (dictionary variables) that were modified during the last cycle of
logic execution. This includes function block parameters.
• FoxRTU and DNP3 event logs. The values, flags and time stamps as recorded in
the active processor module are all copied.
• DNP3 event list indices
• Time is synchronized every second. Note: protocols are only enabled on the
standby processor after receiving the first time synchronization from the active
processor. This verifies that I/O points have been read from the hardware modules
before the protocol is enabled.
Note: Variables (e.g. arrays) which are larger than 1000 bytes will not be synchronized. You
should structure your logic such that no variable or array is larger than this size. See
ISaGRAF Variable Types for information on the sizes of various data types. For example, an
IOPOINT_D variable is 16 bytes long, so to be synchronized, an array of these variables
should contain no more than 62 elements.
Note: If all the event logs are cleared in the active processor during operation (e.g. using
logic, or command from FoxRTU Station), then the event logs in the standby processor will
also be cleared.
When a CP-3 starts up, it first monitors backplane activity for a period of time. It will only
decide to become the active processor if no activity is detected. This initial timeout is 500ms
for the primary (even slot) processor, and 10,000ms for the secondary. This asymmetric
setting verifies that when both are powered up simultaneously, it will be the primary
processor that initially becomes active.
Note that apart from this bias on initial startup, the primary and secondary processors are
otherwise treated equally. For example, if the primary CP-3 is removed (causing the
secondary to become active) and then replaced, the secondary will continue to operate as
the active processor. The primary will only become active if the secondary is unsuccessful.
In FoxRTU Station, after creating a new CP-3 RTU configuration, add a second CP-3
module to the RTU. FoxRTU Station will automatically label the processors “Primary” and
“Secondary”.
By default, a single mirrored configuration will be created. This can then be downloaded to
the primary and secondary processors in turn.
With mirror mode switched off, FoxRTU Station will maintain two separate configurations. At
any one time, you will be editing either the Primary or the Secondary configuration. The
configuration being edited is indicated by:
• One of the CP-3 modules being highlighted in the module list, and
However, often it is useful to record when changeovers occur, and possibly perform different
actions depending on whether the primary or secondary processor is active.
The FOX_GET_PROCESSOR function block is useful here. This returns the slot number of
the currently active processor. By comparing this to the configured slot numbers of the
primary and secondary processor you can determine which is running, and then trigger any
actions that may be required.
Another useful function block is FOX_GET_MODULE_OK, which can be used to verify that
the standby processor is still functional, and raise an alarm if it is not.
Shared IP Address
It is often desirable to be able to address each CP-3 individually for maintenance purposes,
yet have a SCADA system address the RTU as a whole without necessarily knowing which
CP-3 is active.
The primary and secondary CP-3s are configured with individual IP address (say,
192.168.0.1 and 192.168.0.2). A third IP address (e.g. 192.168.0.10) is then configured via
the RTU Properties dialog – see RTU Properties – Redundancy.
The currently active processor will then respond to any requests received on its actual IP
address or the shared IP address. The standby processor will ignore the shared IP address,
at least until it takes over control.
The SCADA system should be configured to poll the shared IP address. A maintenance tool
such as FoxRTU Station can access the individual CP-3s (e.g. to load a new configuration)
using their individual IP addresses.
Downloading Configurations
For a mirrored configuration, the procedure for downloading the configuration to the RTU is
as follows:
1. Connect Ethernet or serial cable to the primary CP-3.
2. Connect to the RTU in FoxRTU Station and download configuration.
3. Connect Ethernet or serial cable to the secondary CP-3.
4. Connect to the RTU in FoxRTU Station and download configuration.
When two power supplies are present on the backplane, one power supply can be hot
swapped while the RTU is still running. This does not cause any interruption to the processor
or inputs and outputs.
To determine the Total Current supplied by both power supplies to the RTU modules and
batteries, the current load for each power supply (SLssPS11AI3.value) can be read and the
two figures are totaled.
Redundant Communications
It is possible to change the port and/or route used to communicate with a remote RTU if
there is a communications failure detected.
Note: Communications ports on the standby processor cannot be used for redundant
communications, since communications with these ports are restricted while the processor is
in standby mode (see Active and Standby Processor Operation).
The example below shows how to use CP-3 port 2 as the active port and CP-3 port 3 as the
redundant port. Initially RTU1 is configured with a direct route to RTU7 using port 2. The
ladder diagram below shows how to swap ports after 11 detected failed communication
attempts to RTU7. The configuration will keep switching between ports if communications
continue to fail detected.
Active
RTU1 RTU7
Redundant
Several custom function blocks are used below. Please see the topic ISaGRAF Function
Blocks for function block details and parameter types. In this example, the DNP3 protocol is
used; however, the technique is equally applicable other protocols.
In this example, traffic was switched from one port to another if a failure was detected. The
same method could also be used to switch from a direct to an indirect route. For example, if
a direct radio link between two distant RTUs was not available then the sending RTU could
fall back to forwarding traffic via an intermediate RTU. This application would use very
similar logic, but would change the TYPE and VIA parameters to FOX_SET_ROUTE, rather
than PORT.
Redundant PCs
Two or more PCs running SCADA or FoxRTU Station software can be connected to the one
RTU as illustrated below. All the PCs can poll the same data and set the same outputs. If
one PC fails detected, the other PCs will continue to operate normally.
Each PC can be assigned its own RTU port or all the PCs can share one Ethernet port by
using an Ethernet Network. Note: a CP-3/MC-31 Ethernet port can handle communications
with up to four devices or RTUs simultaneously.
All the PCs can run the same SCADA software configurations with one exception. Each PC
must be assigned a unique RTU address in the range 65521-65535 to prevent
communication conflicts. To configure this, click the Connection toolbar button. The example
below configures FoxRTU Station to use address 65534. FoxRTU Station uses address
65535 by default.
Note: While migrating redundancy projects that are corrupted, it is recommended to turn on
“Mirrored” and migrate the projects to the latest versions of FoxRTU Station.
Good security practice dictates that a user be restricted to the minimum set of system
features necessary to perform their role. To this end, FoxRTU Station supports role based
access control.
By default, a FoxRTU Station project is unsecured, and has no access restrictions. If you
choose to make a project secured then one or more user names may be created, assigned
roles and saved. Thereafter, the project can only be opened or edited if a valid user name
and password are specified, and the user’s defined role allows the requested operation.
If a secured project is loaded and a connection is made to an RTU, the RTU itself will
become secured. This means that:
• To access the RTU (check status, download new configuration, etc.) you need to
enter a valid user name and password.
• Only the original project, or one derived from it, may be downloaded to the RTU.
• The only way to return the RTU to its original unsecured state is to perform a
factory reset.
Security Policies
Each secured project includes a security policy, which is essentially a list of authorized
user names, passwords, and their assigned role(s).
If you create a brand new project and secure it, then it will have its own security policy, which
is unique to it. However, any project copies or variants derived from a secured project will
share the same security policy. If you create and secure “Project A”, then save a copy called
“Project A1”, then make some changes and save the result as “Project A2” then all three
projects will share the same security policy, as they are all derived from the same original
project. If you create a new project, “Project B”, from scratch then it will have its own
separate security policy.
Thus, while in some respects the security policy can be thought of as just another group of
configuration settings within a project, it does have some special properties. In particular, a
project’s security policy is “permeative”. This means that changes to the policy (such as
adding users or changing passwords) can automatically “permeate” through the system –
between different copies or variants of the project and between different RTUs.
Copies of a project’s security policy may exist in several different physical locations:
• Within the project folder itself (along with all the other configuration settings)
• In the PC’s policy store (a special location on the PC’s local hard disk)
• On the RTUs defined by the project
Changes made to one copy of the security policy will be automatically merged with other
copies at the first opportunity. “Merging” means that the most recent change to a particular
setting will be automatically applied to all accessible copies. This merging of security policies
occurs:
• When a secured project is opened – the policy in the project is merged with the
policy in the PC policy store
• When you connect to a secured RTU – the policy in the project is merged with the
policy read from the RTU
In both cases, the resulting merged security policy is then used to authenticate the user.
See Security Policy Distribution Scenarios for more information on how security policies are
updated in several common scenarios.
Securing an RTU
In this scenario, a project is created and secured. The RTU is currently unsecured (it has no
security policy), and is not connected to FoxRTU Station.
A connection is then made to the RTU (e.g. to check status, or in preparation to download
configuration). The user is notified that the RTU will be secured, and if they agree then it will
become so. Note that only the informed security policy on the RTU has changed at this
point; it is still running its original configuration.
An unrelated project is then opened in FoxRTU Station. Any attempt to connect to the RTU
is rejected, because the security policy does not match.
A copy is then made of Project A, and Project A is closed. In the new copy, the configuration
is edited and an additional user is added to the security policy. Note that the copy of the
security policy in the PC’s policy store is automatically updated.
The new project is then closed and Project A reopened. Its security policy is automatically
updated with the second user’s details, so that user will now be able to open Project A.
RTU Connections
In this scenario PC1 and PC2 each has a copy of secured Project A. One of these PCs has
previously connected to the RTU and downloaded the configuration (and security policy).
PC1 now connects to the RTU, which causes the RTU’s copy of the policy to be updated. It
now contains two users.
The project is then opened on PC2. At this point the policy on PC2 still only contains one
user, so that user’s credentials must be entered to open the project.
A connection is then made to the RTU, which causes the security policy on PC2 to be
updated. If the project is subsequently opened on this PC, either user’s credentials may now
be used.
Alternatively, you could connect to the RTU from PC2 without any project loaded. In this
case you would be prompted for credentials, and you could enter either user name, because
the RTU policy contains both users. Once the connection has been successfully established
the PC2 policy would be updated and the project can now be opened using either user
name.
Securing a Project
By default, projects are unsecured, which means they have no security policy and can be
opened by anyone. To help prevent unauthorized access, projects should be secured using
the following procedure.
Once a project has been secured, additional users and roles can be added, as described in
Managing Users and Managing Roles.
Unsecuring a Project
An administrator can make a secured project unsecured so that it no longer requires user
login.
Note that this will not unsecure any RTUs that have already been loaded with the secured
project. The only way to unsecure an RTU is to perform a factory reset.
Furthermore, once you unsecure a project, you will no longer be able to use that project to
connect to an already secured RTU. If you re-secure the project it will effectively become a
new project, and you will not be able to connect to any RTUs secured using the “old” project.
To unsecure a project:
Press Continue.
Users are people that are authorized to access the project and/or the RTU. Each user has a
user name and a password. When a project is secured, one user is automatically created,
called Admin. This user has full control over the project and RTU, and cannot be deleted.
Any number of additional users can be created.
Roles are the functions performed by particular users. Each user can be assigned one or
more roles. By default, four roles are created: Administrator, Manager, Engineer and
Maintenance. The latter three roles may be deleted if desired, and new roles may be added.
Permissions are particular functional areas to which access can be permitted or denied.
Each permission generally covers several specific operations. For example, the Download
permission covers opening ISaGRAF, downloading new configuration and logic, and
downloading new firmware. Three permissions are currently defined: Manage Users,
Configure and Download.
A user name and password must be entered whenever a secured project is opened. This is
also required if you attempt to connect to a secured RTU with no project selected in FoxRTU
Station.
Download
Configure
Manage
users
Role A user having this role…
It is possible to delete, or change the permissions associated with, any of the above roles,
apart from Administrator. It is also possible to define new roles.
The following table spells out in more detail which operations are allowed for each
permission:
Open ISaGRAF
Upload service
Save project
View project
Add/remove
config/logic
config/logic
users/roles
RTU status
Download
Download
Unsecure
firmware
Change
project
report
Permission
Manage users - - - -
Configure - - - -
Download - - - -
(none) - - - - - - -
It is not possible to change the permitted operations assigned to each of the above
permissions.
Managing Users
When a project is secured, a User’s node will appear in the tree view. Selecting this will
display a list of all currently defined users. Initially, this list will have only one entry: Admin,
the default administrator.
Adding a User
The Users pane contains a list of all defined users, which should now contain the newly
created user. Note that the user has also been added to the tree view.
Click on the link in the User name column to edit the user’s details. This will bring up the
user details pane:
Deleting a User
An administrator or manager may delete users from a project. The default Admin user
cannot be deleted.
Note: Once a user has been deleted, the same user name may not be used again for this
project.
Managing Roles
Adding and deleting roles is much the same as adding and deleting users. An administrator
or manager may edit or delete the default roles (except Administrator), and may add new
roles.
Adding a Role
To add a new role:
The Roles pane contains a list of all defined roles, which should now contain the newly
created role. Note that the role has also been added to the tree view.
Click on the link in the Name column to edit the role. This will bring up the role details pane:
Deleting a Role
An administrator or manager may delete roles from a project. The Administrator role cannot
be deleted.
Securing an RTU
If you load a secured project and then connect to a previously unsecured RTU, the RTU will
become secured. This means that:
• A copy of the project’s security policy will be stored on the RTU, and will be updated
any time a connection is attempted.
• The RTU is now tied to that particular project. Only the configuration and logic
defined in that project, or one derived from it (e.g. using Save As), will be able to be
downloaded.
• If you connect to the RTU with no project loaded, you will be prompted for
username and password.
• The only way to return an RTU to its original unsecured state is to perform a factory
reset.
In other words, several restrictions come into force once you secure an RTU. A system
message will therefore be displayed when you first attempt to connect to an unsecured RTU:
If you select Yes, the RTU will become secured, even if you don’t actually download the
project’s configuration to it. This can be used to secure a new RTU processor, which can
then be placed in stock. This can be used to help prevent any unauthorized firmware
downloads.
If the project file is not available, you can still check the status of an RTU or download
firmware by connecting to it with no project selected in FoxRTU Station. In this case you will
be prompted for username and password, which will be validated against the policy stored
on the RTU.
If you connect to the RTU while a project is loaded, FoxRTU Station will verify that the
security policy on the RTU came from the currently loaded project, or a variant of it. If not, a
detected error is displayed and the requested function is not performed:
The following table summarizes the restrictions which will be enforced when you connect to
an RTU, depending on the state of the selected project in FoxRTU Station, and the state of
the RTU.
As noted in Security Policies, when you connect to a secured RTU the three copies of the
project security policy (on the RTU, the PC policy store and the project folder) will be
merged. For each entry in the policy (e.g. each user) the most recent details will be selected.
The updated policy is then automatically written back to the policy store and the RTU.
Thus, even a “get status” operation may cause the policy on the RTU to be updated, if the
policy details on the PC are more recent than those on the RTU.
Unsecuring an RTU
The only way to unsecure an RTU is to perform a factory reset. This verifies that only a
person with physical access to the RTU can unsecure an RTU.
Maintaining Security
Passwords
In a secured project, every user must have a password. Passwords secure the system and
must be kept secret.
As noted above, a project’s security policy (which contains all user names and passwords)
may exist in three different places: the project folder, the PC policy store, and the RTU. In
each case the policy details are encrypted, and are never transmitted in plaintext form.
Within the policy, passwords are further encrypted.
However, encryption is only as good as the password used. If a password can be guessed
then an attacker will be able to impersonate an authorized user and may gain access to the
project and associated RTUs.
This is particularly important because the PCs on which projects are stored, and on which
FoxRTU Station is run, may not always be secure.
The primary defense against this is to use a strong password. Passwords should:
• Have at least 8 characters, preferably more
• Not be a word or name which might be found in a dictionary – including words with
zero substituted for ‘O’ and similar common tricks
• Have a mix of upper case, lower case, numbers, and punctuation
FoxRTU Station gives an indication of password strength when you enter a new user
password. Using passwords rated less than “good” is not recommended.
Note that it is not possible to recover a forgotten password. It is possible to reset the
password on a project, but you will need to contact our support team.
Other Considerations
As well as using strong passwords, there are several other considerations when securing a
system. The following list is not exhaustive.
• Verify that physical access to the RTU is restricted to help prevent unauthorized
module replacement or factory reset.
• Don’t create more users than you need. Each additional password in the policy file
increases the chance of an attacker guessing one. Be especially frugal in creating
users with Administrator role.
• Encourage users to change their password regularly. In FoxRTU Station an
administrator can set an option to force a user to change their password on next
login.
• Restrict access to copies of project files – centralize storage rather than having
copies on many PCs. In any case, this is desirable from the point of view of version
control.
• If contractors require temporary access to projects or RTUs, give them unique user
names (don’t just give them the Admin password!) and verify that they are removed
promptly once the work is complete. The automatic and “permeative” policy updates
help in this regard – if the policy on an RTU is updated to remove a user then they
will no longer be able to connect to it, even though they may still be listed in the
policy within their copy of the project.
• Do not connect the RTU local network to the outside world. If remote wide area
access is required, then verify that a suitable firewall is in place to block all
incoming connection attempts other than from specifically authorized computers or
networks.
• Use DNP3 Secure for telemetry (see Require authentication for critical functions
setting in DNP3 protocol settings).
The Local Backup feature in FoxRTU Station makes it easy to save and restore project
backups.
Project backups are complete copies of the project, including configuration settings, logic
and security policy. They are stored in a special area of the PC’s local hard disk.
To view a list of currently stored backups, click on Local backups in the tree view.
Making a Backup
To create a backup of the currently loaded project:
If you now select the Local backups tree node, the new backup should be visible:
When a project is saved, FoxRTU Station may sometimes suggest that a backup be made:
Deleting a backup
To delete unwanted backup files:
1. Close FoxRTU Station.
2. Using Windows Explorer, navigate to the folder:
C:\Users\username\AppData\Local\Foxboro\FoxRTU Station\Backups\User
This folder will contain folders named B.001, B.002, etc.
3. To delete all backups, simply delete the above folder.
4. To selectively delete a particular backup (expert users only), open the file
manifest.xml in a text editor. This file identifies the backups contained in the B.xxx
folders.
5. Identify the backup you wish to delete and delete the folder referenced by the id
attribute in the XML file.
6. Delete the entire point node for the backup in question from the XML file and save
the file.
7. Restart FoxRTU Station and confirm that the backup is no longer visible under
Local backups.
Restoring a Project
To restore a project from a backup, right click on the backup from the table on the Local
backups pane, and select Restore:
The project will now be saved and opened, with a suffix added to the name (e.g. “Wizzo
Energy - 1") so that it doesn’t overwrite the original project. If the project is secured (see
Security), you will be prompted for a username and password, the same as if you were
opening the file normally.
When a project is restored, its security policy will also be restored. As is the case when any
project is opened, its policy will be merged with that in the PC’s policy store, which may
cause the restored project’s policy to be updated (see Project Copies on Same PC). For
example, if you create a backup, then change your password, then later restore the backup,
then the restored project’s security policy will contain your updated password.
The restored project will be saved to the FoxRTU Station default project directory, which is
under the current Windows user’s Documents folder.
You also have the option to export the backup as a zip file, which can be saved to any folder.
By default, the IP address of the RTU’s main Ethernet port is set to 192.168.0.1. This may
not be suitable for connecting via an existing Ethernet network – check with your network
administrator. If this is the case then you will need to perform the initial setup using a direct
crossover cable connection (or a local Ethernet switch, not connected to the main network).
The CP-3 must not be connected to the existing Ethernet network until it has been
configured with an IP address that is compatible with the network.
If required, the CP-3 can be reset it to its factory settings (including setting its IP address to
192.168.0.1) by performing a factory reset.
The above cables are industry standard and are readily available. Once a cable is installed,
the PC’s LAN port needs to be setup as detailed in the LAN Port Setup.
If the RTU has a Serial option port and the port has already been configured (by first using
Ethernet communications), then FoxRTU Station can use Serial communications to the RTU.
Both the RTU and the PC are DTE (Data Terminal Equipment) devices, so a serial cross-
over (or null modem) cable will be required.
The easiest option is to use a standard straight through Ethernet cable, along with an ADP-
05 serial adapter (optional accessory), as shown in the diagram below. This adapter has a
female RJ-45 socket on one side and a female DB9 connector on the other (wired to suit a
PC serial port). If your computer does not have a serial port then a USB to serial adapter can
be used.
Connection Parameters
The Connection toolbar button is used to define how FoxRTU Station will communicate with
the RTU.
Normally, FoxRTU Station will use the selected RTU’s configured Port 1 Ethernet IP
address. However, sometimes you will need to override this – e.g. if you have changed the
IP address in the configuration then you will need to tell FoxRTU Station to connect using
the old address to load the new configuration.
If the Port 1 IP address is not selected, the button label will no longer read “Connection”, but
will indicate the selected connection method, e.g. if an alternative IP address is selected
then the IP address will be displayed.
Pressing the Connection button will display the Connection to RTU dialog, which has the
settings listed below
Note: If the CP-3’s IP address is unknown then it can be reset to the factory default of
192.168.0.1, as described in Factory Reset.
Retries: The maximum number of attempts (after the first attempt) FoxRTU Station will
make at sending a message to the RTU if the previous attempts were not successful.
Always use FoxRTU protocol for file transfers: When enabled, FoxRTU Station uses the
FoxRTU protocol when downloading firmware and configurations over Ethernet or serial
connections. When disabled, FoxRTU Station uses the SSH internet protocol, which is
significantly faster.
Using the SSH protocol is normally preferable. However, FoxRTU protocol will need to be
used if:
• A serial connection is used to connect to the RTU
• A configuration or firmware is being downloaded to a CP-3 via an MC-31 Ethernet
port
• A configuration or firmware is being downloaded to a CP-3 via another RTU
Discovery
The Discovery toolbar button tells FoxRTU Station to try to locate the RTU on the local
Ethernet or serial network.
Ethernet
For Ethernet, FoxRTU Station will send out a broadcast packet on the local subnet and
collect any replies from RTUs.
Press Search to initiate the discovery process. The RTU address and IP address will be
displayed for all RTUs that were found.
Note that this will only work if the RTU’s current IP address is set to a value which is
compatible with the local subnet. For example, if the RTU and your PC are connected to the
192.168.0.x LAN, but the RTU’s IP address is set to 10.2.3.12, then it will not be detected.
Once the RTU’s IP address and RTU address have been determined, the Status button can
be used to check that communications are working. See Status for more details.
Serial
Select the Serial tab to search for RTUs connected via a serial cable.
First select the desired PC port in the control on the left, or choose All Ports to scan all
available PC serial ports. Then click Search.
FoxRTU Station will now attempt to connect to the RTU, trying several different baud rates.
Note that FoxRTU protocol must be enabled on the RTU serial port in question in order for
the detection to succeed.
If one or more RTUs are found, their details (address, serial port and baud rate) will be
displayed. As with Ethernet, clicking Status will display more details about the selected RTU.
RTU Restart
By default, restarting the RTU resets all variables to their initial values, although individual
variables can be configured to retain their value during a restart. Event logs, firmware, logic
and RTU configuration settings are all retained across a restart.
If an RTU restart occurs then the DEVICE_RESTART bit will be set in the DNP3 IIN register.
Factory Reset
The procedure described in this section will reset a CP-3/MC-31 module to its factory default
settings. That is:
• Main Ethernet port IP address is set to 192.168.0.1, subnet mask 255.255.255.0
• All other configuration settings are reset to defaults.
• All logic is cleared.
• All security settings are removed, i.e. the RTU will become unsecured.
• All event log entries and retained variables are cleared.
• System clock setting may be cleared (depending on reset method used).
• System diagnostic log is retained.
Note that upgrading firmware does not perform a factory reset (although it will clear any
logic).
The factory reset procedure depends on the module type and hardware version. For CP-3/
MC-31 modules, you may have version 1 or version 2 hardware. Version 2 hardware can be
identified by the presence of a 2-pin link header on the front edge of the module, just below
the LED display.
Note: If you remove the battery or battery link then after replacing it the module should be
plugged into a backplane and powered up for at least one second. Being unable to do this
may result in much shorter battery life.
Note that it is not possible to make online changes to the configuration of a running RTU.
Any configuration change needs to be built, downloaded and the RTU restarted, as noted
above.
FoxRTU Station can also be used to download new firmware to the RTU.
Downloading Configurations
Firmware Compatibility
As noted in Firmware, it is important to be aware of any potential compatibility issues
between FoxRTU Station and the RTU’s firmware.
The current version of FoxRTU Station can be used to download configuration and logic files
as follows:
Note that this version of FoxRTU Station can read the status from an RTU with any firmware
version. It can also upgrade the RTU firmware from any version (subject to any special
procedures described in the firmware release notes).
Connection
To download a new configuration, the required project must be open in FoxRTU Station, and
the required RTU selected.
Before attempting to download the configuration, verify that the connection parameters are
set correctly. In particular:
• If the main port IP address set in the configuration is the same as the CP-3’s
current IP address then select Use RTU address information. If the new
configuration will change the main port IP address then select Use the following IP
address information, and enter the CP-3’s current IP address.
• On the Advanced tab, verify that the Always use FoxRTU protocol checkbox is not
ticked. The SSH protocol will then be used.
For redundant processor systems, the configuration needs to be downloaded to each CP-3
module separately. See Downloading Configurations for more details.
Before attempting to download the configuration, verify that the connection parameters are
set correctly. In particular:
• Select Use the following IP address information, and enter the current IP address of
the T3 Ethernet port.
• On the Advanced tab, verify that the Always use FoxRTU protocol checkbox is not
ticked. The SSH protocol will then be used.
Note: It is not possible to change the RTU’s address using these connection methods. The
address (1-65520) set in the RTU Properties dialog must match the RTU’s current address.
Before attempting to download the configuration, verify that the connection parameters are
set correctly. In particular:
• If connecting to an MC-31 Ethernet port, select Use the following IP address
information, and enter the current IP address of the MC-31 port.
• If connecting to a serial port, select Use the following serial port information and
enter the current baud rate set for the serial port. (Note that the serial configuration
downloads are only supported if the RTU port is configured for 8 data bits, no parity,
1 stop bit.)
• If connecting via an intermediate RTU, be sure to use the IP address or serial baud
rate of the intermediate RTU (not the destination RTU) for the above settings. On
the Advanced tab, set the Via address field to the address of the intermediate RTU.
• On the Advanced tab, verify that the Always use FoxRTU protocol checkbox is
ticked. The FoxRTU (FOX) protocol will then be used.
Download
It is also possible to download the entire project file to the RTU, by selecting Configuration,
Logic and Project. The project can then be retrieved from the RTU (using the Upload
Configuration option on the Tools menu) later, where it can be viewed or modified.
When the project file is saved to the RTU, Upload Configuration will upload a package file
including both configuration and logic programs, but the logic programs will not be loaded in
FoxRTU Station automatically. The package file will be saved to a specific folder, as
indicated by the displayed message. Copy the file project.zip to a suitable folder, unzip it,
and open the project in FoxRTU Station. The entire project including configuration and logic
will be loaded.
The downside of storing the project file on the RTU is that it can be quite large, so it will use
up space on the RTU and increase the time taken to download new configurations.
Reconnection
If the newly downloaded configuration has changed the communications settings on the RTU
(e.g. IP address, serial port baud rate) then FoxRTU Station will not attempt to monitor
progress or reconnect.
If this is the case then the following will be displayed once the files have been downloaded
and the update process has commenced:
To verify the new configuration, click the Connection toolbar button then select the Use RTU
address information option. Then press the Status toolbar button to check that you can
communicate with the RTU using the new settings.
Note: If ISaGRAF logic is rebuilt and downloaded then any existing retained variables will be
cleared.
The precise procedure is dependent on the SCADA package in use, and is outside the
scope of this manual. In general terms, the workflow is:
• Use the Build and Export command on the FoxRTU Station Tools menu to generate
and save a downloadable configuration file.
• Transfer this file to the SCADA system and issue the required SCADA commands
to write the file to the path config/myfile.tgz on the RTU, where myfile.tgz is the
name of the exported file. (The “config/” part of the path is required.)
• Issue the required SCADA command to “activate” the configuration. This will trigger
the normal upgrade process, the same as if the file had been downloaded directly
from FoxRTU Station. Once the upgrade is complete, the RTU will restart.
Downloading Firmware
Overview
Firmware can be downloaded into a processor or communications module to upgrade
functionality. The firmware version that is currently in the CP-3 or MC-31 can be checked
using the Status command.
When upgrading firmware, all CP-3 and MC-31 modules in an RTU should be upgraded to
the same version. Upgrade CP-3 modules first, then any MC-31 modules (reverse order if
downgrading).
Upgrading firmware will preserve the current RTU configuration and ISaGRAF logic.
However, all retained variables and event logs will be cleared.
Important: Firmware releases are always supplied with release notes, which describe the
changes made and any special upgrade procedures which may be required. It is vital that
you read the release notes before attempting any firmware upgrade.
Important: The process of upgrading firmware can take several minutes. To help ensure
that the upgrade is successful, , firmware upgrades should be performed using a reliable
communications link (e.g. Ethernet) and with a stable power supply to the RTU.
Connection
The simplest and fastest method of downloading firmware to a CP-3 or MC-31 is to use an
Ethernet port – normally the main Ethernet port, but you can also use port 2 or 3 if you have
a T3 Ethernet option card installed. The RTU must have been previously configured to
enable the port and set its IP address (unless the main port is being used with its factory
default IP address).
It is also possible to update a CP-3’s firmware via an MC-31 port, or a serial connection, or
via another RTU. Note that this method will be significantly slower, and it is not possible to
update MC-31 firmware using this method.
For MC-31, a direct Ethernet connection is required, and the SSH protocol must be used
(verify that on the Always use FoxRTU protocol checkbox is not ticked).
Before attempting to download the firmware, verify that the connection parameters are set
correctly, as described in Downloading Configurations.
Download
Before starting a firmware upgrade, be sure to read the release notes supplied with the new
firmware. You should also determine the firmware version that you are upgrading from.
Special procedures may be required when upgrading from very old versions (earlier than
version 2874), or when downgrading from recent versions – check the release notes for
details.
Note: An MD5 checksum is published on the support website for each firmware package. To
verify the integrity of the downloaded firmware package, its checksum should be calculated
and compared to the listed value. Any standalone or online MD5 generator can be used for
this purpose (e.g. http://onlinemd5.com).
The Select Firmware File window will appear. Select the firmware
file to download into the CP-3 or MC-31. This will have a name
such as CP30_MC31_firmware_v6793.tgz.
3. FoxRTU Station will reconnect to the RTU and confirm that the update was
successful.
Assuming an Ethernet link, this process will typically take around 5 minutes to complete.
Note: If you are upgrading or downgrading to an older firmware version (earlier than 4165)
then the procedure is the same, but you may notice that the RTU restarts multiple times.
Note: While upgrading the RTU (CP-3) firmware to FW4408 or later you may observe the
MC-31 reboot in non – redundant RTU configurations.
If your only connection to the RTU is via an MC-31, then the CP-3 firmware can still be
upgraded by selecting the FoxRTU protocol (if you use SSH then you will actually upgrade
the MC-31 firmware).
When upgrading firmware using the default SSH protocol, the upgrade will occur regardless
of whether the processor you are upgrading is currently the active or standby processor. In
fact, if the CP-3 is the active processor then when it restarts after processing the first part of
the upgrade it will come up as the standby, because the other CP-3 will have taken over
during the restart. This must not affect the upgrade process.
Before starting the download, verify that you are connected to the correct processor. The
procedure is the same as for configuration download, see Downloading Configurations.
If the RTU’s IP address or RTU address are not known then the Discovery command may be
used. Failing that, the CP-3 can be reset to factory settings (address 1, IP 192.168.0.1) as
described in Factory Reset.
To perform a status request, click the Status toolbar button. If no RTU is selected then you
will be prompted for the IP address to use.
Event Logs
Events allow the RTU to record time and date stamped data. An event is recorded when:
• The FOX_EVENT_LOG function block is executed.
• A class 1, 2 or 3 DNP3 variable changes in value. For analog inputs, the change
must exceed the configured dead band.
• DNP3 events are received from another RTU, e.g. in response to a DNP3 class
1/2/3 poll request.
• Other events are received from another RTU, e.g. in response to a FoxRTU
protocol event log request
• Events are read from a digital input module that supports Sequence-Of-Events
recording (e.g. DI-10)
The number of events that can be recorded in the RTU memory is configurable on the RTU
Properties dialog (max. 100,000 events).
Events stored in the RTU can be retrieved and viewed using FoxRTU Station (as described
below). DNP3 events can also be retrieved by a DNP3 master device, using the DNP3
protocol. The RTU can track event retrieval and confirmation for up to 4 different DNP3
master addresses.
Count: Queries the number of event logs currently stored in the RTU and displays the result
(to the right of the Cancel button).
Retrieve: Retrieves event logs from the RTU. This can retrieve all events or a configurable
number of events.
Export: Saves the uploaded event logs into a CSV file (can be opened using Microsoft
Excel).
Cancel: Only available while retrieving event logs. Stops the uploading of event logs.
The various parameters that make up an event log are listed below.
Type: Configured type of the event log. For DNP3, this is the event variation.
Priority: Configured priority of the event log. For DNP3, this is the event class.
Clear Current:
Sets the selected range to the start of the event
log index
Update Current:
Sets the selected rage to the current date
Web Interface
Overview
The RTU supports a simple web interface. This can be useful in situations where FoxRTU
Station and/or ISaGRAF are not available. Using a standard web browser, you can:
• View RTU status information
• Retrieve a service report
• View selected ISaGRAF variable values
• View a summary of the RTU configuration
Note that the web interface provides a read-only view of the RTU. It is not possible to
change any RTU settings via this interface.
Note: The web interface does not support encryption or user authentication, so it is
recommended that it only be enabled and used on a secure network.
Note also that JavaScript must be enabled in your web browser (it will normally be enabled
by default).
To view the web interface, verify that your computer has a network connection to the CP-3,
then enter the RTU IP address (and TCP port number, if set to something other than 80) into
a web browser, as follows: http://ip-address:tcp-port.
The web interface comprises three information pages which are accessed by clicking the
“tabs” at the top of the web page.
When you first connect to the RTU the RTU Status page should be displayed.
RTU Status
This page displays some useful details about the current state of the RTU:
Click the Refresh RTU Status button to update all displayed values.
Click the Retrieve Service Report button to download a full diagnostic service report. This is
the same as the one which can be downloaded using the Tools menu in FoxRTU Station.
The service report will be downloaded as a text file (UNIX format). The browser will normally
offer the option of saving this file or opening it in a text editor.
ISaGRAF Variables
The ISaGRAF Variables page provides a snapshot of current ISaGRAF variable values.
The set of variables to display is controlled by the Query field at the top of the page. By
default, this is set to “*”, which will select all available variables.
The table shows the variable name, value and, in some cases, a status indicator. The status
is shown for IOPOINT_x variables, including DNP3 and I/O module points. “OK” indicates
that the ONLINE flag bit is set. For I/O module points this indicates that the module is
physically present.
Query strings can include the “?” and “*” wildcard characters. A “?” represents one character,
which can have any value, while “*” represents any string of zero or more characters.
For example:
• To display all DNP analog input variables enter: DNPAI*
• To display all Modbus variables and all variables for the I/O module in slot 7, enter:
MOD* SL07*
• To display variables PUMP1_STAT ,PUMP2_STAT and PUMP3_STAT, enter
PUMP?_STAT
• To display all variables, enter: *
Note that:
• Only global variables will be displayed
• Variables with complex types (e.g. arrays, or structures other than IOPOINT_x) will
not be displayed.
• ISaGRAF variable names are not case sensitive – all variable names will be
displayed in upper case.
Use the Dictionary screen in ISaGRAF online/debug mode to view live values for any
variable.
RTU Configuration
This page gives a summary of the RTU configuration settings.
• Details for all configured modules. Note that this page shows all modules that have
been defined in the configuration, whereas the list on the RTU Status page shows
the list of modules that were actually detected.
The RTU time can be set using the Date & Time tab on the RTU Status window, or via a
DNP3 message from a SCADA system. It can also be synchronized to an NTP (Network
Time Protocol) server or a GPS receiver connected to a DI-10-GPS module.
By default, the RTU time is not assumed to be in any particular time zone – that is, the time
zone is “unspecified”. This means that:
• If you set the RTU time using FoxRTU Station, the current local PC time will be sent
to the RTU unmodified.
• Events written to the event log, or transmitted via DNP3, will be timestamped using
the current RTU time. When viewing events in FoxRTU Station or a SCADA
system, the user needs to be aware of what time zone was used when the RTU
time was set.
• If the RTU is configured to synchronize it’s time to an absolute time reference (e.g.
NTP, GPS), the RTU time will need to operate using UTC (Coordinated Universal
Time, which is essentially equivalent to Greenwich Mean Time). All event
timestamps will then be displayed in UTC.
To help prevent any ambiguity when interpreting timestamps, it is recommended that a time
zone be configured for the RTU, using the RTU Properties dialog. If a time zone is set:
• The RTU system time will internally operate in UTC. All events (including DNP3
events) will therefore be stored and transmitted with UTC timestamps.
• If you set the RTU time using FoxRTU Station, the current local PC time (or the
custom time that you enter) will be automatically converted to UTC before being
sent to the RTU.
• When setting the RTU time using FoxRTU Station, the current RTU time will be
displayed using the configured RTU time zone.
• In FoxRTU Station, event timestamps will be displayed using the configured RTU
time zone.
• Times displayed on the Date & Time tab and in the event log will include a time
zone indicator, e.g. “UTC+10:00” (which indicates that the time zone is 10 hours
ahead of UTC).
• An absolute time reference (e.g. NTP, GPS) may be used to correct the RTU time.
This will not affect how times are displayed in FoxRTU Station.
• The FOX_GET_TIME function block will return the current time in the RTU’s
configured time zone.
• The FOX_GET_RTC function block returns the number of seconds since 00:00
UTC, 1 Jan 1970. This is therefore not affected by the RTU time zone setting.
Note that the configured RTU time zone is always a fixed offset from UTC. That is, it
represents standard time; no adjustment will be made for daylight saving. Keep this in mind
when viewing event timestamps, and if you use FOX_GET_TIME to trigger actions at
particular times of day.
If the firmware of the currently connected RTU does not support the timezone feature,
FoxRTU Station will ignore the configured RTU time zone and treat it as if it were set to
“unspecified”.
Note: If you change an RTU’s configuration from one where the timezone is unspecified to
one where it is specified, it is likely that the RTU system time will appear to be incorrect after
the change. This is because the internal system time (previously set to local time) is now
being interpreted as UTC. To correct this, simply set the time using FoxRTU Station, as
described above.
Communications
When troubleshooting RTU systems, it is frequently very helpful to be able to capture the
actual message packets that are being sent and received. If a problem with the RTU is
suspected the capture files can be forwarded to our support team for analysis.
In general terms, Wireshark is more powerful, but Comms Analyzer can be used in a wider
range of scenarios.
Comms Analyzer
Overview
The FoxRTU Station Comms Analyzer works as follows:
1. The selected RTU is instructed to start capturing communications messages on a
particular port.
2. From that point on, each time a message is sent or received, the information is
returned to FoxRTU Station, using a separate RTU port to the one being
monitored.
3. FoxRTU Station saves the received packets and allows them to be viewed.
The controls for the Comms Analyzer are at the top of the workspace:
Port: This contains a list of all defined ports in the RTU. Select the one for which you want
to capture traffic. Remember that it is not possible to capture traffic on the port that FoxRTU
Station is using to communicate with the RTU.
Start: Start capture on the selected port. This button changes to Stop while capture is in
progress.
Export: Saves some or all the captured packets in CSV format. The generated file can then
be opened in a text editor or spreadsheet application.
To start capturing, click Start. Note that while capture is active an animated overlay is shown
on the RTU’s icon in the navigation pane.
This shows:
• An entry indicating the time at which capture was started, and the port being
monitored
• Two incoming DNP3 polls from a master (address 111) to the local RTU (address
1), and the responses sent by the RTU.
The Message column provides a basic decode of the message. Note that it does not
necessarily list everything you need to know about the message. For example, for a DNP3
message it lists the header fields and the first data object only.
The yellow highlight indicates that the packet is selected. By clicking on rows in conjunction
with the Shift and Ctrl keys, you can select a range of packets, which can then be exported
using the Export button.
Wireshark
Overview
Wireshark is a PC-based application which can capture all traffic sent or received by the
PC’s Ethernet interfaces. It has extensive packet filtering capabilities, and can decode many
different protocols.
Snooping
In a modern Ethernet network, each device (PC, RTU, etc.) is normally connected to an
Ethernet switch or router. The switch or router examines each packet that passes through it
and directs it to the appropriate destination device. This means that if two RTUs and a PC
are all connected to an Ethernet switch or router, then the communications between the two
RTUs will be invisible to the PC, which means that Wireshark will not be able to capture
them.
However, there is an older technology which can be used to connect devices on an Ethernet
network, called a hub. Hubs broadcast each received packet to all connected devices. The
devices will normally discard anything not addressed to them, with the exception of tools
such as Wireshark, which can capture them.
The following diagram shows how a hub can be temporarily added to a network to allow
Ethernet traffic sent between two RTUs to be captured.
RTU 1 RTU 2
Ethernet Switch
RTU 1 RTU 2
In the top diagram, RTU1 and RTU2 are connected via an Ethernet switch, so the PC will not
receive (and will therefore not be able to capture) any traffic except that addressed to it.
In the bottom diagram, RTU1 has been unplugged from the switch and plugged into a hub
instead. The hub is also connected to the PC and to rest of the network via the switch. In this
configuration, anything sent to or from RTU1 (including traffic directed to RTU2) will be
visible to the PC and will be able to be captured by Wireshark.
Using Wireshark
Download Wireshark from www.wireshark.org and install on your PC, then start it as you
would any application.
The Wireshark website includes extensive documentation and tutorials. In general terms,
however the procedure is to first select the correct Ethernet interface (if your computer has
more than one) from the list on the Wireshark home screen, then press Start.
Appendix A: Glossary
A group of 8 bits. Each bit can be a 0 (off) or a 1 (on) allowing up to 256
Byte combinations.
Processor module. Runs the Linux operating system and supports
CP-3 ISaGRAF.
Set of variables available for use in logic programs or to be polled by a
Dictionary remote RTU.
A sporadic message initiated by a slave RTU to another RTU (usually to the
Exception report master) to report new data or a significant event.
A block of code that can be executed by an ISaGRAF logic program.
Examples of function blocks include AGA gas calculations, hardware
Function block
configuration and communication messages.
Input/Output
I/O
The device that is responsible for the collection, concentration and ultimate
reporting of information from local and remote devices. The Master device
Master
may be an RTU or a PC running SCADA software. The master device is
usually responsible for initiating communications with slave devices (polling)
but may also accept unsolicited messages from local and remote devices.
A periodic message initiated by the master RTU to get the latest data and
Poll check the state of communications to a remote RTU.
A physical connection or socket on an RTU used for communications
Port
A number which identifies a particular protocol or service provided over a
TCP/IP network. For example, a DNP3 slave will respond to connections to
Port (TCP/IP)
port 20000.
Refers to the format of messages that may be passed to, from and through
an RTU in communication with local and remote devices. Communications
Protocol may use one or more RTU ports. Examples of protocols used within
telemetry include FoxRTU, Modbus and DNP3.
Remote Telemetry Unit. A system of processor, communication and I/O
modules that monitor and control of hardware and devices in remote
RTU
locations.
A device that is responsible for the collection of I/O and other information.
This data can then be polled or exception reported to a master device. A
Slave
slave may be an RTU or another device.
Transmission Control Protocol / Internet Protocol. A networking protocol
used when communicating via Ethernet. Many telemetry protocols e.g.
TCP/IP FoxRTU, Modbus/TCP and DNP3 can use TCP/IP as the basic transport
mechanism.
Exporting Variables
Select the RTU name in the navigation pane containing the
variables to export
Importing Variables
Importing Notes:
• Before importing variables from an Excel spreadsheet into an RTU configuration,
FoxRTU Station extensively checks the spreadsheet for detected errors. If there are
any detected errors, all variables will not be imported.
• When importing I/O variables, the corresponding I/O module must already exist in
the RTU configuration. If an I/O variable is assigned to a slot or channel that is not
already defined in the RTU configuration, variables will not be imported.
• When detected errors are displayed, the row number in the spreadsheet is also
displayed so that the detected error can be located. Examples:
Spreadsheet Format
The spreadsheet is divided into four sections of columns as follows:
The orange, yellow, green and light blue columns (N to X) contain optional I/O point
parameters if the variable is to be linked to an I/O Point
The blue columns (Y to AH) contain optional parameters for DNP3 variables.
The green column (AI) is not used. Columns AJ onwards will be ignored when the
spreadsheet is imported back into FoxRTU Station.
Spreadsheet Parameters
Parameter Description Notes
SymbolName The variable name See Variable Names. Any rows with
blank SymbolName will be ignored on
import.
Comment A comment for the variable Max 128 characters
SymbolType The data type Must be a valid type name, see
ISaGRAF Variable Types
Scope Describes where this variable The text must be either:
is available for use The word Global, which indicates that
the variable can be used in all
Functions, Function Blocks and
Programs, or the name of a specific
Function, Function Block or Program
that the Variable can only be used in
StringSize The maximum number of If the variable is not a String, the value
characters in a String variable must be 0
Attribute A Read Only, Write Only or Must be: Read, Write or Free (read and
Read and Write variable write)
Direction Describes the flow of I/O data If this is not attached to an I/O Point, the
value must be Internal. Otherwise, the
value must be Input or Output
Group The dictionary Group Max 128 characters. If the Group does
not already exist, a new Group will be
created.
Retain Retain variable value after a Set Retain to 1 to retain the variable
reboot value after a reboot of the RTU.
Otherwise set to 0.
InitialValue An initial value for the variable The format of InitialValue depends on
its SymbolType. Array values are
entered as values separated by
commas – example: 2, 3, 4. Strings are
entered as text in single quotations –
example: ‘This is a string’
Array Array variables Allows multidimensional arrays to be
specified
Alias not used
Library ISaGRAF Library Allows reference to ISaGRAF library
variables
IOType The type of I/O Point For I/O points, must be: AI, AO, DI, or
DO, blank if not an I/O point
Controls Output control bits DNP3 binary output control settings
(bitmask), or -1 if not DNPBO variable
Slot The slot of the I/O Point 1-64, or -1 if not an I/O point
module
Card The number of the Option Card 1 for I/O point, -1 for other variable
on the Module
Channel The I/O channel number For I/O points, channel number within
I/O module, -1 if not an I/O point
SlotTrip
CardTrip Selects I/O point to perform Only for DNPBO variables configured
ChannelTrip ‘trip’ operation for paired (trip/close) operation.
SlotClose Selects I/O point to perform Only for DNPBO variables configured
CardClose ‘close’ operation for paired (trip/close) operation.
ChannelClose
DnpClass The Class of the DNP variable 0-3, or -1 if not a DNP variable
DnpFrozenClass Frozen Class 0-3, or -1 if not a DNP variable
DnpStaticVariation Static Variation 1-6 (depending on type), or -1 if not a
DNP variable.
DnpFrozen- Frozen Static Variation 1, 2, 5, 6, 9, 10, or -1 if not a DNPBC
StaticVariation variable
DnpEventVariation Event Variation 1-7 (depending on type), or -1 if not a
DNP variable.
DnpFrozen- Frozen Event Variation 1, 2, 5, 6, or -1 if not a DNPBC variable
EventVariation
DnpDeadband The change in value required Either a percentage value or a raw
to trigger an Event value depending on setting of
DnpHighLimit Highest value allowed for this DnpRawLimits
variable
DnpLowLimit Lowest value allowed for this
variable
DnpRawLimits Percentage or Raw values 0 = Percentage, 1 = Raw.
DnpDefaultOnline Initial state of the DNP3 online 0 = offline, 1 = online
flag Ignored for hardware-mapped points
IecGroup not used
Modbus Slave
The following table lists the commands that a slave RTU will accept. Unless otherwise noted,
these are applicable for Modbus/TCP, Modbus/RTU and Modbus/ASCII protocols.
Code Function Notes
1 Read coils Returns values of MODCn variables
2 Read discrete inputs Returns values of MODDn variables
3 Read holding registers Returns values of MODHn variables
4 Read input registers Returns values of MODIn variables
5 Write single coil Writes to one MODCn variable
6 Write single register Writes to one MODHn variable
8 Diagnostics (requires recent firmware)
See below for supported sub-functions
15 Write multiple coils Writes to multiple MODCn variables
16 Write multiple registers Writes to multiple MODHn variables
22 Mask write register Writes to specific bits within a MODHn variable
23 Read/write multiple registers Write to multiple MODHn variables, then read from
multiple MODHn variables
Modbus Master
When the RTU is operating as a Modbus master, the MODBUS function block is used to
send requests to a slave device. The supported message function codes are listed in the
Supported function codes table. These functions are supported for the Modbus/TCP,
Modbus/RTU and Modbus/ASCII protocols.
ISaGRAF programs can use any variables that have been created in the dictionary.
The following sections list the automatically created variables for each I/O module type.
All I/O variables have either IOPOINT_B (for digital inputs/outputs) or IOPOINT_D (for
analog inputs/outputs and counters) data type.
AI-10
8 channel bipolar analog input module with over range flags
Data Description Variable Name R/W Notes
Analog Input Ch1 SLssAI10AI1 R Raw scale: -32768 to +32767
Analog Input Ch2 SLssAI10AI2 R
Analog Input Ch3 SLssAI10AI3 R
Analog Input Ch4 SLssAI10AI4 R
Analog Input Ch5 SLssAI10AI5 R
Analog Input Ch6 SLssAI10AI6 R
AO-2
4 channel analog output module
Data Description Variable Name R/W Notes
Analog Output Ch1 SLssAO2AO1 R/W Raw scale 0-32760 = 0-100%
Analog Output Ch2 SLssAO2AO2 R/W
Analog Output Ch3 SLssAO2AO3 R/W
Analog Output Ch4 SLssAO2AO4 R/W
AO-3
4 channel analog output modules with open loop detection
Data Description Variable Name R/W Notes
Analog Output Ch1 SLssAO3AO1 R/W Raw scale 0-32760 = 0-100%
Analog Output Ch2 SLssAO3AO2 R/W
Analog Output Ch3 SLssAO3AO3 R/W
Analog Output Ch4 SLssAO3AO4 R/W
Ch1 Open Loop SLssAO3DI1 R 1 = Open Loop
Ch2 Open Loop SLssAO3DI2 R
Ch3 Open Loop SLssAO3DI3 R
Ch4 Open Loop SLssAO3DI4 R
DI-5
16 channel digital input / 4 counter module
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssDI5DI1 R The first 4 channels interface to
Digital Input Ch2 SLssDI5DI2 R hardware counters.
Channels 1 and 2 up to 10kHz.
Digital Input Ch3 SLssDI5DI3 R Channels 3 & 4 up to 255Hz.
Digital Input Ch4 SLssDI5DI4 R
Digital Input Ch5 SLssDI5DI5 R If the maximum pulse rate is exceeded
on channels 3 and 4 (>255 Hz), each
Digital Input Ch6 SLssDI5DI6 R counter will contain the lowest 8 bits of
Digital Input Ch7 SLssDI5DI7 R the actual pulse rate. Results are
Digital Input Ch8 SLssDI5DI8 R unpredictable at pulse rates greater than
1 kHz
Digital Input Ch9 SLssDI5DI9 R
Digital Input Ch10 SLssDI5DI10 R
Digital Input Ch11 SLssDI5DI11 R
Digital Input Ch12 SLssDI5DI12 R
Digital Input Ch13 SLssDI5DI13 R
Digital Input Ch14 SLssDI5DI14 R
Digital Input Ch15 SLssDI5DI15 R
Digital Input Ch16 SLssDI5DI16 R
Ch1 Total Pulses SLssDI5AI1 R/W
Ch2 Total Pulses SLssDI5AI2 R/W
Ch3 Total Pulses SLssDI5AI3 R/W
Ch4 Total Pulses SLssDI5AI4 R/W
Ch1 Pulse Rate Hz SLssDI5AI5 R/W
Ch2 Pulse Rate Hz SLssDI5AI6 R/W
Ch3 Pulse Rate Hz SLssDI5AI7 R/W
Ch4 Pulse Rate Hz SLssDI5AI8 R/W
DI-10
16 channel digital input / 7 counter module with event time-stamping
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssDI10DI1 R Has configurable Frequency or Pulse or
Digital Input Ch2 SLssDI10DI2 R Quadrature counting and Sequence-of-
Events recording (using event logs).
Digital Input Ch3 SLssDI10DI3 R
Digital Input Ch4 SLssDI10DI4 R Counters 1-7 can count Frequency (0-
Digital Input Ch5 SLssDI10DI5 R 10kHz max.) or Total Pulses (0-65535) or
Quadrature Count (0-65535) for any
Digital Input Ch6 SLssDI10DI6 R configured channel(s) (as configured
Digital Input Ch7 SLssDI10DI7 R using FoxRTU Station)
Digital Input Ch8 SLssDI10DI8 R
Digital Input Ch9 SLssDI10DI9 R
DO-1
8 channel digital output module
Data Description Variable Name R/W Notes
Digital Output Ch1 SLssDO1DO1 R/W NA
Digital Output Ch2 SLssDO1DO2 R/W
Digital Output Ch3 SLssDO1DO3 R/W
Digital Output Ch4 SLssDO1DO4 R/W
Digital Output Ch5 SLssDO1DO5 R/W
Digital Output Ch6 SLssDO1DO6 R/W
Digital Output Ch7 SLssDO1DO7 R/W
Digital Output Ch8 SLssDO1DO8 R/W
DO-2/DO-6
16 channel digital output modules
Data Description Variable Name R/W Notes
Digital Output Ch1 SLssDO2DO1 R/W DO-2 has relays in the module
Digital Output Ch2 SLssDO2DO2 R/W DO-6 has transistor outputs for driving
an external relay board.
Digital Output Ch3 SLssDO2DO3 R/W
Digital Output Ch4 SLssDO2DO4 R/W
Digital Output Ch5 SLssDO2DO5 R/W
Digital Output Ch6 SLssDO2DO6 R/W
Digital Output Ch7 SLssDO2DO7 R/W
Digital Output Ch8 SLssDO2DO8 R/W
Digital Output Ch9 SLssDO2DO9 R/W
Digital Output Ch10 SLssDO2DO10 R/W
Digital Output Ch11 SLssDO2DO11 R/W
IO-3
4 digital input / 4 digital output / 4 analog input / 1 analog output module
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssIO3DI1 R Analog raw scale 0-32760 = 0-100%
Digital Input Ch2 SLssIO3DI2 R
Digital Input Ch3 SLssIO3DI3 R
Digital Input Ch4 SLssIO3DI4 R
Digital Output Ch1 SLssIO3DO1 R/W
Digital Output Ch2 SLssIO3DO2 R/W
Digital Output Ch3 SLssIO3DO3 R/W
Digital Output Ch4 SLssIO3DO4 R/W
Analog Input Ch1 SLssIO3AI1 R
Analog Input Ch2 SLssIO3AI2 R
Analog Input Ch3 SLssIO3AI3 R
Analog Input Ch4 SLssIO3AI4 R
Analog Output Ch1 SLssIO3AO1 R/W
IO-5
4 digital input / 4 digital output / 4 analog input / 4 counter module
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssIO5DI1 R NA
Digital Input Ch2 SLssIO5DI2 R
Digital Input Ch3 SLssIO5DI3 R
Digital Input Ch4 SLssIO5DI4 R
Digital Output Ch1 SLssIO5DO1 R/W
Digital Output Ch2 SLssIO5DO2 R/W
Digital Output Ch3 SLssIO5DO3 R/W
Digital Output Ch4 SLssIO5DO4 R/W
Analog Input Ch1 SLssIO5AI1 R Analog raw scale 0-32760 = 0-100%
Analog Input Ch2 SLssIO5AI2 R
Analog Input Ch3 SLssIO5AI3 R
Analog Input Ch4 SLssIO5AI4 R
Digital Input Counter SLssIO5AI5 R NA
1
PS-1x or PS-2x
Power supply modules
Data Description Variable Name R/W Notes
Supply Voltage SLssPS11AI1 R Raw Scale= 0-32736, Eng. Units=0 to 32.27V
The DC voltage supplied to the RTU modules on the
backplane (typically 12V) and used to charge the
battery. This voltage is sourced from the battery if
there is no input supply present.
Battery Current SLssPS11AI2 R Raw Scale=-32768 to 32736 (+4..+8,-8..+4 A)
Amps = ((raw+81936) mod 65536) * 16/65536 – 8
Positive = battery charging, negative = discharging
Total Current SLssPS11AI3 R Raw Scale=-32768 to 32736 (+4..+8,-8..+4 A)
Amps = ((raw+81936) mod 65536) * 16/65536 – 8
Total current supplied by the power supply to the
RTU modules and battery (always positive).
Battery SLssPS11AI4 R Raw Scale=-32768 to 32736 (+80..+140,-60..+80 °C)
Temperature °C = ((raw+78640) mod 65536) * 200/65536 – 60
Battery Type SLssPS11AI5 R 0 = Default, 1 = Lead-Acid, 2 = Ni-Cad
Battery Size SLssPS11AI6 R Battery Size (x 0.1AH) 0 to 250 = 0 to 25.0 AH Max.
Module SLssPS11AI7 R Raw Scale=-32768 to 32736 (+80..+140,-60..+80 °C)
Temperature °C = ((raw+78640) mod 65536) * 200/65536 - 60
Status (PS-x2 only) SLssPS11AI8 R Power supply status bits (requires recent firmware)
Bit 12 (mask 16#1000): 1 = Backplane +5V detected
fault
Other bits are reserved.
Power ON SLssPS11DI1 R 1 = AC (PS-1x) or DC (PS-2x) Power ON
AUX 24V Fail SLssPS11DI2 R 1 = Auxiliary 24V failure or not present
Battery Low SLssPS11DI3 R 0 = Battery low. Note: Active low.
This bit does not indicate if a battery is present as
Battery Low is cleared whenever the input supply is
active. If the input supply is OFF (i.e.
SLssPS11DI1=0), a battery is present if the RTU is
still running!
Power Supply Type SLssPS11DI4 R 1 = PS-2x, 0 = PS-1x
Float State SLssPS11DI5 R 1 = float state
Charge State SLssPS11DI6 R 1 = charge state
Boost State SLssPS11DI7 R 1 = boost state
Temperature SLssPS11DI8 R 1 = sensor error
Sensor Error
Manual Power SLssPS11DO1 R/W 0 = automatic control (default)
Control 1 = manual control. Allows manual control of Radio
and 24V power
Radio power OFF SLssPS11DO2 R/W 1 = radio OFF (if SLssPS11DO1=1)
Variables must be manually created in the Dictionary before they can be used in logic or
transferred via a protocol.
Floating point FoxRTU registers (type REAL) may also be created, which are named
FOXrFn. These are only supported by the HART protocol, however.
In summary:
Variable Name Type Description
FOXrRn DINT FoxRTU integer register #n on RTU r
FOXrFn REAL FoxRTU floating point register #n on RTU r
For example, local FoxRTU register #315 would be named FOXR315, while register #210
retrieved from RTU 17 would be FOX17R210.
Modbus Variables
Modbus variables are used to store 1-bit or 16-bit data values to be transferred between
RTUs using the Modbus protocol.
Variables must be manually created in the Dictionary before they can be used in logic or
transferred via Modbus.
For example, the variable for Modbus coil #22 on the local RTU would be named MODC22,
while Modbus input register #2 read from RTU 39 would be MOD39I2.
Note that only the least significant byte of the RTU address (r) will be used in Modbus
messages. This means that two RTUs whose addresses have the same least significant
byte (e.g. addresses 3 and 259) cannot be connected on the same network if Modbus is to
be used.
Note also that some device documentation or SCADA systems identify the type of Modbus
point by adding a numeric prefix, e.g. holding registers are in the range 40001-49999 or
400001-465535. The point number (n) specified in the variable name must not include this
prefix digit, e.g. point 40006 would correspond to variable MODH6.
DNP3 Variables
DNP3 variables are used to store data values to be transferred between RTUs using the
DNP3 protocol.
Variables must be manually created in the Dictionary before they can be used in logic or
transferred via Modbus.
For example, the variable for DNP3 binary input #0 on the local RTU would be named
DNPBI0, while DNP3 analog input #21 read from RTU 909 would be DNP909AI21.
DNP3 variables use the IOPOINT_x structure types, which include timestamp and flag
information as well as the actual data value.
As standards, specifications, and design change from time to time, please ask for confirmation of the information given in this publication.