You are on page 1of 184

For CP-30 and G30 RTUs

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 2




Document Information

Document Control
Copyright
Copyright CSE-Semaphore (Australia) Pty Ltd. ABN 35 006 805 910
www.cse-semaphore.com/mykingfisher, info.kingfisher@cse-semaphore.com
Intellectual
Property
CSE-Semaphore asserts ownership of the intellectual property contained herein and claims
copyright and authorship. CSE-Semaphore has and retains all rights of ownership and use of the
material herein in its on-going business.
Licence
This document is provided to the intended recipient(s) under a non-exclusive licence. This licence
permits Fair Use of the document for operational requirements, without payment of further royalty
or licence fee. Fair Use includes making copies of the document for operational, backup and
archive purposes. Fair Use includes distributing copies of the document to other entities for the
purposes of their performing related works for the intended recipient(s). Fair Use does not include
creating, selling or distributing copies of the document for other purposes. All copies must retain
this statement of Intellectual Property and Copyright.

Revision History
Ver.* Date Firmware Required Summary
3.0.0 26/4/2007 CP-30/G30 MC-30 First release.
3.8.0 14/1/2010 2242+ 232+ Multiple Kingfisher Floating Point variables can now be automatically
created. AO-3 support added. MC-30 firmware version now displayed in
Status window. MC-30 now supports HART and spread spectrum radio
option boards. Updated information about mapping IO variables to Modbus
variables. Added variables for G30 IO cards. Updated Event Log function
block for DNP3. Updates to DNP3 configuration. DNP3 variables no longer
need to be consecutive. Can now map remote DNP3 objects as local
objects. DNP3 messages can now be forwarded to another RTU. New DNP
Master function block DNPM_READ_GROUP. Added and updated a
number of port settings. Message Timeout and Retry parameters moved
from Port settings to Route settings. Added topic Ports USB (allows
connection of USB storage devices). Network image capture now
supported. Added Kingfisher Get Route and Set Route function blocks.
Added Network Time Protocol (NTP). Can now automaticall y detect RTUs
connected to the local Ethernet network or PC serial port (Discovery).
3.8.3 29/4/2010 2363+ DNP3 minor updates. IEC 60870-5 protocol added. Firmware patches can
now be downloaded and viewed from Status window. MC-31 now
supported (a CP-30 can be changed into an MC-31 by downloading MC-31
firmware). Reviewed and updated Quick Start.
3.8.4 2/9/2010 2468+ Added topic ISaGRAF Defined Words (can be used instead of constants).
Updated Redundancy appendix. Revised Quick Start. Added ISaGRAF -
Logic Examples topic. Added appendix - Creating Variables Using Excel.
Can now send unsolicited reports to multiple DNP3 devices. HART and 2/4
Wire Line option cards now configurable for G30. Logic programs and
function blocks can now be imported from other RTU configurations and
projects. Added notes about Modbus extended addressing. IEC protocol
temporarily unavailable. Added information for downloading firmware to an
MC-31 (similar to a CP-30).
* Manual version corresponds to Toolbox PLUS version.
Please ensure correct firmware is used with each version of Toolbox PLUS as listed above.
Minor updates to Toolbox PLUS are denoted by a change in the last revision digit. These changes do not require projects to be
upgraded or new firmware to be downloaded.
Major updates to Toolbox PLUS are denoted by a change in the middle revision digit. These changes require projects to be
manually upgraded and new firmware to be downloaded.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 3


Contents
1. Quick Start .................................................................................................................4
2. Software Installation ............................................................................................... 10
3. Navigation................................................................................................................12
Navigation - Software Layout ................................................................................................................ 13
Navigation - Menu Bar........................................................................................................................... 14
Navigation - Multiple Ways To Select A Menu...................................................................................... 18
Navigation - Workspace ........................................................................................................................ 19
Navigation - Tabs .................................................................................................................................. 21
4. RTU Introduction.....................................................................................................22
5. RTU Configuration...................................................................................................23
RTU Configuration - Projects, Groups, RTUs ....................................................................................... 24
RTU Configuration - Project Properties................................................................................................. 25
RTU Configuration - Add Modules ........................................................................................................ 26
RTU Configuration - RTU Properties..................................................................................................... 28
RTU Configuration - Protocols .............................................................................................................. 29
RTU Configuration - Ports ..................................................................................................................... 36
RTU Configuration - Routes.................................................................................................................. 45
RTU Configuration - Phone................................................................................................................... 49
RTU Configuration - Programs.............................................................................................................. 50
RTU Configuration - Module Properties ................................................................................................ 52
6. Dictionary.................................................................................................................60
Dictionary - Variables ............................................................................................................................ 61
Dictionary - New Variables .................................................................................................................... 62
Dictionary - Edit Variables ..................................................................................................................... 64
7. ISaGRAF
TM
...............................................................................................................72
ISaGRAF
TM
- Overview......................................................................................................................... 73
ISaGRAF
TM
- Editing Tips..................................................................................................................... 74
ISaGRAF
TM
- Variable Types................................................................................................................ 76
ISaGRAF
TM
- Defined Words................................................................................................................ 77
ISaGRAF
TM
- Custom Function Blocks................................................................................................. 78
ISaGRAF
TM
- Logic Examples ............................................................................................................ 113
ISaGRAF
TM
- Reserved Variable Names ........................................................................................... 129
8. Download...............................................................................................................130
Download - Overview .......................................................................................................................... 131
Download - Connecting To An RTU.................................................................................................... 132
Download - Configuration.................................................................................................................... 137
Download - Logic................................................................................................................................. 137
Download - Firmware .......................................................................................................................... 138
9. Viewing Data..........................................................................................................139
View - Status ....................................................................................................................................... 140
View - Event Logs................................................................................................................................ 142
View - Communications....................................................................................................................... 144
10. Appendices............................................................................................................147
Appendix - Glossary ............................................................................................................................ 148
Appendix - Kingfisher PLUS+.............................................................................................................. 149
Appendix - Semaphore MIB ................................................................................................................ 152
Appendix - Redundancy...................................................................................................................... 159
Appendix - Creating Variables Using Excel......................................................................................... 167
Appendix - RTU Data .......................................................................................................................... 171

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 4


1. Quick Start
This chapter explains how to create and download a basic configuration for a CP-30 or G30 RTU.
To review the differences between CP-30/G30 and other Kingfisher PLUS+ processor modules please
see the appendix - Kingfisher PLUS+.
1. Assemble and power up the
RTU.
Wiring details are contained in
the power supply section of the
Hardware Manual available from
www.cse-
semaphore.com/mykingfisher


1
2
3
OPTIONAL
LOCKING
SCREW
PRESS INTO SOCKET
HOOK MOUNTING TAB
ONTO BACKPLANE SLOT



CONNECT MAINS POWER FOR PS-11
OR DC SUPPLY FOR PS-21
Plug the PS-xx power
supply into the left
backplane slot, followed by
the CP-30 and the MC-30
(if applicable) and any IO
modules.
Supply power to the PS-xx
and switch ON the RTU.
CP-30 PS-xx MC-30 AI-10 DI-10
ON/OFF
SWITCH

2. Connect the Ethernet port of
the CP-30 or G30 to the Ethernet
port of the PC using the red
Ethernet crossover cable (as
supplied with Toolbox PLUS).

If the PC does not have a spare
Ethernet port, a USB to Ethernet
Adapter can be used to provide
an additional Ethernet port.



CP-30 PS-xx
Ethernet
Crossover
Cable
AI-10 DI-10
G30
MC-30
SUPPLY POWER
ETHERNET
PORT
ETHERNET
PORT

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 5

3. Start Toolbox PLUS.
For help to install Toolbox PLUS
please see the topic Software
Installation

4. Select Tools, Status. When
the Connection to RTU window
appears, select Use the
following IP address
information and then select the
OK button.
The default IP address of the
RTU Ethernet port is
192.168.0.1.



If Toolbox cannot communicate
with the RTU, please see the
topic Download LAN Port
Setup.


5. When communications are
successful, the RTU Status will
be displayed.
Select the Modules tab to view
the modules that have been
detected by the RTU.
Select the module of interest and
then click the Details button.
IO module Inputs can be viewed
and outputs can be set.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 6

6. RTU configurations are kept
in a project.
To create a new project, select
New, Project.

7. RTU Configurations can be
kept in groups within a project.
Groups are optional.
To create a new group, first
select the project name in the
navigation pane. Then select
New, Group.

8. RTUs can be added into a
group or straight into the project.
To add an RTU, select the group
or project name in the navigation
pane. Then select New, RTU.
Specify the Type as CP-30 or
G30.

9. A CP-30 RTU is comprised of
two or more modules installed on
a backplane. A G30 RTU is
comprised of two or more cards
installed in the G30 case.
To add modules or cards, Select
the RTU name in the navigation
pane. Then select New, Module.
For more information about
backplane slot numbers, please
see the topic RTU Configuration
- Add Modules.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 7

10. Each RTU, Module or Card
has properties that can be
changed.
To edit properties, Select the
RTU name in the navigation
pane or Select the module or
card in the workspace. Then
select Edit, Properties.
For more information please see
the topics RTU Configuration -
RTU Properties or RTU
Configuration - Module
Properties.


11. Various communication
protocols (eg. Modbus, DNP3)
can be used by the RTU if
required.
Kingfisher protocol is always
enabled.
For more information please see
the topic RTU Configuration -
Protocols.

12. A CP-30, MC-30/31 or G30
can have up to 3 communication
ports per module. A CP-30 RTU
can have up to 16 ports in total.
Select the RTU name in the
navigation pane. Select Edit,
Properties. Then select the
Ports tab to Add or Edit ports.
There are a number of port
settings that can be edited once
the port is added.
Select the port to edit from the
Ports list and then select Edit.
For more information please see
the topic RTU Configuration -
Ports.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 8

13. The communication path
between two or more RTUs is
called a route.
If this RTU needs to
communicate with another RTU
or device, please see the topic
RTU Configuration - Routes.

14. If the RTU has a PSTN port
or an external PSTN modem and
will dial other RTUs, a phone
number needs to be configured
for each remote RTU.
Select the RTU name in the
navigation pane. Select Edit,
Properties. Then select the
Phone tab to Add or Edit phone
numbers.
For more information please see
the topic RTU Configuration -
Phone.

15. Logic programs are used to
add intelligence to the RTU.
Logic programs access RTU
data and module IO points by
using variables. Variables are
configured in the Dictionary.
For more information about
variables please see the chapter
- Dictionary.
To configure programs, please
see the topic RTU Configuration,
Programs.
For example logic programs,
please see the topic ISaGRAF
Logic Examples

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 9

16. The project, group and
RTU can be renamed.
Select the project, group or RTU
to rename in the navigation
pane. Then select Edit,
Rename.

17. The entire project can be
saved at any time and should be
saved before downloading.
Select File, Save.
The first time the project is
saved, Toolbox PLUS requests
the folder to save the project in.

18. To download select the
RTU name in the navigation
pane. Then select Download,
Configuration and Logic.
For more information please see
the chapter Download.

19. The Kingfisher PLUS+ RTU is now configured!


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 10


2. Software Installation
Latest versions of software can be downloaded from MyKingfisher - www.cse-semaphore.com/mykingfisher

Note: the PC does not have to be restarted until all the programs have been installed. Installation of Toolbox
PLUS is not supported on network servers.

1. Insert the Toolbox PLUS
installation CD in the PC.
If the installer does not
automatically start then run:
Autorun.exe
Minimum PC Requirements:
Pentium 166 MHz
128 MB RAM
Microsoft Windows
NT4.0 SP6A (service pack 6A),
2000 or XP SP1.


2. Install Toolbox PLUS by
selecting the Toolbox PLUS
button.
(If a previous version is installed
on the PC, it will first need to be
removed using Add or Remove
Programs from the Windows
Control Panel).

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 11

3. Install ISaGRAF
TM
by
selecting the ISaGRAF button.
Once ISaGRAF
TM
is installed,
upgrade to the latest version by
selecting the ISaGRAF update
button.
Note: to use ISaGRAF
TM
, the
ISaGRAF
TM
dongle must be
connected to the PC.


4. Install Sentinel USB driver by
selecting the Sentinel USB
Driver button.

This driver provides support for
the ISaGRAF
TM
USB dongle.

5. Install Wireshark by selecting
the Wireshark button.
Wireshark provides diagnostics
of Ethernet communications.

6. Installation Complete!
The PC now needs to be restarted.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 12


3. Navigation

Topic Description
Software Layout Overview of the Toolbox PLUS software layout
Menu Bar Describes the Menu Bar commands
Multiple Ways To
Select A Menu
Different ways to access RTU configuration settings
Workspace The different types of information that can be viewed in the workspace
Tabs How to access layered configuration settings

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 13

Navigation - Software Layout
Toolbox PLUS uses a layout similar to many Microsoft applications. There are a number of ways to access
each menu option and the information displayed varies according to what is currently selected.



Title Bar: displays the name of the active project (if open) and the Toolbox PLUS program version.
Menu Bar: allows access to all the Toolbox PLUS commands. Note: some commands are only available
when an RTU is selected in the navigation pane.
Tool Bar: has icons that allow quick access to some commands that are also in the Menu Bar. Note: some
icons are only available when an RTU is selected in the navigation pane.
Status Bar: displays information about the progress or result of an action. Displays Working Online
whenever Toolbox PLUS is communicating with an RTU.
Workspace: displays configuration information about RTUs, modules and variables. Also displays the event
logs. Information displayed varies according to what is currently selected in the navigation pane and wonder
bar.
Wonder Bar: controls the information displayed in the workspace. First select the RTU name to work with
(located in the Navigation Pane). Then select Projects, Dictionary or Event Log. This will display the
corresponding data for the selected RTU name in the workspace. Note: if a project or group name is
selected, the information in the workspace will be different.
Navigation Pane: displays open projects and up to 2 levels within each project - groups and RTUs. The
selection in the navigation pane affects the information displayed in the workspace.
Projects: allows one or more projects to be open at one time.
Groups: allows RTUs that have something in common to be kept together when they are displayed in
Toolbox PLUS.
RTU: displays the address and name of each RTU in the project.

Title Bar
Menu Bar
Tool Bar
Wonder Bar
Navigation Pane
RTU
Bar
Group
Workspace
Status Bar
Project
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 14

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 shortcut keys are listed alongside the Menu
Bar commands shown below.

File Menu
New: allows a new project, group [of RTUs],
RTU, module or variables to be created.
Note: menu options are disabled if not
applicable to the current selection in the
Navigation pane.
Open: opens an existing project. Note: an
existing project can be automatically opened
when Toolbox PLUS is started. Edit the
properties of the Toolbox PLUS shortcut
(Right Click, select Properties). Add the path
of the project in quotation marks after the
entry in the Target parameter. Eg. Target:
"C:\Program Files\Kingfisher\Toolbox
PLUS\ToolboxPLUS+.exe" "C:\Water
Project\Pump Station"
Close: closes selected project
Save: saves selected project
Save As: allows project to be saved with a
new name and in a new location.
Export: zips up the selected project and
saves it To File or attaches it To Email. Note:
export does not zip up any ISaGRAF
TM

library files that the project uses. When
exporting To Excel, exports the dictionary
variables to an Excel spreadsheet.
Import: When importing From Excel, allows
dictionary variables to be imported from an
Excel spreadsheet. The format of the
spreadsheet must be the same as the
spreadsheet created using the Export To
Excel function above.
Recent Projects: recent projects that were
opened in the past can be opened again.
Exit: closes Toolbox PLUS program.





Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 15

Edit Menu
Cut: copies the selected RTU configuration
and then deletes it from the project.
Copy: copies the selected RTU configuration.
Paste: pastes the last copied RTU
configuration into the selected group or
project.
Rename: allows the name of a project, group
or RTU to be changed. Names can include
spaces, hyphens ( - ), underscores ( _ ),
commas ( , ) and periods ( . ).
Delete: deletes the selected group, RTU or
module (modules are selected in the
workspace)
Properties: allows the settings for a project,
group, RTU or module to be changed.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 16


Tools Menu
Connection: contains settings for how to
communicate with the selected RTU. Only
available when a project, group or RTU is
selected.
Communications
#
: launches Wireshark
Ethernet analyser program.
Discovery: detects all RTUs using the
same Subnet address as the local Ethernet
port(s) or connected to the PCs serial port
(requires 2285 firmware or newer).
Statistics: displays the number of
successful or failed messages sent by
Toolbox PLUS.
ISaGRAF *: launches the ISaGRAF
TM

logic editor for the selected RTU.
Build *: compiles the configuration and
ISaGRAF
TM
programs for the selected
RTU. If the program(s) contain errors,
Toolbox PLUS will report the following
ERROR: Cannot make ISaGRAF
download files.
Download: Allows Configuration, Logic or
Firmware to be downloaded to the selected
RTU. Note: Toolbox PLUS will
automatically compile the configuration
and/or logic before downloading.
Upload: uploads the configuration last
downloaded to the connected RTU. Does
not upload logic programs.
Restart: restarts the selected RTU.
Advanced: Can download MC-30 firmware
or update the custom function blocks in
ISaGRAF
TM
with the version stored in
..\ToolboxPLUS+\Updates. Caution!
Please ensure the RTU has firmware that
supports the new function blocks to avoid
RTU malfunction.
Status: displays live status information for
the selected RTU. Multiple module status
windows can be viewed at the same time
for the one RTU.

#
Only enabled when Wireshark is installed.
* Only enabled when ISaGRAF
TM
is installed.




Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 17


Help Menu
Contents: displays table of contents from
help file.
Search: searches for a keyword in the help
file.
About Toolbox: Displays Toolbox PLUS
program information.


Configuration windows have a help button in the top right-hand corner (as shown). Select the help button
to view information about the current window.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 18

Navigation - Multiple Ways To Select A Menu
The examples below show different ways to edit the RTU properties.

The Menu Bar example is the default method used in this manual.

Menu Bar
Select the RTU name in the
navigation pane.
Select Edit, Properties.

Right-Click
Right-click the RTU name in
navigation pane.
Select Properties.

Double-Click
Double-click the RTU name in the
navigation pane.

Shortcut Keys
Select the RTU name in the
navigation pane.
Press the Ctrl and Space keys


The Tool Bar provides another way of accessing some Toolbox PLUS commands.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 19


Navigation - Workspace
The information displayed in the workspace changes according to what is currently selected in the navigation
pane (ie. Project, Group or RTU) and the Wonder Bar selection (ie. Projects, Dictionary or Event Log). The
various Workspace displays are shown below.


Workspace - Default View
Wonder Bar Selection:
Projects or Dictionary or Event
Log
Displayed when Toolbox PLUS is
first started or Projects is selected
in the navigation pane
The Recent Projects that were
opened in the past can be opened
again.

Another existing project can be
opened or a new project created.



Workspace - View RTUs
Wonder Bar Selection: Projects
When a project name is selected
in the navigation pane, the RTUs
and RTU groups in that project
are displayed in the workspace.



Workspace - View Modules
Wonder Bar Selection: Projects
When an RTU name is selected in
the navigation pane, the RTUs
modules are displayed in the
workspace.
This view allows module
properties to be configured
(double-click on any module).
For more information please see
the topic RTU Configuration -
Module Properties.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 20


Workspace - View Dictionary
Wonder Bar Selection: Dictionary
When an RTU name is selected in
the navigation pane, the RTUs
dictionary is displayed in the
workspace.
This view allows variables to be
edited (double-click on an existing
variable) or created (select the
New button).
For more information please see
the chapter - Dictionary.



Workspace - View Event Log
Wonder Bar Selection:
Event Log
When an RTU name is selected in
the navigation pane, the RTUs
event log is displayed in the
workspace.
This view allows event logs to be
retrieved from an RTU, filtered,
exported (saved) and cleared.
For more information please see
the topic View - Event Logs.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 21

Navigation - Tabs
Some windows have a number of pages that can be accessed by selecting the tab buttons across the top of
the window. Example:


Edit RTU Properties
Select the RTU name in the navigation pane.
Select Edit, Properties. The RTU Properties window with tabs will then
appear.




Tabs
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 22


4. RTU Introduction


An RTU is electronic equipment that contains a computer. RTUs
are often located in remote places. This led to the name Remote
Terminal Unit (RTU). RTUs can be wired to a whole range of
devices like switches, relays and sensors. Each RTU can monitor
and control the devices it is wired to.
There are two types of devices that an RTU can be wired to -
digital and analog. A digital signal is an ON or OFF state of a
switch or a relay. An analog signal is a variable measurement like
tank level or temperature.
An RTU can also obtain data by communicating with intelligent
devices (eg. a PLC).

RTUs can be programmed to carry out a wide range of tasks. For example:
Set outputs according to the state of inputs (eg. run a pump to fill a tank that is low)
Send a message when there is new data or a significant event has occurred
Perform complex mathematical calculations

Kingfisher RTUs have continued to increase in speed and power over the years and can now provide:
Data Logging
Alarming - auto dialing, SMS messages
Diverse communications - data radios, dialup and cellular modems, leased line, Ethernet and more
PLC-like logic processing
Large networks - more than 65,000 RTUs
Support for various protocols: Kingfisher, Modbus, DNP3, SNMP, Allen Bradley DF1 and more


Indirect
Route

RTU3

RTU4

RTU2

Remote RTUs

Direct
Route

Data

Data

Data

RTU1

Data

Network


RTU2 Data

RTU3 Data

RTU4 Data

Master RTU


An RTU network is two or more RTUs that can
communicate with each other in some way. The
communication path is called a route.
Usually one RTU is setup as the Master RTU. The
master RTU regularly polls data from all the other
RTUs. The other RTUs are referred to as Remote
RTUs and can report data changes as they occur
(called exception reports). RTU configuration is
completely flexible and allows for many other types
of communication setups.
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.

If only polling is used, it will take up to the regular polling interval before the master RTU obtains new data
from remote RTUs. Example: If the master polls the remote RTUs every 2 minutes, it will take up to two
minutes before the master receives new data from the remote RTUs.

If only exception reporting is used, the master RTU will not know if a remote RTU has failed. If the master
RTU does not receive a message from a remote RTU for a long time this could mean that either there is no
new data or that the remote RTU has stopped communicating.

The best method is to use both polling and exception reports. This means that if a remote RTU fails, the
master RTU will find out about the fail when it performs the next poll. And as soon as data changes or a
significant event occurs, the master RTU will be notified by an exception report.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 23


5. RTU Configuration

Topic Description
Projects How to create a new project, new RTUs and groups of RTUs
Project Properties The project name and details
Add Modules How to add all the modules or cards that the RTU will use
RTU Properties
General RTU settings including RTU address. Skip this topic when using the default
RTU addresses assigned by Toolbox PLUS
Protocols The communication languages that the RTU can use
Ports How to add and configure communication ports in the RTU
Routes
How each RTU communicates with the other RTUs. Skip this topic if there is only
one RTU in the project.
Phone
The phone numbers of remote RTUs to dial if using a dialup option board or external
PSTN modem
Programs The number and type of logic programs that the RTU will use
Module Properties
Allows the IO module or card properties (settings) to be configured. Skip this topic if
the RTU does not have any IO modules or cards or to use the default settings.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 24


RTU Configuration - Projects, Groups, RTUs
A new project must be created before any RTU configurations can be created. A project contains the
configurations for one or more RTUs and allows all the information for a monitoring and control system to be
kept together.

Create New Project
Select New, Project
(Or an existing project can be opened)
When using a lot of RTUs, they can be kept in groups. Groups allow RTUs that have something in common
to be displayed together in Toolbox PLUS. Egs. Water or sewerage RTUs, Radio or PSTN RTUs.

Create New Group
Select the project name in the navigation pane
Select New, Group
RTUs can be added directly into a project or added into a project group.

Create New RTU
Select the project or group name in the navigation pane
Select New, RTU
Select the Type of RTU required: CP-30 or G30-SA (G30 Stand Alone)
The new project, group and RTUs can be renamed.

Rename Project, Group or RTU
Select the project, group or RTU in the navigation pane.
Select Edit, Rename

Note: projects and groups are only used by Toolbox PLUS to organise how the information is displayed and
saved. Project and group names are not downloaded into the RTU.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 25


RTU Configuration - Project Properties
Allows the general settings of the Project to be viewed and configured.


Edit Project Properties
Select the Project name in the navigation pane
Select Edit, Properties (or double-click the Project name)


Name: (0 to 255 characters) Name of the project.

Password, Confirm Password: (0 to 20 characters)
When configured, this password will be required in order
to open the project in Toolbox PLUS. To disable
password protection, clear both parameters.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 26


RTU Configuration - Add Modules

A CP-30 RTU requires at least a power supply module (PS-11) and a processor
module (CP-30). Communications modules (MC-30/31) and IO modules (eg. IO-4)
can be added if required. Each communications module can have up to three
communications ports.
All the modules are installed on a backplane. A backplane has 4, 6 or 12 slots.
Backplanes can also be linked together allowing up to 64 modules in total per
RTU.
A CP-30 RTU can also have a second (redundant) CP-30 processor module.

Toolbox PLUS will automatically create variables in the dictionary corresponding to all the IO points in each
power supply, IO module or card.


Add New Module (CP-30) or Card (G30)
Select the RTU name in the navigation pane
Select New, Module

Once the module or card has been added to the RTU, module or card properties can be changed. Please
see the topic RTU Configuration - Module Properties for details.

Type:
(CP-30: AI-1/4, AI-10, AO-2, AO-3, CP-30, DI-1, DI-10, DI-5, DO-1, DO-2/5/6, IO-2, IO-3, IO-4, MC-30, MC-
31, PS-11/21)
(G30: IOD-MX2, IOD-MX3, IOD-MX4, PSO-ACR, PSO-DCU)
The type of module or card to be added to the RTU. A second CP-30 can be added to the RTU to provide a
redundant (backup) processor. Please see the Redundancy appendix for more information. Note: upgrading
the firmware in an MC-11 will turn it into an MC-30. Upgrading the firmware in a CP-30 will turn it into an MC-
31.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 27

Slot [Not applicable to a G30]: (1-64) The position of the module on the backplane. A CP-30 RTU can have
up to 64 modules arranged as 4 racks of 16 modules. Slot numbers are hard-coded according to the type of
backplane (BA-4, BA-40, BA-6 or BA-12) and the rack number (1-4) of the backplane as illustrated below.
Rack number is set using switches on the backplane (default setting = rack 1). As shown below, the slot
numbers for a BA-4 or BA-40 do not start at 1. Slot numbers for a BA-4 or BA-40 are coded to follow on from
a BA-12 (for each rack number). Note: the slot numbers of all the modules installed in an online RTU can be
viewed by selecting the RTU in the navigation pane and then selecting Tools, Status.


BA-6
RACK 1 1 6
12
SLOT
BA-12
BA-6
RACK 2 17 22
28
SLOT
BA-6
RACK 3 33 38
44
SLOT
BA-6
RACK 4 49 54
60
SLOT
BA-4/40
13 16
29 32
45 48
61 64
BA-12
BA-12
BA-12
BA-4/40
BA-4/40
BA-4/40

For more information about how to link backplanes, please see the Kingfisher PLUS+ Hardware Manual.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 28


RTU Configuration - RTU Properties
Allows the general settings of the RTU to be configured. Each RTU in the network should have a unique
address. A unique address ensures that only one RTU responds to each message.


Edit RTU Properties
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)



Address: (1-65520) Address 1 is commonly used
for the master RTU. Toolbox 32 and SCADA PCs
use addresses 250 to 255 in non-ISaGRAF
TM

systems. It is recommended that address 1 to 249
be used if this RTU is going to be used in a non-
ISaGRAF
TM
network.
System ID: (00 to FF Hex) The communications
sync character used to screen incoming messages.
An RTU will only respond to messages that have
the same sync character as this System ID. It is
recommended that the AE default be used except
when configuring an RTU to relay radio messages
as detailed in the topic RTU Configuration - Routes,
Relaying Radio Messages.
Name: (0 to 64 characters) Name of the RTU.
Description: (0 to 255 characters) Description of
the RTU.
Maximum Event Logs: (0-99,999, default =
10,000) The maximum number of event logs to
maintain in Flash memory. Once the maximum limit
is reached, the oldest event logs are overwritten.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 29


RTU Configuration - Protocols
A protocol is a set of communication commands used to communicate with a device.

Multiple protocols can be used on each Ethernet port. All other ports support one protocol per port.

Allen Bradley, DNP3, Kingfisher, Modbus, SNMP, User Defined, HART and NTP protocols are all available.

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. All other protocols must be added to the RTU (as detailed below) before they can be
enabled on a port.



Add, Remove or Edit Protocol (to RTU)
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)
Select the Protocols tab
Select the Add button to add a protocol OR select an existing protocol to edit
or remove and then select the Edit or Remove button





Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 30

Protocols - Allen Bradley
Allows serial communications with an SLC500 PLC using the DF1 protocol in half duplex slave mode. The
data format is 8 data bits, 1 stop bit and no parity. Allen Bradley messages are generated using custom
ISaGRAF
TM
function blocks.

Protocols - Kingfisher
Developed for Kingfisher RTUs. Use of this protocol allows data to be transmitted through multi-level
networks and allows event logs to be uploaded from RTUs. RTU configurations can be downloaded to
remote RTUs and diagnostics can be carried out. Kingfisher messages are generated using custom
ISaGRAF
TM
function blocks.

Note: to store Kingfisher data from remote RTUs, Kingfisher network variables must be manually created.
Please see the appendix RTU Data - Protocols, Kingfisher Data, Network Register Variables for more
information.


Protocols - Modbus
A Kingfisher RTU can behave as a Modbus Master or a Modbus Slave or both a Modbus Slave and a
Modbus Master! Modbus protocol is supported on all RTU ports. Modbus TCP (over Ethernet) is only
supported on Ethernet ports.

Modbus extended addressing is supported allowing up to 65535 data points of each type to be accessed.

Modbus variables must be created in the Dictionary before Modbus data can be sent or received. Modbus
variables are detailed in the appendix RTU Data - Protocols, Modbus Data. Once Modbus variables have
been added to the Dictionary, each variable has settings that can be edited from the Dictionary.


Modbus ASCII: Allows the RTU to initiate and respond to messages using the Modbus function block in
Modbus ASCII data format.

Modbus RTU: Allows the RTU to initiate and respond to messages using the Modbus function block in
Modbus RTU data format.

Modbus TCP: Allows the RTU to initiate and respond to messages using the Modbus function block in
Modbus TCP/IP data format (over Ethernet).


Protocols - User Defined
Can be used on any serial port. Allows a new protocol to be created using the User Defined function blocks
in an ISaGRAF
TM
logic program.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 31


Protocols - SNMP
SNMP is supported on all Ethernet ports. SNMP messages are generated using custom ISaGRAF
TM

function blocks.

The Simple Network Management Protocol (SNMP) was developed in 1988 to monitor and control devices
connected to Ethernet networks. The diagram below shows the basic SNMP components.


Manager

Agent

Query sent to Agent

Trap sent to Manager

Response to Query

SNMP Protocol


A Manager node can query an Agent
node at any time.
The Agent node can also send a status
message to the Manager node at any
time. This is called a Trap.
SNMP queries and traps can occur
simultaneously. There are no restrictions
on when the manager may query the
Agent or when the agent can send a trap
to the Manager.

The SNMP protocol implementations that are available are described below.

SNMP Trap: Allows the RTU to send and receive SNMP trap messages using ISaGRAF
TM
function blocks.

SNMP RMS Trap: Allows the RTU to send and receive RMS Systems SNMP trap messages using
ISaGRAF
TM
function blocks.

SNMP Client (Master): Provides a master (or client) interface that allows the RTU to query, retrieve and set
information associated with remote devices using ISaGRAF
TM
function blocks.

SNMP Daemon (Slave): Provides a slave (or server) interface which allows configuration and state
information for the RTU to be set, queried or retrieved by remote agents using SNMP. ISaGRAF
TM
function
blocks are not used for this implementation of SNMP. The configuration and state information of the RTU is
defined in the Semaphore MIB (as listed in the appendices) and includes:
RTU address and system identifier
RTU hardware modules and I/O states
Event log information
Network interface and traffic information.

SNMP Daemon has the following protocol settings that can be edited.


Public community name: public (default).
Private community name: private (default).


Protocols - 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. Messages can be initiated by the RTU using the HART
function block.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 32

Protocols - DNP3
A Kingfisher RTU can act as a DNP3 Slave, a DNP3 Master or both a DNP3 Slave and a DNP3 Master! 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.

Note: 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.

Once local DNP3 variables have been added to the Dictionary (as shown below), each variable has settings
that can be edited from the Dictionary. If data is to be polled from a remote DNP3 device, additional DNP3
variables will need to be created for storing the remote DNP3 device data.


DNP3 variables for the local RTU are
automatically created in the Dictionary according
to the settings below.
Number of Binary Inputs: (0-65000).
Number of Binary Outputs: (0-65000).
Number of Binary Counters: (0-65000). Note:
Frozen Counters can also be manually created in
the Dictionary. Binary Counter values will then be
copied into the corresponding Frozen Counters
(with the same object number) following the
appropriate DNP command.
Number of Analog Inputs: (0-65000)
Number of Analog Outputs: (0-65000)
The format of local and network DNP3 variables
that can be created are detailed in the appendix -
RTU Data, Protocols, DNP3 Data.
Defaults: Default DNP3 settings to use when the
DNP3 variables are created in the dictionary.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 33


Maximum Transmit Fragment: (14-2048,
default=2048).
Maximum Transmit Frame: (14-292,
default=292).
Link Layer Confirmation: (Never not for any
frame [default], Only for multiframe message
fragment, Always for all frames).
Link confirmation timeout (milliseconds): (1-
65535, default=1000).
Maximum Retries: (0-65000, default=3).
Permit multi-fragment responses: (Tick to
enable).
Require application confirmations for non-
final fragments: (Tick to enable). Default =
disabled.

Timer Poll (milliseconds): (1-65535).
Application layer confirmation timeout
(milliseconds): (1-65535).
Select timeout (milliseconds): (1-65535).
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 34


Enable unsolicited reporting: (Tick to enable)
When enabled, the RTU will automatically send
an unsolicited report if there is new Class 1, 2 or 3
data (when enabled respectively). This setting is
used for setting up DNP3 slave functionality.
Destination address: (1-65535). One or more
addresses of remote DNP3 device(s) to send the
unsolicited report to. Multiple addresses are
entered separated by commas. Example: 5,6,7
Unsolicited reporting permitted for Class 1,
Class 2, Class 3: (Tick to enable) The class of
data to monitor and report any changes.

Require authentication for critical functions:
(Tick to enable) Used for DNP3 Slave RTUs when
security is required. When enabled, an Update
key can be entered (consisting of 16 hexadecimal
bytes). This Update key must then be provided by
a DNP3 master device before it can request a
critical function.
For a DNP Master RTU, authentication is
configured for each route that is used to
communicate with a Secure DNP3 Slave RTU.
Critical functions requiring authentication
(according to the DNP3 Secure Authentication
standard) are: Write; Select; Operate; Direct
operate; Direct operate no acknowledgement;
Cold restart; Warm restart; Initialise application;
Start application; Stop application; Enable
unsolicited messages; Disable unsolicited
messages; Record current time; Authenticate;
and Activate configuration.
Session key timeout (0-99999 minutes): The
Update key is used to create an initial session
key. The session key is automatically changed
each Session Key Timeout interval to protect
against replay attacks.
Authentication reply timeout (2-600 seconds):
How long to wait for a reply to the initial
authentication message.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 35


Mapping is useful for data concentration.
DNP3 objects obtained from remote RTUs can be
stored as if they are objects in the local RTU.
To prevent local and remote objects clashing,
objects from the remote RTU are given an offset.
Select the Add button to add a new mapping or
select an existing mapping and then select the
Edit or Remove buttons.
Eg. The local RTU has address 1. A Mapping is
configured with Address=2 and Local
Offset=1000. When DNP objects are polled from
remote RTU2, the objects are stored in RTU1 as
follows:
Remote RTU2 Local RTU1
DNP2BI1 DNP1BI1001
DNP2AI1 DNP1AI1001
etc



Protocols - NTP
The Network Time Protocol can only be used on CP-30 Ethernet port one and allows the RTU time to be
synchronized with a local or remote time server.


Time Server: IP address of the local or remote
time server.
Update Interval (seconds): How often to check
and update the RTU time.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 36


RTU Configuration - Ports
A CP-30 RTU has one to 16 communication ports. A G30 has two or three ports.

Once a port has been added to the RTU configuration, settings can then be configured for each Ethernet,
Serial, Dialup, Line, HART, Spread Spectrum Radio or USB port.


Add, Remove or Edit Port
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)
Select the Ports tab
Select the Add button to add a port (enabled if there is still room in the RTU)
OR select an existing port in the list and then select the Edit or Remove
button


Add: The fixed ports for a CP-30, MC-31, G30 or
MC-30 are automatically added to the Port list. Option
ports can be added by selecting the Add button.
CP-30 / MC-30/31 option ports: Option I - Isolated
Serial, Option S - Non-isolated Serial, Option F -
Fibre Serial, Option D -Dialup Modem, Option L - 2/4
Wire Line, Option H - HART, Option R2 - Spread
Spectrum [Australia], Option R3 - Spread Spectrum
[international], Option R4 - Spread Spectrum [USA]
and Option T2 Ethernet.
G30 option ports: OPT-SER - Isolated Serial, OPT-
LINE 2/4 Wire Line and OPT-HART HART.
A CP-30, MC-31 and MC-30 have one fixed port and
two option ports. A G30 has two fixed ports and one
option port as shown below.

PORT 1 Ethernet (Fixed)
PORT 2 - Option Board
PORT 3 - Option Board
CP-30 / MC-31

PORT 1 Serial (Fixed)
PORT 2 - Option Board
PORT 3 - Option Board
MC-30


PORT 1 Ethernet (Fixed)
PORT 2 USB (Fixed)
PORT 3 - Option Board
G30

Edit: Allows parameters for the selected port to be
configured.
Remove: Option ports that have been added can
be removed from the list.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 37

Ports - Ethernet
Supported by all CP-30/MC-31 ports (1 to 3), MC-30 ports 2 and 3 and G30 ports 1 and 3. When the port is
edited, the following settings are available:


IP Address: (Default=192.168.0.1) A local area
network may be used to communicate with the
RTU. A valid IP (internet protocol) address may be
obtained from the network administrator. Each
number in the IP address can have values in the
range of 0-255. The IP address can then be used by
Toolbox PLUS to communicate with the RTU via
Ethernet.
Subnet Mask: (Default=255.255.255.0) Allows for
detailed configuration of devices on a LAN. The
default setting is used in most cases. Each number
in the Subnet Mask can have values in the range of
0-255.
Gateway: (Default=192.168.0.254) The IP address
that allows access to the outside world for
communications to an RTU on another local area
network. Each number in the Gateway IP address
can have values in the range of 0-255.
Protocols: (Tick to enable) Protocols already
added to the RTU can be enabled on the port. More
than one protocol can be enabled on an Ethernet
port.

Note: The Ethernet Settings for CPU port 1 of the selected RTU can be viewed by pressing F12.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 38


Ports - Serial
Supported by G30 port 3, CP-30/MC-31 ports 2 and 3 and MC-30 ports 1 to 3. The following information
applies to Option - S, I and F serial ports. When the port is edited, the following settings are available:


Type: (RS232 [default], RS422 or RS485) RS232
- serial communications with RTS-CTS control.
RS422 - serial communications used for multiple
RTUs connected to a four-wire highway. RS485 -
serial communications used for multiple RTUs
connected to a two-wire highway. Option - F serial
ports always use RS232.
Bits per second: (9600, 19200, 38400, 57600
[default], 115200) The speed at which the RTU
will send or receive messages.
Protocols: (Tick to enable) A protocol already
added to the RTU can be enabled on the port.
Only one protocol can be enabled.

Pre-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS
are transmitted for before data is sent. Typically
set to zero for PSTN modems or 10 ms for RS485
and RS422.
Post-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS
are transmitted for after the data has been sent.
Typically set to zero for PSTN modems or 0 to 10
ms for RS485 and RS422.
Quiet time (milliseconds): (0 [default] -65000)
The minimum amount of quiet time (no received
messages) for the port that the RTU will wait
before sending a message. Messages to be
relayed using the same port will be delayed by
this amount of time before being forwarded.

Enable external modem support: (Tick to
enable) When enabled, allows an external PSTN
modem to be connected to the serial port. Modem
settings can then be configured as for a Dialup
port as detailed below. Not applicable to Option F
- Fibre Serial ports.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 39

Ports - Dialup
The Dialup option board is supported by CP-30/MC-30/MC-31 ports 2 and 3. For external PSTN modems,
please see the topic Ports Serial above. When the dialup port is edited, the following settings are available:


Bits per second: (9600, 19200, 38400, 57600,
115200) The speed at which the RTU will send or
receive messages. When using a PSTN modem
to dial a paging service, se to 9600 if
experiencing problems connecting reliably.
Data Bits: (5, 6, 7, 8 [default]) Number of data
bits used for each character in the message.
Parity: (None [default], Even, Odd)
Stop Bits: (1[default], 2) Number of stops bits
used after each character in the message.
Protocols: (Tick to enable) A protocol already
added to the RTU can be enabled on the port.
Only one protocol can be enabled.

Pre-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS
are transmitted for before data is sent. Typically
set to zero for PSTN modems.
Post-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS
are transmitted for after the data has been sent.
Typically set to zero for PSTN modems.
Quiet time (milliseconds): (0 [default] -65000)
The minimum amount of quiet time (no received
messages) for the port that the RTU will wait
before sending a message. Messages to be
relayed using the same port will be delayed by
this amount of time before being forwarded.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 40




Initialisation string: (default string:
AT&FTE0V0S0=2&W) These characters are sent
to the modem to initialise it after startup, after
disconnection and if a dial attempt fails. Note: for
dial option boards X3 can be added to the default
string if the modem is unable to recognize the dial
tone or is experiencing problems establishing a
connection ie: AT&FTE0V0S0=2X3&W
Dial timeout (seconds): (0-10000) The time
from when dialing begins that is waited to receive
carrier detect (carrier detect occurs a short time
after the receiving modem has answered). When
dialing a GSM, the Dial Timeout should be set to
at least 45 seconds.
Inactivity timeout (seconds): (0-10000) The
RTU will hang up after this amount of time has
elapsed since the last message received. A value
of 0 disables the function.
Hangup timeout (seconds): (0-10000) The RTU
will hang up after this amount of time has elapsed
after connection or after sending the last
message. A value of 0 disables this function.

Remaining Online
To remain online after connection, set Inactivity timeout to 0 and Hangup 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.

Dialing A Paging Service
If experiencing problems, error correction may need to be disabled by including '\N0' ie.
AT&FE0V0S0=2\N0&W. If experiencing problems when using an MC module and a Dial option board, the
baudrate may need to be limited to 9600 by including F8 in the initialisation string ie. AT&FE0V0S0=2F8&W.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 41

Ports - Line
Line-2 option boards are supported by CP-30/MC-30/MC-31 ports 2 and 3 and G30 port 3. When the port is
edited, the following settings are available:


Bits per second: (1200) The Line 2/4 option board
always operates at 1200 bps.
Protocols: (Tick to enable) A protocol already
added to the RTU can be enabled on the port. Only
one protocol can be enabled.

Pre-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS are
transmitted for before data is sent. Analog radios
typically require a Pre-Transmission delay of 300
ms while private lines use 50 to 100 ms.
Post-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS are
transmitted for after the data has been sent. Analog
radios typically require a Post-Transmission delay of
100 ms while 50 ms is used for private lines.
Quiet time (milliseconds): (0 [default] -65000) The
minimum amount of quiet time (no received
messages) for the port that the RTU will wait before
sending a message. Messages to be relayed using
the same port will be delayed by this amount of time
before being forwarded.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 42

Ports - HART
HART option boards are currently supported by CP-30/MC-30/MC-31 ports 2 and 3 and G30 port 3. When
the port is edited, the following settings are available:


Bits per second: (1200) The HART option board
always operates at 1200 bps.
Protocols: The HART protocol is automatically
added and enabled when the HART option board is
added to the RTU. The HART protocol can be
removed by removing the port from the RTU
configuration.

Pre-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS are
transmitted for before data is sent. Set to 10 ms or
greater to suit the particular HART device.
Post-Transmission delay (milliseconds): (0
[default] -65000) How long the carrier and RTS are
transmitted for after the data has been sent. Set to
15ms or greater to suit the particular HART device.
Quiet time (milliseconds): (0 [default] -65000) The
minimum amount of quiet time (no received
messages) for the port that the RTU will wait before
sending a message. Messages to be relayed using
the same port will be delayed by this amount of time
before being forwarded.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 43


Ports - Spread Spectrum Radio
Spread Spectrum radio option boards are currently supported by CP-30/MC-30/MC-31 ports 2 and 3. There
are three Spread Spectrum radio option boards available: R2 for Australia, R3 for International [low power]
and R4 for the USA. When the port is edited, the following settings are available:


Bits per second: (9600 or 19200) The R2 and R4
Spread Spectrum Radio option boards operate at
9600 bps. The R3 option board operates at 19200
bps.
Protocols: (Tick to enable) A protocol already
added to the RTU can be enabled on the port. Only
one protocol can be enabled.

Pre-Transmission delay (milliseconds): (0
[default] -65000) How long to transmit the carrier
and RTS for before data is sent.
Post-Transmission delay (milliseconds): (0
[default] -65000) How long to transmit the carrier
and RTS for after data has been sent.
Quiet time (milliseconds): (0 [default] -65000) The
minimum amount of quiet time (no received
messages) for the port that the RTU will wait before
sending a message. Messages to be relayed using
the same port will be delayed by this amount of time
before being forwarded.

Point to point mode: (Point to Point or Point to
Multipoint)
Vendor ID: (0-65535, default=13106) Sets the ID
number of the Spread Spectrum radio. All radios on
the same network need to have the same Vendor ID
in order to communicate with each other. It is
recommended that Vendor ID be changed to avoid
interference with other radio networks.
Destination address: (0-65535, default=65535)
Sets the Destination address of the Spread
Spectrum radio. All radios on the same network
need to have the same Destination Address in order
to communicate with each other. It is recommended
that Destination Address be changed to avoid
interference with other radio networks.
Hopping pattern: (0-6, default=0) Sets the Hopping
pattern of the Spread Spectrum radio. All radios on
the same network need to have the same Hopping
pattern to enable them to communicate. To
minimise interference from another RTU using a
spread spectrum radio, a hopping channel number
that is different to the offending radio should be
used.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 44

Ports - USB
Only applicable to G30. A G30 has one fixed USB port that can be used to connect a USB storage device.
The G30 is then able to store images on the USB storage device. The images can be accessed using DNP3
File Transfer or by manually connecting the USB storage device to a PC.


Use External USB Storage if Available: (Tick to
enable) When enabled, the G30 will regularly check
if a USB storage device is connected to the USB
port. If present, images [if available] will then be
saved to the storage device.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 45


RTU Configuration - Routes
Routes tell the local RTU how to communicate with other remote RTUs or devices in the network. Routes
only need to be configured for remote RTUs that the local RTU initiates messages to. If an unsolicited
message is received from a remote RTU, the new Route will be automatically added to the RTUs working
configuration.


Add, Remove or Edit Route
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)
Select the Routes Tab
Select the Add button to add a route OR select an existing route in the list
and then select the Edit or Remove button

The following settings are available when adding or editing a route.


Target RTU: (0-65520) The address of the
destination RTU to communicate with.
System ID: (00 to FF Hex, default=AE) This is
the communications sync character used at the
start of outgoing Kingfisher messages. An RTU
will only respond to Kingfisher messages that
begin with the same System ID as the RTU's own
System ID (as configured in the RTU Properties).
It is recommended that AE be used for all
Kingfisher PLUS+ RTUs except when relaying
radio messages as detailed in the topic below
Routes - Relaying Radio Messages. System ID is
not used by other protocols.
Route: (Direct or Indirect) Direct means the RTU
is directly connected to the target RTU (eg. via a
private line or radio link). Indirect means the RTU
must communicate via one or more other
intermediate RTUs to access the target RTU.
When an RTU receives a message that is not for
itself, it will forward the message to the target
RTU if it has a route configured for that target
RTU.
Port / Via RTU: For a Direct connection, this is the local port number to be used to communicate with the
target RTU. For an Indirect connection, this is the directly connected RTU address via which the message
must next be sent to reach the target RTU.
IP Address: The IP (internet protocol) address of the target RTU. A valid IP address may be obtained from
the network administrator. Each number in the IP address can have values in the range of 0-255.
Protocols: The protocol to use when communicating with the directly connected RTU. Protocols must first
be added to the RTU configuration and enabled on the port before they can be used on a route (please see
the topic RTU Configuration - Protocols).

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 46



Timeout: (0-1,000,000 milliseconds [1000
milliseconds = 1 second]) The time that an RTU
will wait for a reply to its first message. If Retries
(see below) is set to 1 or greater and a reply is
not received, the RTU will send the message
again after the timeout has expired.
Retries: (0-999) The number of times the RTU
will retry sending a message to the target RTU if
the previous attempts have failed. The maximum
number of attempts is one more than the Retries
setting. Eg if Retries is 3, the RTU will have up to
4 attempts at sending a message. Note: when
dialing an RTU, the RTU will dial the primary
phone number up to Retries+1 times and then will
dial the Secondary phone number up to Retries+1
times until the PSTN modem successfully
connects or all the dial retries have failed.
Enable DNP3 Secure Authentication: (Tick to
enable). Use this option when the local RTU is a
DNP3 Master and is communicating with a DNP3
Slave that uses security. When enabled, an
Update key can be entered.
Session key timeout (0-99999 minutes): The
Update key is used to create an initial session
key. The session key is automatically changed
each Session Key Timeout interval to protect
against replay attacks.
Authentication reply timeout (2-600 seconds):
How long to wait for a reply to the initial
authentication message.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 47

Example Network

RTU1 can communicate directly with RTUs 2 and 3. RTU3 can also communicate directly with RTU4. RTU1
can communicate indirectly with RTU4 by RTU3 acting as a store-and-forward RTU (it stores the incoming
message and then forwards it to the next RTU). Note: indirect routes can have more than one store-and-
forward RTU.


Master
RTU1
RTU2 RTU3 RTU4
CP-30
Port 2
Direct Route
Indirect Route
CP-30
Port 2
CP-30
Port 2
CP-30
Port 3


The routes for the above network are shown below.

RTU1 Routes


RTU2 Routes

RTU3 Routes

RTU4 Routes


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 48


Routes - Relaying Radio Messages
For the radio system below, RTU1 communicates with RTU3 by sending a message to RTU2. RTU2 then
forwards the message to RTU3. Due to the radio setup, it is sometimes possible for RTU3 to receive the
indirect message that is sent to RTU2. This can cause communication fails since RTU3 will respond to the
message at the same time RTU2 is attempting to forward the message.

To 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 and should not be used.


Target RTU System ID Route
RTU1
RTU3
RTU2
System ID=A1
System ID=A2
System ID=AE
Target RTU System ID Route
Port 4
Target RTU System I D Route
1 AE Indirect via RTU 2
Port 5
Port 6
Weak radio signal
Strong radio signal
Strong radio signal
2 A1 Direct via Port 6
2 A1 Direct via Port 4
3 A2 Indirect via RTU 2
1 AE Direct via Port 5
3 A2 Direct via Port 5


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 49

RTU Configuration - Phone
If the local RTU uses a PSTN port to communicate with a remote RTU, the phone number configured here
for that remote RTU address will be automatically dialed by the local RTU.


Add, Remove or Edit Phone Number
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)
Select the Phone tab
Select the Add button to add a phone number OR select an existing phone
number in the list and then select the Edit or Remove button

The following settings are available when adding or editing a phone number.


Target RTU: (0-65520) The address of the destination
RTU to dial.
Primary phone number: The initial phone number to
dial. If connection fails, the RTU will dial the Primary
phone number again up to Retries more times (as
configured for the port). Spaces used in the phone
number will be ignored by the modem.
Secondary phone number: The backup phone
number to dial if the Primary phone number fails. If
connection fails, the RTU will dial the Secondary
phone number up to Retries more times. Spaces used
in the phone number will be ignored by the modem.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 50


RTU Configuration - Programs
One or more programs can be added to the RTU to provide logical intelligence. When editing a program,
Toolbox PLUS launches the ISaGRAF
TM
Workbench editor. Programs or function blocks can also be
imported from other RTU configurations or projects.


Add, Remove or Edit Program
Select the RTU name in the navigation pane
Select Edit, Properties (or double-click the RTU name)
Select the Programs Tab
Select the Add button to add or import a program OR select a program in the
list and then select the Edit or Remove button to edit or remove a program




Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 51

Programs can be added in the following IEC 61131 Languages:
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.
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.
Ladder Diagram (LD) is a graphic representation of Boolean equations, combining Contacts (input
arguments) with Coils (output results). The LD language enables the description of tests and
modifications of Boolean data by placing graphic symbols into the program chart. LD graphic symbols
are organized within the chart exactly as an electric Contact diagram. LD diagrams are connected on the
left side and on the right side to vertical Power Rails. Please see the topic ISaGRAF
TM
Logic Examples
for Ladder Diagram examples.
Sequential Function Chart (SFC) is a graphic language used to describe sequential operations. The
process is represented as a set of well defined Steps, linked by Transitions. A Boolean Condition is
attached to each Transition. A set of Actions are attached to each Step. For programs, Conditions and
Actions are detailed using three other languages: ST, IL, or LD. For function blocks, Conditions and
Actions are detailed using only two other languages: ST or LD. From Conditions and Actions, any
Function or Function Block in any language can be called.
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.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 52


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 (as detailed in the topic RTU Configuration - Add Modules).


Edit Module (CP-30) or Card (G30) Properties
Select the module or card in the workspace
Select Edit, Properties (or double-click the module or card in the workspace)
Select the Configuration or Ports tab


The following modules and cards have configurable properties: PS-11/21, CP-30/MC-31, MC-30, AI-1/4, AI-
10, DO-1/2/5/6, IO-2/3/4, DI-10, G30, MX-2, MX-3, MX-4, PSO.


CP-30/MC-31 Properties

Port 1 of a CP-30/MC-31 is an Ethernet port.
Up to 2 option ports can also be added, removed
or edited (please see RTU Configuration - Ports
for more information)


MC-30 Properties

Port 1 of an MC-30 is a serial port.
Up to 2 option ports can also be added, removed
or edited (please see RTU Configuration - Ports
for more information)


PS-11/21 Properties

Battery Type: (Generic, Sealed Lead-Acid or
NiCad) The battery type to be charged by the
power supply. The PS-11/21 has intelligent
battery charging that is varied according to the
battery type.
Battery: (6, 7, 10, 12, 17, 18 or 25 AH) The size
of the battery to charge.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 53

AI-1/4 Properties

Scan Rate: (1 to 10 seconds, default=8 seconds)
How often to scan all the analog input channels.


AI-10 Properties

Channel 1-8: (None, 4-20 mA, 0-20 mA [default],
+/- 10V, 40mA; +/- 5V, 20mA and +/- 2.5V, 10mA)
The current or voltage input range for that
channel. Each channel can be configured
individually.
When None' is selected the default 0-20 mA
range is used by the AI-10 module for that
channel.
For the 0-20 mA or 4-20 mA ranges, the input will
return zero if the current is negative or below 0 or
4 mA respectively.
When using the +/- channel ranges, the AI-10
sets bit 16 of the analog input register if the
current is negative. If the input goes slightly
negative (when floating around 0%), the analog
input register will return a very large value (0 neg.
to -20mA =65535 to 32768 respectively). To
prevent unnecessary exception reports, bit 16
should be ignored.


DO-1/2/5/6, IO-2/3/4 Properties

Failsafe Outputs: (Tick to enable) If enabled and
there is no comms activity between the processor
and any module on the backplane for 10 seconds
the module assumes that the processor has
failed and sets the outputs OFF (open). If not
enabled (default), all digital outputs will hold their
last value. Note: failsafe outputs are not currently
implemented for the IO-4 module.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 54

DI-10 Properties

Channel Inversion: (Tick to enable each channel
or select Ch Inv button to enable all channels) By
default, when an input channel is energised, a
logical 1 is recorded in the input register and the
channel LED is set ON. If the channel is inverted,
when the input channel is energised, a logical 0
will be recorded in the input register and the
channel LED will be set OFF.
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.
Note: 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.
Debounce 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 Debounce
Filter time. Debounce 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). Note: 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.
Sequence-Of-Events Logs: The User Type (1-31) and Priority (0-7) 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.


G30 Properties

Port 1 of a G30 is an Ethernet port and port 2 is a
USB port.
One option port can also be added, removed or
edited (please see RTU Configuration - Ports for
more information)

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 55

IOD-MX2 Properties

Analog Inputs scan rate (ms): (4, 16, 20) How
often to scan all the analog inputs.
User type: (0-31) The number 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. Eg. 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.
Priority: (0-7) Allows separation of logs within
each User Type category.
Log Mode: (Freeze, Wrap). Freeze stops
generating new event logs when the buffer is full.
Wrap overwrites the oldest event logs when the
buffer is full.

Mode: (Normal, Frequency, Counter) How to treat
the input signal. Normal sets the input value to 0
or 1. Frequency counts the number of pulses per
second (Hz). Counter records the total number of
rising edges (or falling edges if Invert is enabled).
Debounce: (0- ms) The digital input value will not
update until the input channel has been at the
new state continuously for the Debounce time.
SoE: (Tick to enable) When enabled and Mode is
set to Normal, generates an event log whenever
the input value changes state.
Invert: (Tick to enable) By default, when the input
channel is energised, the value is set to 1. When
the input channel is energised and the channel is
inverted, the value is set to 0.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 56


Mode: (Normal, Frequency, Pulse) The output
channel mode. The output is set according to the
Value parameter of the channel variable. Eg.
SL01MX2DO1.value is the output value for MX2
DO Ch1. Normal sets the channel to open or
closed according to Value (0=open, >1=closed).
Frequency outputs a 50% duty cycle signal with a
frequency of Value Hz. Pulse outputs Value
pulses according to the configured Pulse On and
Pulse Off settings (as detailed below).
Pulse On / Pulse Off: [Only available when Mode
is set to Pulse] (0-16000 ms) The pulse On and
Off times to be used when outputting pulses in
Pulse mode.
Failsafe: (Tick to enable) If enabled and the IO
card loses communications with the G30, the
output will be set to the configured value (as
detailed below). If failsafe is not enabled (default),
the output will hold last state.
Value: (Tick=Closed [ON]) The output state to set
if failsafe is enabled and triggered.

Mode: (Current, Voltage)
Range: (0-20mA, 4-20mA, 0-5V, 1-5V) The
available range settings change according to the
Mode setting.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 57


IOD-MX3 Properties
The IOD-MX3 has the same configuration windows as the IOD-MX2. It also has an analog output
configuration window as shown below.

Mode: (Current, Voltage)
Range: (0-20mA, 4-20mA, 0-5V, 1-5V) The
available range settings change according to the
Mode setting.
Failsafe: (Tick to enable) If enabled and the IO
card loses communications with the G30, the
output will be set to the configured value (0-
100%). If failsafe is not enabled (default), the
output will hold last value.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 58


IOD-MX4 Properties

User type: (0-31) The number 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. Eg. 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.
Priority: (0-7) Allows separation of logs within
each User Type category.
Log Mode: (Freeze, Wrap). Freeze stops
generating new event logs when the buffer is full.
Wrap overwrites the oldest event logs when the
buffer is full.

Mode: (Normal, Frequency, Counter) How to treat
the input signal. Normal sets the input value to 0
or 1. Frequency counts the number of pulses per
second (Hz). Counter records the total number of
rising edges (or falling edges if Invert is enabled).
Debounce: (0- ms) The digital input value will not
update until the input channel has been at the
new state continuously for the Debounce time.
SoE: (Tick to enable) When enabled and Mode is
set to Normal, generates an event log whenever
the input value changes state.
Invert: (Tick to enable) By default, when the input
channel is energised, the value is set to 1. When
the input channel is energised and the channel is
inverted, the value is set to 0.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 59


Mode: (Normal, Frequency, Pulse) The output
channel mode. The output is set according to the
Value parameter of the channel variable. Eg.
SL01MX2DO1.value is the output value for MX2
Ch1. Normal sets the channel to open or closed
according to Value (0=open, >1=closed).
Frequency outputs a 50% duty cycle signal with a
frequency of Value Hz. Pulse outputs Value
pulses according to the configured Pulse On and
Pulse Off settings (as detailed below).
Pulse On / Pulse Off: [Only available when Mode
is set to Pulse] (0-16000 ms) The pulse On and
Off times to be used when outputting pulses in
Pulse mode.
Failsafe: (Tick to enable) If enabled and the IO
card loses communications with the G30, the
output will be set to the configured value (as
detailed below). If failsafe is not enabled (default),
the output will hold last state.
Value: (Tick=Closed [ON]) The output state to set
if failsafe is enabled and triggered.


PSO-ACR/DCU Properties

Battery Capacity: (7Ah, 10Ah, 12Ah, 17Ah,
18Ah, 25Ah) The size of the battery to charge.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 60


6. Dictionary

Topic Description
Variables Overview
New Variables How to create variables
Edit Variables How to configure settings for each variable

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 61

Dictionary - Variables

View RTU Variables
Select the RTU name in the navigation pane
Select Dictionary in the Wonder Bar


The RTU uses variables to store and access data and these are kept in the Dictionary. These variables are
also used by ISaGRAF
TM
Workbench logic programs (variables are called symbols in ISaGRAF
TM
).

As IO modules are added to an RTU, Toolbox PLUS automatically adds variables to the dictionary for all the
data that is available from that IO module.

Dictionary variables are downloaded along with the logic programs (even if there are no logic programs).

New variables can be created and existing variables can be edited.

System variables can be added to the dictionary to allow access to internal RTU data. Please see the
appendix RTU Data for details.

An example Dictionary view for an RTU with various types of variables is shown below.




Filter
The dictionary can be filtered so that only variables that contain the characters specified in the filter are
displayed. A blank filter will display all the variables. Alternatively, variables starting with the characters
entered in the Filter box will be displayed when the Filter button is selected. Note: the Filter can be cleared
by selecting the Clear button and then selecting the Filter button again.

Sort
All the variables are alphabetically and numerically sorted when Name, Type, Description or Initial Value is
clicked. To sort the variable groups select the grey arrow on the left side of Name.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 62

Dictionary - New Variables

New Variable
Select the RTU name in the navigation pane
Select Dictionary in the Wonder Bar
Select the New button (located above the variable list)
To create a range of variables, select the Multiple tab

After adding a variable to the dictionary, variable settings can be edited as detailed in the next topic.


Dictionary - Single Variables
This window allows a single variable to be created. To create a range of variables please see the next topic.


Name: (1-127 * characters) The variable name.
Variable names must start with a letter.
Only the first 16 characters of variable names are
event logged.
Variable names can contain the letters a to z or A
to Z (lower or upper case), the digits 0 to 9 or the
underscore character _. Variable names cannot
contain spaces.
Variables starting with the underscore character
are reserved for use by Semaphore and
ISaGRAF
TM
.
Egs: Pump5_Running - OK name.
Pump#5 Running - Bad name. Variable names
cannot use the hash (#) character or spaces.
Note: reserved ISaGRAF
TM
keywords cannot be
used as variable names (please see Appendix
ISaGRAF
TM
- Reserved Variable Names for a
complete list).
When an Kingfisher, Modbus or DNP3 variable is
created, it will be displayed with the corresponding
symbol ( , or respectively). User variables
that are not recognized by Toolbox PLUS are
displayed with the symbol.
Group: (Analog Inputs, Analog Outputs, Digital Inputs, Digital Outputs, DNP Variables, General, Kingfisher
Registers, Modbus Variables, user defined) The name of the Dictionary group to display the variable in.
To create a new group name, select the button.
Initial Value: (Blank or number or text contained within single quotes) If specified, this is the initial value
used by the logic program after the configuration is first downloaded, after a restart or after a power reset.
The value of a variable can be saved during a restart by enabling Retain variable across system restarts
(please see below). The format of values that can be used for each variable type is detailed in the ISaGRAF
help.
Type: The data type of the variable. ISaGRAF
TM
supports a wide range of data types as detailed in the topic
ISaGRAF Variable Types.
Comment: (0-128 characters) Description of the variable.
Retain variable value across system restarts: (Tick to enable) when enabled, the variables last known
value is saved and restored after a restart. The last known value will not be saved and restored if there is a
power reset. After a power reset, the variables Initial Value will be used.
* Some SCADA programs only support variable names up to 16 characters. Limiting Toolbox PLUS variables to 16
characters allows easy integration of the Toolbox PLUS database into these SCADA programs.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 63


Dictionary - Multiple Variables

A range of variables can be created by selecting the Multiple tab (available when creating a new variable).
The following parameters can be specified:


Format: (Free, DNP, Modbus, Kingfisher). If
DNP, Modbus or Kingfisher is selected, the
variable Prefix will be set to DNP, MOD or KF
respectively and the Data type will be
automatically configured for each variable Type.
Prefix: The beginning characters of the variable
names Eg. KF. Can only be configured if Format
is set to Free.
Group: (Analog Inputs, Analog Outputs, Digital
Inputs, Digital Outputs, DNP Variables, General,
Kingfisher Registers or Modbus Variables) The
name of the Dictionary group to display the
variable in. To create a new group, select the
button.
RTU Address: (1-65520) The source of the
variables. Use the local RTU address to create
variables for use by the local RTU. Use the
address of a remote RTU to create variables for
data received from that remote RTU.
Type: The characters to insert between the RTU
address and the register number.
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).
Kingfisher Types: R (Local Register), N (Network
Register) and F (Floating Point Register)
Register Range: The register numbers to use for
the variables.
Data Type: The data type of the variable.
Example: ISaGRAF
TM
supports a wide range of
data types as detailed in the topic ISaGRAF
Variable Types.
The Description at the bottom of the window
shows the range of variables that will be created
when OK is selected.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 64


Dictionary - Edit Variables

Edit Variable
Select the RTU name in the navigation pane
Select the Dictionary wonder bar
Double-click on the variable to be edit (or right-click,
select Edit)


DNP and Modbus variables have settings that can be edited as detailed below.



Dictionary - Modbus Variables

Name: (1-127 characters) Modbus variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: (0-65535) The initial value used by
the logic program.
Type: (BOOL, DINT) The variable type. Type can
be changed if the variable Name is changed (ie.
to another Modbus variable type).
Comment: (0-128 characters) Variable
description.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.

Map to I/O channel: (No Mapping [default] or I/O
channel) If the I/O channel is an output, the
Modbus variable is mapped to the I/O channel. If
the I/O channel is an input, the I/O channel is
mapped to the Modbus variable.
Note: An I/O channel can only be mapped to one
variable. When an I/O channel is mapped to a
Modbus Variable, the Type of the Modbus
Variable is updated to that of the I/O channel. The
I/O channel variable is also removed from the I/O
channel group.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 65



Dictionary - DNP Variables
Settings can be configured for DNP3 Binary Inputs, Binary Outputs, Binary Counters, Analog Inputs and
Analog Outputs as detailed below. IO channels can be mapped to DNP3 objects by configuring the Map to
I/O Channel parameter for each object (as detailed below).

Note: DNP3 events are created when data changes. DNP3 events can also be created periodically (even if it
hasnt changed) by using the Event Log function block.


DNP3 Binary Input Settings

Name: (1-127 characters) DNP3 variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: (Tick to enable) The initial value
used by the logic program. When enabled sets
initial value to 1. When disabled, sets initial value
to 0.
Type: (IOPOINT_B)
Comment: (0-128 characters) Variable
description.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 66


Class: (None, 1, 2, 3) Data class of the DNP3
object.
Default static variation:
Single bit binary input (variation 1)
Binary input with status (variation 2)
Default event variation: [Only available when
Class is set to 1, 2 or 3]
Binary input change without time (variation 1)
Binary input change with time (variation 2)
Binary input change with relative time (variation 3)
Map to I/O channel: (No Mapping [default] or
digital input channel [if available]) When selected,
maps the digital input channel to the DNP3
variable. Note: An I/O channel can only be
mapped to one variable. When mapped, the I/O
channel variable is removed from the I/O channel
group.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 67

DNP3 Binary Output Settings

Name: (1-127 characters) DNP3 variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: (Tick to enable) The initial value
used by the logic program. When enabled sets
initial value to 1. When disabled, sets initial value
to 0.
Type: (IOPOINT_B)
Comment: (0-128 characters) Variable
description.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.

Class: (None, 1, 2, 3) Data class of the DNP3
variable.
Default static variation:
Binary output (variation 1)
Binary Output status (variation 2)
Default event variation: [Only available when
Class is set to 1, 2 or 3]
Binary output change without time (variation 1)
Binary output change with time (variation 2)
Control Actions: (Tick to enable)
Map to I/O channel: (No Mapping [default] or
digital output channel [if available]) When
selected, maps the value of the DNP3 Variable to
the digital output channel. Note: An I/O channel
can only be mapped to one variable. When
mapped, the I/O channel variable is removed from
the I/O channel group.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 68

DNP3 Binary Counter Settings

Name: (1-127 characters) DNP3 variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: (0-65535) The initial value used by
the logic program.
Type: (IOPOINT_D) Provides a 32-bit integer
counter.
Comment: (0-128 characters) Variable
description.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.


Map to I/O channel: (No Mapping [default] or counter
channel [if available]) When selected, maps the counter
channel to the DNP3 Variable. Note: An I/O counter
variable can only be mapped to one DNP3 variable. When
mapped, an I/O counter variable is removed from the I/O
counter variable group.
Class: (None, 1, 2, 3) Data class of the DNP3
object.
Frozen class: (None, 1, 2, 3)
Default static variation:
32-bit binary counter (variation 1),
16-bit binary counter (variation 2),
32-bit counter without flag (variation 5)
16-bit counter without flag (variation 6)
Default frozen static variation:
32-bit frozen counter (variation 1),
16-bit frozen counter (variation 2),
32-bit frozen counter with time of freeze
(variation 5), 16-bit frozen counter with time of
freeze (variation 6), 32-bit frozen counter without
flag (variation 9) or 16-bit frozen counter without
flag (variation 10)
Default event variation: [Only available when
Class is set to 1, 2 or 3] 32-bit frozen counter
change event without time (variation 1), 16-bit
frozen counter change event without time
(variation 2), 32-bit frozen counter change event
with time (variation 5) or 16-bit frozen counter
change event with time (variation 6)
Default frozen event variation: [Only available
when Frozen Class is set to 1, 2 or 3] 32-bit
frozen counter change event without time
(variation 1), 16-bit frozen counter change event
without time (variation 2), 32-bit frozen counter
change event with time (variation 5) or 16-bit
frozen counter change event with time (variation
6)
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 69

DNP3 Analog Input Settings

Name: (1-127 characters) DNP3 variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: The initial value used by the logic
program.
Type: (IOPOINT_D, IOPOINT_R) IOPOINT_D
Provides a 32-bit integer. IOPOINT_R provides a
32-bit real.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.

Map to I/O channel: (No Mapping [default] or analog input
channel [if available]) When selected, maps the value of
the analog input channel to the DNP3 Variable. Note: An
I/O channel can only be mapped to one variable. When
mapped, the I/O channel variable is removed from the I/O
channel group.
Class: (None, 1, 2, 3) Data class of the DNP3
object.
Default static variation:
32-bit analog input (variation 1), 16-bit analog
input (variation 2), 32-bit analog input without flag
(variation 3), 16-bit analog input without flag
(variation 4).
Default event variation: [Only available when
Class is set to 1, 2 or 3]
32-bit analog change event without time
(variation 1),
16-bit analog change event without time
(variation 2),
32-bit analog change event with time (variation 3),
16-bit analog change event with time (variation 4)
Deadband %: (0-100 [default=10]) Generates an
event when the input changes by this setting or
greater.
High Limit %: (0-100 [default=100]) Highest
value allowed for this variable. Higher settings are
ignored and the value is limited to this setpoint.
Either a percentage value or a raw value can be
specified (please see the Advanced tab).
Low Limit %: (0-100 [default=0]) Lowest value
allowed for this variable. Lower settings are
ignored and the value is limited to this setpoint.
Either a percentage value or a raw value can be
specified (please see the Advanced tab).

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 70


Use raw values for analog input parameters:
(Tick to enable) When enabled uses raw values
for Deadband, High Limit and Low Limit as
specified. When disabled, uses percentage
values (percentage of total raw range).

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 71

DNP3 Analog Output Settings

Name: (1-127 characters) DNP3 variable name.
Group: The name of the Dictionary group to
display the variable in. To create a new group
name, select the button.
Initial Value: The initial value used by the logic
program.
Type: (IOPOINT_D, IOPOINT_R) IOPOINT_D
Provides a 32-bit integer. IOPOINT_R provides a
32-bit real.
Retain variable across system restarts: (Tick to
enable) When enabled, preserves the variable
value when the RTU is restarted.
Comment: (0-128 characters) Variable
description.

Class: (None, 1, 2, 3) Data class of the DNP3
object.
Default static variation:
32-bit analog output status (variation 1)
16-bit analog output status (variation 2)
Default event variation: [Only available when
Class is set to 1, 2 or 3]
32-bit analog output event without time (variation
1)
16-bit analog output event without time (variation
2)
32-bit analog output event with time (variation 3)
16-bit analog output event with time (variation 4)
Map to I/O channel: (No Mapping [default] or
analog output channel [if available]) When
selected, maps the DNP3 variable to the analog
output channel. Note: An I/O channel can only be
mapped to one variable. When mapped, the I/O
channel variable is removed from the I/O channel
group.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 72


7. ISaGRAF
TM


Topic Description
Overview Overview of ISaGRAF
Editing Tips How to create and edit ISaGRAF logic
Variable Types A list of the variable data types supported by ISaGRAF
Defined Words Parameters that can be used instead of constants for function block parameters
Custom Function
Blocks
RTU specific function blocks created for use with ISaGRAF
Logic Examples ISaGRAF Ladder Diagram examples

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 73

ISaGRAF
TM
- Overview

ISaGRAF
TM
provides the logic processing for each RTU. ISaGRAF
TM
allows logic
to be created in any of the international IEC 61131 control languages.
The ISaGRAF
TM
editor is called Workbench and is launched whenever a logic
program is edited from Toolbox PLUS (as illustrated below).
ISaGRAF uses function blocks to implement special functions. Custom function
blocks have been developed for use with Kingfisher RTUs as detailed in this
chapter. Logic examples are also detailed below.





Licensing
To learn about ISaGRAF
TM
licensing please review the help provided with the ISaGRAF
TM
Licensing
Manager (Program is labeled Licensing ISaGRAF 5).

ISaGRAF
TM
provides licensing information by using a USB key attached to a local or network PC.

ISaGRAF
TM
5.0 or later is run by all CP-30/G30 Kingfisher PLUS+ RTUs. More Information about
ISaGRAF
TM
can be found at www.isagraf.com.


Manuals
ISaGRAF Getting Started.pdf - Includes ISaGRAF
TM
Overview, details about ISaGRAF
TM
demos and
licensing.

ISaGRAF workbench_i.pdf - Explains all the features of the ISaGRAF
TM
editor - Workbench. This
information is also available in the ISaGRAF
TM
Workbench online help.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 74

ISaGRAF
TM
- Editing Tips
Logic is processed from top to bottom, left to right.
An coil (digital output) can be put in any column but must be the last block on the rung.
To insert a contact (digital input), click one of the following buttons
The type of contact can be changed by selecting the contact and then pressing the SPACE bar or by
clicking the following button
To insert a function block, click one of the following buttons
To view the entire function block, the ISaGRAF
TM
grid may need to be expanded by clicking
Function block parameters are configured by double-clicking outside the function block, next to the
parameter.
Constants, Defined Words or Variables can be used for function block parameters. Variables must
have the same data type as the function block parameter.
Note: it is possible to use a function block name as a parameter of a function block. This will create
unpredictable results and should be avoided.
A single bit of a variable can be referenced by using the format VariableName.i where i is a constant
0 to 7 (8 bit variable) or 0 to15 (16 bit variable) or 0 to 31 (32 bit variable) or 0 to 63 (64 bit variable).
Example: SL04IO3AI1.value.15 refers to the 16th bit of a slot 4, IO-3 module, analog Input channel 1.
Values for function block STRING parameters are specified in single quotation marks. Example: 5:1
New variables can be added to the dictionary from within ISaGRAF
TM
. Click to open the
dictionary.
A program can be checked while ISaGRAF
TM
is running by clicking the Build button . ISaGRAF
TM

will report 0 errors and 0 warnings when the program is OK. If there are errors (as shown below),
double-click on the error in the Output window and ISaGRAF will highlight where the error has
occurred.

Toolbox PLUS is locked while ISaGRAF
TM
is running. To continue using Toolbox PLUS, ISaGRAF
TM

must first be shut down.
To view the state or value of all variables while viewing logic and connected to the target RTU, select
the Debug button . When viewing a project in debug mode, output parameters may be displayed
with ??? instead of values if no variables or fixed constants are assigned to function block
parameters.
Some custom function blocks have an error output (ERR). Any function blocks that are connected to
an Error output will only be processed if there is an error. For example, the function block on the right
will only be processed if the function block on the left has an error.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 75


Both function blocks will be processed if they are configured in parallel as shown below.

More examples of ISaGRAF logic (ladder diagrams) are detailed below.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 76

ISaGRAF
TM
- Variable Types
The following IEC 61131 variable types and custom data structures are supported by ISaGRAF
TM
.

Type Description Data Range
BOOL Logic (true or false) value 1 = True, 0 = False
SINT Short integer continuous value (8-bit) -128 to +127
USINT Unsigned short integer continuous value (8-bit) 0 to 255
BYTE Byte value (8-bit) 0 to 255
INT Single integer continuous value (16-bit) -32768 to 32767
UINT Unsigned single integer continuous value (16-bit) 0 to 65535
INT_ARRAY An array of 32 INT variables used for Kingfisher
messages
Each variable: 1 to 2048
Binary IO data structure with four parameters
Value (BOOL)
Timestamp (TIMESTRUC please see below)
Flags (USINT)
IOPOINT_B
Datatype (USINT)

Double Integer data structure with four parameters
Value (DINT)
Timestamp (TIMESTRUC please see below)
Flags (USINT)
IOPOINT_D
Datatype (USINT)

Real data structure with four parameters
Value (REAL)
Timestamp (TIMESTRUC please see below)
Flags (USINT)
IOPOINT_R
Datatype (USINT)

WORD Word value (16-bit) 0 to 65535
DINT Double integer continuous value (32-bit) -2,147,483,648 to
+2,147,483,647
UDINT Unsigned double integer continuous value (32-bit) 0 to 4,294,967,295
DWORD Double word value (32-bit) 0 to 4,294,967,295
LINT Long integer continuous value (64-bit) -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807
ULINT Unsigned long integer continuous value (64-bit) 0 to 18,446,744,073,709,551,615
LWORD Long word value (64-bit) 0 to 18,446,744,073,709,551,615
REAL Real (floating) continuous value (32-bit). A real variable
has six significant digits.
3.4E-37 to 3.4E+37
LREAL Long real (floating) continuous value (64-bit). A long
real variable has 15 significant digits.
1.7E -308 to 1.7E +308
TIME Time values (32-bit). Stored as a positive number of
milliseconds.
0 to 4,294,967,294 ms
(1193h2m47s294ms)
DATE Date values (32-bit). Positive number of seconds since
1970-01-01 at midnight GMT.
Can store dates in the range 1970-01-01 to 2038-01-18
0 to 4,294,967,294 s
STRING Character string having a defined size, representing the
maximum number of characters the string can contain.
String capacity is limited to 255 characters excluding
the terminating null character (0).
Up to 255 characters in single
quotation marks. Example: DI1
TIMESTRUC Time with two parameters: number of seconds since
01/01/1970, 00:00:00 (a DINT) and number of
milliseconds after the last second recorded (an INT)



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 77

ISaGRAF
TM
- Defined Words
The following Defined Words can be used instead of constants for function block parameters.

Defined Word Value For Use With Function Block

DNP_AUTO_NONE 0
DNP_AUTO_OPERATE 1
DNP_AUTO_FEEDBACK 2
DNP Master Analog Command
DNP Master Binary Command
DNP_FC_SELECT 3
DNP_FC_OPERATE 4
DNP_FC_DIRECT 5
DNP Master Analog Command
DNP Master Binary Command
DNP_CLASS_0 1
DNP_CLASS_1 2
DNP_CLASS_2 4
DNP_CLASS_3 8
DNP Slave Unsolicited Enable / Disable
DNP Master Unsolicited Enable / Disable
DNP Master Class Poll
DNP_CTRL_PULSE_ON 1
DNP_CTRL_PULSE_OFF 2
DNP_CTRL_LATCH_ON 3
DNP_CTRL_LATCH_OFF 4
DNP Master Binary Command
PROTOCOL_AB 18
PROTOCOL_DNP3 8
PROTOCOL_HART 19
PROTOCOL_KINGFISHER 1
PROTOCOL_MODBUS_ASCII 14
PROTOCOL_MODBUS_RTU 15
PROTOCOL_MODBUS_TCP 16
PROTOCOL_SNMPC 12
Kingfisher Get / Clear Pending Flag
Kingfisher Get / Set Route
ROUTE_DIRECT 0
ROUTE_INDIRECT 1
Kingfisher Set Route

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 78

ISaGRAF
TM
- Custom Function Blocks
Protocols and special functions have been implemented using custom ISaGRAF
TM
function blocks as
detailed below.

Function Blocks Description
Kingfisher Messages Kingfisher messages that transfer data between RTUs
RTU System Data
RTU system information eg. RTU Address, firmware build number, time,
communications statistics and parameters
Event Logging Manage local and remote event logs. Includes event log transfer messages.
Allen Bradley DF1 serial communications with an SLC500 PLC
DNP3 Distributed Network Protocol messages
HART HART messages
Modbus Modbus messages
SNMP Simple Network Management Protocol messages
User Defined Allows a serial protocol to be developed in an ISaGRAF
TM
program
Maths Mathematical operations eg. increment, decrement
AGA American Gas Association standard calculations
Bit Set, Clear or Test a bit
Image Allows images to be captured from a network camera

Function Block output parameters are displayed on the right-hand side of the function block and are shown
underlined in the following sections.

Please see the topic ISaGRAF Logic Examples for examples on how to use some of the above function
blocks.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 79


Function Blocks - Kingfisher Messages
Tx Data, Rx Data, Network Tx Data, Network Rx Data, Rx Update Single, Get Variable and Set Variable
messages are detailed below.


Tx Data


Sends up to 32 Kingfisher Local Register variables to a remote RTU.

RTU (UINT): (1-65520) The address of the RTU to send data to. Can be
entered as a constant in ISaGRAF
TM
.
REG (INT_ARRAY): An array of 32 variables. The Initial Value set in
each variable (1-2048) is used to specify the Kingfisher Local Register
Variables to send to the remote RTU. The array variables must be
configured consecutively starting from the first array variable. Example:

NBR (USINT): The number of registers to send (1-32). Can be entered
as a constant in ISaGRAF
TM
.
ERR (DINT): Error status of the function block (0=all parameters within
range, -34=one or more parameters is out of range)

Please see the topic ISaGRAF - Logic Examples Exception Reporting Digitals, Sending The Exception
Report for an example.


Rx Data

Polls up to 32 local registers from a remote RTU and stores them in the
corresponding Kingfisher Network Register Variables.

RTU (UINT): (1-65520) The address of the remote RTU to poll the data
from. Can be entered as a constant in ISaGRAF
TM
.
REG (INT_ARRAY): An array of 32 variables. The Initial Value set in
each variable (1-2048) is used to specify the Local Register Variable to
poll from the remote RTU. The array variables must be configured
consecutively starting from the first array variable. Example:

NBR (USINT): Number of registers to receive. Can be entered as a
constant in ISaGRAF
TM
.
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)

Please see the topic ISaGRAF - Logic Examples Polling for an example.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 80

Network Tx Data

Sends up to 25 Kingfisher Network Register Variables to a remote RTU.

RTU (UINT): (1-65520) The address of the remote RTU to send network
register variables to.
REG (INT_ARRAY) An array of variables. The Initial Values set in the
REG array, specify the numbers (1-2048) of the Network Register
Variables to send to the remote RTU. The array variables must be
configured consecutively starting from the first array variable.
NRTU (INT_ARRAY): An array of variables. The Initial Values set in the
NRTU array, specify the network address (1-65520) of each Network
Variable number specified in REG above respectively. The array
variables must be configured consecutively starting from the first array
variable.
Example: To Send KF5N1, KF5N2, KF5N3, KF8N1 and KF8N101
the following REG (NetRegNumbers) and NRTU
(NetRegAddress) array variables are configured as follows:


NBR (USINT): (1-25) The number of Network Register variables to send.
ERR (DINT): Error status of the function block (0=all parameters within
range, -34=one or more parameters is out of range)


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 81

Network Rx Data

Polls up to 25 Kingfisher Network Register Variables from a remote
RTU.

RTU (UINT): (1-65520) The address of the remote RTU to poll network
registers or variables from.
REG (INT_ARRAY) An array of variables. The Initial Values set in the
REG array, specify the numbers (1-2048) of the Network Register
Variables to poll from the remote RTU. The array variables must be
configured consecutively starting from the first array variable.
NRTU (INT_ARRAY): An array of variables. The Initial Values set in the
NRTU array, specify the network address (1-65520) of each Network
Variable number specified in REG above respectively. The array
variables must be configured consecutively starting from the first array
variable.
Example: To poll KF5N1, KF5N2, KF5N3, KF8N1 and KF8N101
the following REG (NetRegNumbers) and NRTU
(NetRegAddress) array variables are configured as follows:


NBR (USINT): (1-25) The number of network registers to poll.
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 82

Rx Update Single

Retrieves data and event logs from a remote RTU. This block is useful
for copying event logs from a sub-master to a master RTU. The Rx
Update Single block ignores the source of the event logs in the sub-
master RTU and copies all the logs from the sub-master RTU to the
master RTU.

RTU (UINT): Remote RTU address (1-65520) to get data and event logs
from.
REG (STRING): Control register (16 characters). The channels can be
configured as follows:
Ch1: [LSB] Real-time Data Flag. If this channel is set ON, real-time
data will be polled from the specified RTU. Channel 1 is NOT reset
after a successful data update.
Ch2: Event Logs Flag. If this channel is set ON, event logs will be
polled from the specified RTU that match the specified Priority and
User Type.
Ch5: Status Flag (set by Rx Update Single block). Indicates the
success/failure status of the RX Update. Channel 5 is written to after
polling of the RTU has finished. Channel 5 is set OFF if the update is
completed successfully or is set ON if the update has failed.
MAX (UINT): Maximum number of event logs to receive
PRI (EVENT_FILTER): Priority (0-7) of event logs to receive
UTYP (EVENT_FILTER): User Type (1-31) of event logs to receive
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Get Variable

Retrieves the value of a variable from a remote RTU and stores it in a
local variable of the same data type.

RTU (UINT): Target RTU address
TYP (USINT): Data type of variable to get. 1=USINT, 2=SINT, 3=UINT,
4=INT, 5=UDINT, 6=DINT, 7=REAL, 9=STRING, 10=DATE, 11=TIME.
NAM (STRING): Name of variable to get (16 character)
DEST (STRING): Name of variable to write to (16 character)
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Set Variable

Sets the value of a variable in a remote RTU.

RTU (UINT): Destination RTU address
TYP (USINT): Data type of variable to set. 1=USINT, 2=SINT, 3=UINT,
4=INT, 5=UDINT, 6=DINT, 7=REAL, 9=STRING, 10=DATE, 11=TIME
NAM (STRING): Name of variable to set (16 character)
VAL (DATA_TYPE): Value to set
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 83

Function Blocks - RTU System Data
General, module, clock and communications functions are detailed below.



Get System ID

Returns the system identifier of the local Kingfisher RTU (equivalent to
the #YSYSID available from non-ISaGRAF
TM
RTUs).

ID (INT): System ID of local RTU (0-255, default=174 [AE Hex])


Get Firmware

Returns the firmware revision of the firmware installed in the Kingfisher
RTU (equivalent to #YFIRMW available from Non-ISaGRAF
TM
Kingfisher
RTUs).

NBR (UDINT): Firmware build number


Get Address

Returns the RTU address of the local Kingfisher RTU (equivalent to
#YADDRESS available from Non-ISaGRAF
TM
Kingfisher RTUs).

RTU (UINT): Address of local RTU (1-65520)

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 84


Get RTU Type

Returns the processor type of the local Kingfisher RTU (equivalent to
#YRTUTYPE available from Non-ISaGRAF
TM
Kingfisher RTUs).

TYPE (USINT): Processor type of the local RTU (1-255). 1=CP-30.


Get Module Type

Returns the module type installed in the specified slot of the Kingfisher
RTU (equivalent to #YMTYPEss and #YPMODss available from
Non-ISaGRAF
TM
Kingfisher RTUs).

SLOT (UINT): Slot number of the module (1-64)
TYPE (UINT): Module type (1-255). 1= AI-1/AI-4, 2= AO-2, 6=DI-5,
7=DO-1, 8=DO-2/DO-5, 9=DI-10, 11=IO-2, 12=IO-3, 14=IO-4, 15=AO-3,
19=AI-10, 31=PS-11/PS-21, 48=MC-30, 60=CP-30, 255=No module
installed


Get Module OK

Compares module detected on the RTUs backplane with the module
configured in the RTUs configuration.

SLOT (UINT): Slot number (1-64). The slot number of the module to
compare with the RTUs configuration.
ERR (BOOL): Error status of function block. Set TRUE when there is an
error detecting the module or when comparing the detected module with
the module defined within the RTUs configuration.
STAT (BOOL): Module status. Set TRUE when the module matches the
RTUs configuration.


Get Processor

Returns the backplane slot number of the active CP-30 processor.
Useful when using redundant processors.

SLOT (UINT): Slot number (1-64). The slot number of the active CP-30
processor.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 85


Get Real Time Clock

Returns the RTUs time as the number of seconds since 1970/01/01
00:00:00.

SEC (DINT): Number of seconds since 1970/01/01 00:00:00
(-2,147,483,648 to +2,147,483,647)

Set Real Time Clock

Sets the RTUs time as the number of seconds since 1970/01/01
00:00:00.

SEC (DINT): Number of seconds since 1970/01/01 00:00:00
(-2,147,483,648 to +2,147,483,647)

Get Time

Returns each parameter of the RTUs time and date as a separate
variable.

SEC (DINT): Current second (0-59)
MIN (DINT): Current minute (0-59)
HOUR (DINT): Current hour (0-23). 0=12 AM (midnight), 23=11 PM
DAY (DINT): Day of the month (1-31)
MON (DINT): Month of the year (1-12)
YEAR (DINT): Current year since 1900 (0-170). Eg. 1=1901, 104=2004
WDAY (DINT): Day of the week (1-7). 1=Sunday, 7=Saturday

Set Time

Sets each parameter of the RTUs time and date using separate
variables.

SEC (DINT): Current second (0-59)
MIN (DINT): Current minute (0-59)
HOUR (DINT): Current hour (0-23). 0=12 AM (midnight), 23=11 PM
DAY (DINT): Day of the month (1-31)
MON (DINT): Month of the year (1-12)
YEAR (DINT): Current year since 1900 (0-170). Eg. 1=1901, 104=2004
WDAY (DINT): Day of the week (1-7). 1=Sunday, 7=Saturday
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 86


Get Communications Statistics

Returns the number of message successes and fails to/from a remote
RTU. Message successes or fails are automatically counted for each
remote RTU that the local RTU communicates with or receives
messages from.

ADDR (UINT): The address (0-65535) of the remote RTU to return
communication statistics for. When ADDR is set to zero, returns the total
number of successes and fails for all RTUs.
ERR (BOOL): Error status. Set TRUE when there is an error returning
the requested communication statistics or if there has been no
communications with the remote RTU.
TXS (UDINT): Number of messages successfully transmitted to the
remote RTU or to every RTU (if ADDR is set to zero). This does not
indicate that the message has been successfully received by the remote
RTU.
TXE (UDINT): Number of messages that failed to be transmitted to the
remote RTU or to every RTU (if ADDR is set to zero).
RXS (UDINT): Number of messages successfully received from the
remote RTU or from every RTU (if ADDR is set to zero).
RXE (UDINT): Number of messages that have not received a valid reply
within the timeout period from the remote RTU or from every RTU (if
ADDR is set to zero).

Reset Communications Statistics

Allows global or specific communication statistics to be reset.

ADDR (UINT): The address (0-65535) of the remote RTU to reset
communication statistics for. When ADDR is set to zero, resets
successes and fails for all (global) remote RTUs.
ERR (BOOL): Error status. Set TRUE when there is an error resetting
the requested communication statistic.


Get Port Statistics

Returns the communication statistics of a local RTU port.

PORT (STRING): The local port to return statistics for. Specified as
slot:port where slot = 0 to 64 and port = 1 to 3. The Port setting must
be entered in single quotation marks. Egs: 5:1, 0:3. Note: zero can be
used for the slot number to refer to the local processor. The top port on a
processor or communications module is port 1.
ERR (BOOL): Error status. Set TRUE when there is an error returning
the statistics for the specified port.
TXS (UDINT): Transmit successes.
TXE (UDINT): Transmit errors.
RXS (UDINT): Receive successes.
RXE (UDINT): Receive errors.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 87

Reset Port Statistics

Resets the communication statistics of a local RTU port.

PORT (STRING): The local port to reset statistics for. Specified as
slot:port where slot = 0 to 64 and port = 1 to 3. The Port setting must
be entered in single quotation marks. Egs: 5:1, 0:3. Note: zero can be
used for the slot number to refer to the local processor. The top port on a
processor or communications module is port 1.
ERR (BOOL): Error status. Set TRUE when there is an error resetting
the statistics for the specified port.

Get Pending Flag

Returns whether a message is still pending (waiting for a reply) to a
remote RTU, for a particular protocol or globally for the local RTU. A
message is pending until a reply is received or until all the retries have
timed out.

ADDR (UINT): The address (0-65535) of the remote RTU to check if a
message is pending. When ADDR is set to zero, checks if a message is
pending to any remote RTU for the protocol specified below.
PROT (USINT): The protocol to check for message pending. When
PROT is set to zero, all protocols are checked. The following defined
words may be used:
PROTOCOL_AB (Allen-Bradley DF1)
PROTOCOL_DNP3 (DNP3)
PROTOCOL_HART (HART)
PROTOCOL_KINGFISHER (Kingfisher)
PROTOCOL_MODBUS_ASCII (Modbus ASCII)
PROTOCOL_MODBUS_RTU (Modbus RTU)
PROTOCOL_MODBUS_TCP (Modbus TCP)
PROTOCOL_SNMPC (SNMP Client)
ERR (BOOL): Error status. Set TRUE when there is an error determining
the pending status for the specified remote RTU and protocol.
PEND (BOOL): Message pending status. Set TRUE when a message is
pending (waiting for a reply) for the specified remote RTU and protocol.


Clear Pending Flag

Clears a message pending flag (waiting for a reply) for a remote RTU

ADDR (UINT): The address (0-65535) of the remote RTU to clear the
message pending flag for. When ADDR is set to zero, clears all
message pending flags for the protocol specified below.
PROT (USINT): The protocol to clear the message pending flag for.
When PROT is set to zero, flags are cleared for all protocols for the
address specified above. The following defined words may be used:
PROTOCOL_AB (Allen-Bradley DF1)
PROTOCOL_DNP3 (DNP3)
PROTOCOL_HART (HART)
PROTOCOL_KINGFISHER (Kingfisher)
PROTOCOL_MODBUS_ASCII (Modbus ASCII)
PROTOCOL_MODBUS_RTU (Modbus RTU)
PROTOCOL_MODBUS_TCP (Modbus TCP)
PROTOCOL_SNMPC (SNMP Client)
ERR (BOOL): Error status. Set TRUE when there is an error clearing the
pending flag for the specified remote RTU and protocol.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 88


Get Route

Returns information for a communication route. Both the device address
and protocol used to communicate with that device must be specified.
A route is configured using Toolbox PLUS or dynamically created by a
protocol.

DEV (UINT): The address (1-65535) of the remote device for which
route information is to be returned.
PROT (USINT): The protocol for which route information is to be
returned. The following defined words may be used:
PROTOCOL_AB (Allen-Bradley DF1)
PROTOCOL_DNP3 (DNP3)
PROTOCOL_HART (HART)
PROTOCOL_KINGFISHER (Kingfisher)
PROTOCOL_MODBUS_ASCII (Modbus ASCII)
PROTOCOL_MODBUS_RTU (Modbus RTU)
PROTOCOL_MODBUS_TCP (Modbus TCP)
PROTOCOL_SNMPC (SNMP Client)
ERR (BOOL): Error status. Set TRUE when there is an error in one or
more of the input parameters (DEV or PROT) or when failing to return
the route information for the specified address and protocol.
TYPE (DINT): The route type (0 = direct or 1 = indirect). Returns a
number that corresponds to one of the following defined words:
ROUTE_DIRECT or ROUTE_INDIRECT.
PORT (STRING): The RTU port used to communicate with the specified
device. Port returns x:y where x = slot 0 to 64 and y = port 1 to 3. If
x=0, the port is on the CP-30/G30 processor. If x=1 to 64, the port is on
an MC-30/31 module in slot x. Port only returns a value for direct routes.
ADDR (STRING): The IP address of the remote device. ADDR only
returns a value for direct routes over an Ethernet or IP network.
VIA (UINT): The intermediate device address (1-65535). VIA only
returns a value for indirect routes.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 89

Set Route

Allows existing communication routes to be modified. Both the device
address and protocol used to communicate with that device must be
specified.
A route is configured using Toolbox PLUS or dynamically created by a
protocol. Note: this function block does not allow new routes to be
created.

DEV (UINT): The address (1-65535) of the remote device for which local
route information is to be modified.
PROT (USINT): The protocol for which route information is to be
modified. The following defined words may be used:
PROTOCOL_AB (Allen-Bradley DF1)
PROTOCOL_DNP3 (DNP3)
PROTOCOL_HART (HART)
PROTOCOL_KINGFISHER (Kingfisher)
PROTOCOL_MODBUS_ASCII (Modbus ASCII)
PROTOCOL_MODBUS_RTU (Modbus RTU)
PROTOCOL_MODBUS_TCP (Modbus TCP)
PROTOCOL_SNMPC (SNMP Client)
TYPE (DINT): The new route type (0 = direct or 1 = indirect). The
following defined words may be used: ROUTE_DIRECT or
ROUTE_INDIRECT
PORT (STRING): The new RTU port to be used to communicate with
the specified device. Specified as x:y where x = slot 0 to 64 and y =
port 1 to 3. If x=0, the port is on the CP-30/G30 processor. If x=1 to 64,
the port is on an MC-30/31 module in slot x. PORT only applies to direct
routes. The Port setting must be entered in single quotation marks. Egs:
5:1, 0:3.
ADDR (STRING): The new IP address of the remote device. ADDR only
applies to direct routes over an Ethernet or IP network.
VIA (UINT): The new intermediate device address (1-65535). VIA only
applies to indirect routes.
ERR (BOOL): Error status. Set TRUE when there is an error in one or
more of the input parameters or when failing to modify the route
information for the specified address and protocol.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 90


Function Blocks - Event Logging
Event Log, Clear Event Logs, Get Event Log Count, Tx Event Logs and Rx Event Logs are detailed below.


Event Log

Logs the data value or state of a variable along with other information.
Note: Kingfisher data variables are logged accurate to one second.
By default DNP3 event logs are created for DNP3 variables in the
dictionary when the data changes. This function can be used to create
additional logs by logging DNP3 variables even when they havent
changed (eg. periodically).

REG (STRING): A string variable or string (16 characters max). If using
a string variable, the Initial Value parameter of the string variable is
configured with the name of the data variable to log in single quotation
marks. Alternatively, the name of the data variable to log can be directly
entered in single quotation marks. Examples: SL05IO3DI1.value
DNPAI3
UTYP (USINT): User Type (0-31). Used to label similar types of logs or
to set the event variation (1 to 4) for DNP3 variables. Event logs of a
single type can then be uploaded from the RTU as required. Note: if
UTYP is set to 0 when logging DNP3 variables, event variation 1 will be
used.
PRI (USINT): Priority (0-7) Allows separation of logs within each User
Type category. 0 is used for the highest priority logs. For DNP3, PRI can
be set to 1, 2 or 3 which corresponds to class 1, 2 or 3 data respectively.
DTYP (USINT): The data type of the variable to be event logged.
1=BOOL/USINT/BYTE, 2=SINT, 3=UINT/WORD, 4=INT,
5=UDINT/DWORD, 6=DINT, 7=REAL, 9=STRING, 10=IOPOINT_B [for
digital inputs], 11=IOPOINT_D [for analog inputs and counters],
12=IOPOINT_R [for floats]. For DNP3, use data types 10, 11 or 12 to
correspond to the variables data type.
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)

Please see ISaGRAF Logic Examples for an example.


Clear Event Logs

Clears all the event logs in the local or remote RTU.

RTU (UINT): RTU address (0-65520). The RTU to clear the event logs
in. When '0' is specified, the event logs are cleared in the local RTU
itself. If a non-zero address is specified, a Clear Event Logs message is
initiated to clear the logs in the remote RTU.
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 91

Get Event Log Count

Counts the number of event logs in the local or remote RTU.

RTU (UINT): RTU address (0-65520). The RTU to obtain the event log
count from. When '0' is specified, the event logs are counted in the local
RTU itself. If a non-zero address is specified, a Get Event Log Count
message is initiated to get the log count from the remote RTU.
DES (STRING): Destination variable to store the event log count in (16
characters)
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Tx Event Logs

Sends event logs to the destination RTU.

RTU (UINT): Destination RTU address to send event logs to (1-65520).
EPTR (STRING): Event log pointer (16 character). A local variable that
points to the next log to send. Note: this variable should not be used by
any other part of the logic program as it is automatically updated by the
RTU after each Tx Event Logs block.
STAT (STRING): Status register (16 character).
Ch1: [LSB] is set ON when the newest log has been sent. Set OFF
when the newest log has not been sent by the Tx Event Logs block.
Note: this flag is only updated each time the Tx Logs block is
processed.
NBR (UINT): Number of event logs to send.
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range).


Rx Event Logs

Retrieves event logs that occurred over a specific time period from a
remote RTU. It will keep polling event logs until it has received the
maximum limit of logs or until the end of the event log list is reached.

RTU (UINT): Remote RTU address to receive event logs from (1-65520).
STAT (STRING): Status register (16 character)
Ch1: [LSB] Pending Flag. This bit is set ON when the block is
activated and then set OFF after the block has finished.
Ch2: Status Flag. This bit is updated after the block has finished.
The status flag is set OFF if the block was successful or set ON if
the block failed (eg. communications failure).
TIME (UDINT): Start time of the first event log to receive (minutes before
now).
PRD (UDINT): The time period of event logs to receive (minutes).
MAX (UINT): Maximum number of event logs to receive.
FRTU (UINT): RTU filter. If enabled, only event logs that match the filter
settings below are retrieved.
PRI (EVENT_FILTER): Priority (0-7)
UTYP (EVENT_FILTER) User Type (1-31)
ERR (DINT): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 92

Function Blocks - Allen Bradley

Tx Allen Bradley

Transmits up to 100 consecutive Kingfisher Local Register Variables to
an SLC500 Allen Bradley PLC.
ADDR (DINT): The station address (1-249) configured in the Allen
Bradley PLC. An Allen Bradley PLC is treated like another RTU in the
network. This means that the station address must be different to all the
other addresses in the RTU's Route list.
PLC (BYTE): PLC type (0 or 1). Not currently used.
SRC (DINT): First Kingfisher local register variable (1-2048) to read the
data from.
NUM (BYTE): Number of Kingfisher local register variables to send (1-
100).
DEST (STRING): Destination address in the Allen Bradley PLC where
data is stored. This should be a string reference like N10:1 (single
quotes are required)
ERR (BYTE): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)


Rx Allen Bradley

Receives an error code and up to 100 consecutive registers from an
SLC500 Allen Bradley PLC.
ADDR (DINT): The station address (1-249) configured in the Allen
Bradley PLC. An Allen Bradley PLC is treated like another RTU in the
network. This means that the station address must be different to all the
other addresses in the RTU's Route list.
PLC (BYTE): PLC type (0 or 1). Not currently used.
NUM (BYTE): Number of registers to read (1-100).
SRC (STRING): Source address in the Allen Bradley PLC where data is
read from. This should be a string reference like N10:1 (single quotes
are required).
DEST (DINT): First Kingfisher Local Register Variable (1-2048) in the
Kingfisher RTU to begin storing the error code and the data from. The
first local register variable contains the STS error code in the lower 8
bits, and the EXT STS error code in the higher 8 bits. A successful
message will reset the error code to 0. Data values are stored in the
second local register variable onwards. A value can be written in the first
local register variable before the Rx Allen Bradley message is triggered.
If the message is successful, the first local register variable will be
cleared.
ERR (BYTE): Error status of function block (0=all parameters within
range, -34=one or more parameters is out of range)

Please see ISaGRAF Logic Examples for an example.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 93


Function Blocks - DNP3
Master functions: Analog Command, Binary Command, Class Poll, Read Group, Clear Restart, Cold
Restart, Freeze Counters, Unsolicited Reporting Enable / Disable and Warm Restart are detailed below.

Slave functions: clock sync and unsolicited reporting enable / disable are detailed below.


Master Analog 16-Bit Command

Sets 16-bit analog values in the DNP Slave device.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
FC (UCHAR): DNP3 Function code (3 to 5 or Defined Word). 3 = Select,
4 = Operate and 5 = Direct. The defined words DNP_FC_SELECT,
DNP_FC_OPERATE and DNP_FC_DIRECT can be used.
AUTO (UCHAR): Automation mode (0 to 2 or Defined Word).The
following function codes are supported: 0 = None, 1 = Operate and 2 =
Feedback. The defined words DNP_AUTO_NONE,
DNP_AUTO_OPERATE and DNP_AUTO_FEEDBACK can be used.
OPER (UINT32): Operate delay (0 to 4,294,967,295 ms) between
SELECT and OPERATE.
PNT (UINT16_t): DNP3 analog point number (0-65535).
VAL (UINT16): Value to be transmitted.


Master Analog 32-Bit Command

Sets 32-bit analog values in the DNP Slave device.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
FC (UCHAR): DNP3 Function code (3 to 5 or Defined Word). 3 = Select,
4 = Operate and 5 = Direct. The defined words DNP_FC_SELECT,
DNP_FC_OPERATE and DNP_FC_DIRECT can be used.
AUTO (UCHAR): Automation mode (0 to 2 or Defined Word).The
following function codes are supported: 0 = None, 1 = Operate and 2 =
Feedback. The defined words DNP_AUTO_NONE,
DNP_AUTO_OPERATE and DNP_AUTO_FEEDBACK can be used.
OPER (UINT32): Operate delay (0 to 4,294,967,295 ms) between
SELECT and OPERATE.
PNT (UINT16_t): DNP3 analog point number (0-65535).
VAL (UINT32): Value to be transmitted.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 94

Master Analog Float Command

Sets float analog values in the DNP Slave device.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
FC (UCHAR): DNP3 Function code (3 to 5 or Defined Word). 3 = Select,
4 = Operate and 5 = Direct. The defined words DNP_FC_SELECT,
DNP_FC_OPERATE and DNP_FC_DIRECT can be used.
AUTO (UCHAR): Automation mode (0 to 2 or Defined Word).The
following function codes are supported: 0 = None, 1 = Operate and 2 =
Feedback. The defined words DNP_AUTO_NONE,
DNP_AUTO_OPERATE and DNP_AUTO_FEEDBACK can be used.
OPER (UINT32): Operate delay (0 to 4,294,967,295 ms) between
SELECT and OPERATE.
PNT (UINT16_t): DNP3 analog point number (0-65535).
VAL (float): Value to be transmitted.


Master Binary Command

Sets Digital values in the DNP Slave device.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
FC (UCHAR): DNP3 Function code (3 to 5 or Defined Word). 3 = Select,
4 = Operate and 5 = Direct. The defined words DNP_FC_SELECT,
DNP_FC_OPERATE and DNP_FC_DIRECT can be used.
AUTO (UCHAR): Automation mode (0 to 2 or Defined Word).The
following function codes are supported: 0 = None, 1 = Operate and 2 =
Feedback. The defined words DNP_AUTO_NONE,
DNP_AUTO_OPERATE and DNP_AUTO_FEEDBACK can be used.
OPER (UDINT): Automation delay (0 to 4,294,967,295 ms) between
SELECT and OPERATE.
PNT (UINT16_t): DNP3 digital point number (0-65535).
CTRL (UCHAR): DNP3 binary control (1 to 4 or Defined Word). 1 =
Pulse ON, 2 = Pulse OFF, 3 = Latch ON and 4 = Latch OFF. The
defined words DNP_CTRL_PULSE_ON, DNP_CTRL_PULSE_OFF,
DNP_CTRL_LATCH_ON and DNP_CTRL_LATCH_OFF can be used.
ON (UINT32): Pulse ON time (0 to 4,294,967,295 ms).
OFF (UINT32): Pulse OFF time (0 to 4,294,967,295 ms).


Master Class Poll

Polls a remote DNP3 device for one class of data (eg. class 0). Object
data will be stored in the local RTU if DNP3 variables have been created
in the Dictionary.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
MASK (UCHAR): The DNP3 event class to poll (2 = Class 1, 4 = Class
2, 8 = Class 3 or Defined Word). The defined words DNP_CLASS_1,
DNP_CLASS_2 or DNP_CLASS_3 can be used.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 95

Master Read Group

Polls a remote DNP3 device for one type of data (eg. Binary Inputs).
Object data will be stored in the local RTU if DNP3 variables have been
created in the Dictionary.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
GRP (BYTE): The data group type to poll. Possible settings:
Binary Input Group = 1
Binary Output Group = 10
Binary Counter Group = 20
Frozen Counter Group = 21
Analog Input Group = 30
Analog Output Group = 40
ERR (UINT) Error status of function block. 0=All parameters within
range, non zero=one or more parameters out of range or invalid.


Master Clear Restart

Commands a slave device to clear a Restart.
ADDR (UINT): Address of the remote DNP3 device (0-65535).


Master Cold Restart

Commands a slave device to perform a Cold Restart.
ADDR (UINT): Address of the remote DNP3 device (0-65535).



Master Freeze Counters

Freezes the counters in a slave device. Additionally it allows the
counters to be cleared after being frozen.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
CLR (BOOL): Clear counters after freeze (0 = dont clear counters or 1 =
clear counters).


Master Unsolicited Enable

Commands a slave device to enable Unsolicited requests.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
MASK (UCHAR): The DNP3 event class (2 = Class 1, 4 = Class 2, 8 =
Class 3 or Defined Word) for which unsolicited reporting is to be
enabled. The defined words DNP_CLASS_1, DNP_CLASS_2 or
DNP_CLASS_3 can be used.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 96

Master Unsolicited Disable

Commands a slave device to disable Unsolicited requests.
ADDR (UINT): Address of the remote DNP3 device (0-65535).
MASK (UCHAR): The DNP3 event class (2 = Class 1, 4 = Class 2, 8 =
Class 3 or Defined Word) for which unsolicited reporting is to be
disabled. The defined words DNP_CLASS_1, DNP_CLASS_2 or
DNP_CLASS_3 can be used.


Master Warm Restart

Commands a slave device to perform a Warm Restart.
ADDR (UINT): Address of the remote DNP3 device (0-65535).



Slave Need Time

Sets the Time Synchronisation Required flag (bit 4) within the Internal
Indication (IIN) parameter in the local RTU requesting a clock
synchronisation. When the master device next polls the local RTU, the
master device will then synchronise the clock of the local RTU.


Slave Unsolicited Enable

Enables unsolicited reporting by the local RTU of class 1, 2 or 3 data in
response to point value changes and control actions.
MASK (USINT): The DNP3 event class (2 = Class 1, 4 = Class 2, 8 =
Class 3 or Defined Word) for which unsolicited reporting is to be
enabled. The defined words DNP_CLASS_1, DNP_CLASS_2 or
DNP_CLASS_3 can be used.


Slave Unsolicited Disable

Disables unsolicited reporting by the local RTU of class 1, 2 or 3 data in
response to point value changes and control actions.
MASK (USINT): The DNP3 event class (2 = Class 1, 4 = Class 2, 8 =
Class 3 or Defined Word) for which unsolicited reporting is to be
disabled. The defined words DNP_CLASS_1, DNP_CLASS_2 or
DNP_CLASS_3 can be used.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 97

Function Blocks - HART

Allows messages to be initiated to a HART device when using a HART
option board. The function block is based on Revision 5 of the Hart
protocol.
HART data retrieved is stored in DINT and REAL Kingfisher variables
(variables must begin with KF) using an RTU address assigned for the
HART data. The address used to store the HART data does not need to
be the same as the address of the HART device.
It is recommended that at least ten 10 DINT and 10 REAL variables be
created in the dictionary for use by the HART function block. Eg. if
address 7 is assigned to store the HART data, the DINT variables would
be: KF7R1 to KF7R10 and the REAL variables would be KF7F1 to
KF7F10.
DEV (UINT): The HART device address (0-15). Address 0 is only used
for point to point installations.
CMD (UINT): The HART command (or function code) to perform (0-108).
Note: PV = primary variable.
Universal Commands: Read Unique Identifier (0), Read PV (1), Read Current
and % of range (2), Read Current and 4 dyn vars (3), Write Polling Address (6),
Read Unique Identifier with Tag (11), Read Message (12), Read Tag, Descriptor,
Date (13), Read PV Sensor Information (14), Read [PV] Output Information (15),
Read Final Assembly Number (16), Write Message (17), Write
Tag/Descriptor/Date (18), Write Final Assembly Number (19).
Common Practice Commands: Read Transmitter Variables (33), Write [PV]
Damping Value (34), Write [PV] Range Values (35), Set [PV] Upper Range
Value (36), Set [PV] Lower Range Value (37), Reset Configuration Changed
Flag (38), EEPROM Control (39), Enter/Exit Fixed Current Mode (40), Perform
Transmitter Self Test (41), Perform Master Reset (42), Set PV Zero (43), Write
PV Units (44), Trim [PV Current] DAC Zeros (45), Trim [PV Current] DAC Gain
(46), Write [PV] Transfer Function (47), Read Additional Transmitter Status (48),
Write PC Sensor Serial Number (49), Read Dynamic Variable Assignments (50),
Write Dynamic Variable Assignments (51), Set Transmitter Variable Zero (52),
Write Transmitter Variable Units (53), Read Transmitter Variable Info (54), Write
Transmitter Variable Damping Value (55), Write Transmitter Variable Sensor
Serial No (56), Read All Dynamic Variables (108).
RTU (UINT): The RTU address (1-255) to use for the HART data. All
source and destination data will be stored in the variables of this RTU.
Eg. if RTU=3, the variables KF3R<Register> (integer) or
KF3F<Register> (floating point) will be used.
EXT (UINT): (1-99999) The first of three consecutive variables to use for
the HART devices extended address (or Unique Identifier). The
extended address is a unique 38-bit number derived from the
manufacturer code, the device type code and the device identification
number. Eg. if EXT=5, the variables KF<RTU>R5, KF<RTU>R6,
KF<RTU>R7 will be used. Note: the Read Unique Identifier (0)
command will store the extended address in these variables.
SRC (UINT): (1-99999) The first variable to get data from for writing
commands. Depending on the type of data required, this may refer to
either integer or float registers, ie. KF<RTU>R<Register> or
KF<RTU>F<Register> respectively.
DREG (UINT): (1-99999) The first register to store data received from
the HART device. Depending on the type of data to store, this may refer
to either integer or float registers, ie. KF<RTU>R<Register> or
KF<RTU>F<Register> respectively.
SREG (UINT): (1-99999) The register to store the status and response
codes returned by the HART device.
STAT (DINT) Error status of function block (0=all parameters within
range, non zero=one or more parameters out of range).
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 98


Function Blocks - Modbus
The Modbus function block allows the RTU to initiate Modbus messages. If the RTU only needs to respond
to messages (ie. when operating as a Modbus Slave device) then the Modbus function block is not required.
For all communications, Modbus variables must already exist in the RTU. Modbus extended addressing is
supported.

Sends or retrieves 16-bit registers to/from a Modbus device. The data
received from a Modbus device is stored in variables corresponding to
the Modbus data. The data sent to a Modbus device is taken from the
local RTUs own Modbus variables (not from the variables corresponding
to the remote device).
ADDR (UINT): Remote Modbus device address (0-65535 [2 bytes]) to
send data to or retrieve data from. Note: Modbus only uses addresses 0-
255 [1 byte]. The RTU only uses the lower byte of the address when
sending a message. Device addresses that have the same lower byte
eg. 10 (00 0A hex) and 266 (01 0A Hex) cannot both be used for
Modbus messages. Incoming data is always stored in Modbus variables
corresponding to the remote devices 1-byte address (0-255).
FC (USINT): Function code.
01=Read Coils Modbus addresses 000,001 to 065,535
02=Read Discrete Inputs Modbus addresses 100,001 to 165,535
03=Read Holding Registers Modbus addresses 400,001 to 465,535
04=Read Input Registers Modbus addresses 300,001 to 365,535
05=Write Single Coil Modbus addresses 000,001 to 065,53
06=Write Single Register Modbus addresses 400,001 to 465,5355
15=Write Multiple Coils Modbus addresses 000,001 to 065,535
16=Write Multiple Registers Modbus addresses 400,001 to 465,535

SRC (UINT): The first source register or variable to get data from (1-
65535). Note: this is the variable number eg. 1 not the Modbus address
eg. 40001. When retrieving data, this is the first register to read from the
remote device. When sending data, this is the first variable of the local
RTU to send. Eg. if the local RTU is address 5, this is the first variable
beginning with MOD5.
DST (UINT): The first destination register or variable to store data in (1-
65535). Note: this is the variable number eg. 1 not the Modbus address
eg. 40001. When retrieving data, this is the first variable in the local RTU
to store the data in (these variables use the address of the remote
device). Eg. if the remote device is address 7, this is the first variable
beginning with MOD7 in the local RTU. When sending data, this is the
first register in the remote Modbus device to store the data in.
NUM (UINT): Number of consecutive coils, discrete inputs or registers to
send or retrieve (1-128). This parameter is not used for single read or
write commands but must still contain a valid setting eg. 1.
ERR (DINT): Error status of function block (0=all parameters within
range, non zero=one or more parameters out of range).

Please see ISaGRAF Ladder Examples for an example.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 99


Function Blocks - SNMP
Trap: Get Trap, Send Trap and RMS messages are detailed below.

Client (Master): Get Integer, Get Unsigned Integer, Get String, Get Object Identifier, Set Integer, Set
Unsigned Integer, Set String and Set Object Identifier messages are detailed below.


SNMP Get Trap

[Only applicable when using the SNMP Trap protocol]
Returns details about one trap message that was received.
When a trap message is received, details associated with the message
are stored in a FIFO (First In First Out) queue managed by the RTU. After
each function call, the details for the oldest message in the queue are
returned as function block outputs. The details for that message are then
removed from the queue.
ERR (INT): Status of the function block. 0=message details successfully
returned. Non-zero=error state (eg. no message details available).
COM (STRING): The community string specified in the trap message.
Note: there is no validation of the authenticity of this community string for
trap messages received.
IP (STRING): The IP address of the agent that sent the trap message.
OID (STRING): The object identifier associated with the trap message.
GTRP (UINT): The generic trap value of the trap message. The
permissible values for this parameter are defined in RFC document 1157,
A Simple Network Management Protocol (SNMP).
STRP (UINT): The specific trap value of the trap message. This value is
device specific.
TIME (UINT): The time stamp of the trap message.

SNMP Send Trap

[Only applicable when using the SNMP Trap protocol]
Sends a trap message to a remote device.
When generating this message, the IP address of the default Ethernet
port of the Kingfisher CP30 or G30 processor is used for the agent
address and the current time is used for the time stamp parameter of the
trap message.
ADDR (UINT): The address of the remote device to send the trap
message to.
COM (STRING): The community name specified in the trap message.
GTRP (UINT): The generic trap value to be used in the message. The
permissible values for this parameter are defined in RFC document 1157,
A Simple Network Management Protocol (SNMP).
STRP (UINT): The specific trap value to be used in the message. This
value is device specific.
OID (STRING): The object identifier.
VAL (INT): The value of the object.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 100

SNMP RMS Trap

[Only applicable when using the SNMP RMS Trap protocol]
Sends a RMS Systems SNMP trap message to a remote device.
SNMP RMS messages differ from SNMP_SEND_TRAP messages
(detailed above). SNMP RMS sends information for multiple object
identifiers defined in the RMS Systems MIB within a single SNMP trap
message. Object values can also be sent in the trap message.
ADDR (UINT): The address of the SNMP agent to send the message to.
COMM (STRING): The community name (64 characters max.) to be
used in the message.
SPEC (DINT): The specific RMS Systems message to send (101 to
111). These messages are defined as follows:
101: rtuAlarm Sent when a port goes into alarm
102: rtuARA Sent when a port goes into ARA
103: rtuHistoric Sent when a port goes into Historic
104: rtuNormal Sent when a port goes normal
105: rtuOutputActivated Sent when an output port is activated
106: rtuOutputDeactivated Sent when an output port is
deactivated;
107: rtuPowerFail Sent when power fails;
108: rtuLogFull Sent when a log reaches the specified alarm
threshold
109: rtuUnitConfigChange Sent when a unit setting has been
changed
110: rtuPortConfigChange Sent when a port setting has been
changed
111: rtuRuleFail Sent when the rules are enabled and they become
invalid (either through a rule change or some other change in the
RTU configuration)
PNAM (STRING): The port name (20 characters max.) associated with
the SNMP trap. This parameter is bound with the object identifier
1.3.6.1.4.1.4119.1.7.7.1 as the first variable of the message.
PCOD (STRING): The position code (20 characters max.) of the port
associated with the SNMP trap. This parameter is bound with the object
identifier 1.3.6.1.4.1.4119.1.7.7.2 as the second variable of the
message.
GCOD (STRING): The group code (20 characters max.) of the port associated with the SNMP trap. This
parameter is bound with the object identifier 1.3.6.1.4.1.4119.1.7.7.3 as the third variable of the message.
PNUM (DINT): The overall port number associated with the SNMP trap. This parameter is bound with the
object identifier 1.3.6.1.4.1.4119.1.7.7.4 as the fourth variable of the message.
PTYP (DINT): The port type (1 to 4) associated with the SNMP trap. This parameter is bound with the
object identifier 1.3.6.1.4.1.4119.1.7.7.5 as the fifth variable of the message. Valid settings are: digital (1),
analog (2), temperature (3) and virtual (4).
PTNM (DINT): The port type number of the port associated with the SNMP trap. This is the port number
within the given port type rather than the overall port number within the configuration. This parameter is
bound with the object identifier 1.3.6.1.4.1.4119.1.7.7.6 as the sixth variable of the message.
ALRM (DINT): The number of alarms on the given port. This parameter is bound with the object identifier
1.3.6.1.4.1.4119.1.7.7.7 as the seventh variable of the message.
ALMP (DINT): The alarm priority level of the port (1 = highest priority). This parameter is bound with the
object identifier 1.3.6.1.4.1.4119.1.7.7.8 as the eighth variable of the message.
ENUM (DINT): The external device number. This parameter is bound with the object identifier
1.3.6.1.4.1.4119.1.7.7.9 as the ninth variable of the message.
ESTR (STRING): The external device string (20 characters max.). This parameter is bound with the object
identifier 1.3.6.1.4.1.4119.1.7.7.10 as the tenth variable of the message.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 101

SNMP Get Integer

[Only applicable when using the SNMP Client protocol]
Retrieves the integer value of an object from a remote device.
For the OUT and STAT parameters, entering a number between 1 and
2048 causes the Value and Status retrieved from the remote device to be
stored in the corresponding local Kingfisher register. Alternatively, a
variable name can be used.
ADDR (UINT): The address of the remote device to retrieve the object
value from.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
OUT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the retrieved value in.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

SNMP Get Unsigned Integer

[Only applicable when using the SNMP Client protocol]
Retrieves the unsigned integer value of an object from a remote device.
For the OUT and STAT parameters, entering a number between 1 and
2048 causes the Value and Status retrieved from the remote device to be
stored in the corresponding local Kingfisher register. Alternatively, a
variable name can be used.
ADDR (UINT): The address of the remote device to retrieve the object
value from.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
OUT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the retrieved value in.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 102

SNMP Get String

[Only applicable when using the SNMP Client protocol]
Retrieves the string value of an object from a remote device.
For the STAT parameter, entering a number between 1 and 2048 causes
the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name can
be used.
ADDR (UINT): The address of the remote device to retrieve the object
value from.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
OUT (STRING): The variable name (1-255 characters) to store the
retrieved string value in.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

SNMP Get Object Identifier

[Only applicable when using the SNMP Client protocol]
Retrieves the identifier of an object from a remote device.
For the STAT parameter, entering a number between 1 and 2048 causes
the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name can
be used.
ADDR (UINT): The address of the remote device to retrieve the object
identifier from.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
OUT (STRING): The variable name to store the object identifier value in.
Value is returned in dotted numeric form eg. 1.3.6.1.2.1.1.2.0
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 103

SNMP Set Integer

[Only applicable when using the SNMP Client protocol]
Sets an integer value of an object in a remote device.
For the STAT parameter, entering a number between 1 and 2048 causes
the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name can
be used.
ADDR (UINT): The address of the remote device to set the object value
in.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
IN (DINT): The integer value to set.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

SNMP Set Unsigned Integer

[Only applicable when using the SNMP Client protocol]
Sets an unsigned integer value of an object in a remote device.
For the STAT parameter, entering a number between 1 and 2048 causes
the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name can
be used.
ADDR (UINT): The address of the remote device to set the object value
in.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
IN (UDINT): The unsigned integer value to set.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 104

SNMP Set String

[Only applicable when using the SNMP Client protocol]
Sets a string value of an object in a remote device.
For the STAT parameter, entering a number between 1 and 2048 causes
the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name can
be used.
ADDR (UINT): The address of the remote device to set the object value
in.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
IN (STRING): The string value to set.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values indicate
an error.

SNMP Set Object Identifier

[Only applicable when using the SNMP Client protocol]
Sets the identifier of an object in a remote device.
For the STAT parameter, entering a number between 1 and 2048
causes the Status retrieved from the remote device to be stored in the
corresponding local Kingfisher register. Alternatively, a variable name
can be used.
ADDR (UINT): The address of the remote device to set the object value
in.
NAME (STRING): The community name to be used in the message.
OBJ (STRING): The object identifier in the remote device.
IN (STRING): The object identifier value to set. The object identifier is
expected to be in the dotted numeric form (eg. 1.3.6.1.2.1.1.2.0). This
value is then converted to the ASN.1 encoded object identifier format
within the SNMP message.
STAT (STRING): The variable name (1-255 characters) or Kingfisher
register (1-2048) to store the result status in. All non-zero values
indicate an error.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 105

Function Blocks - User Defined
The following function blocks can be used in an ISaGRAF
TM
logic program. There are also ISaGRAF
TM

string functions that can be used to encode and decode protocol messages.


User Receive

Reads up to 255 bytes from a local buffer that contains data received from
a remote device. If the buffer contains less than the requested number of
bytes, then all the bytes in the buffer are returned.
ADDR (UINT): The address of the remote device to read data for.
CNT (UINT): The number of bytes to read from the local buffer.
DATA (STRING): The data bytes that have been read from the local
buffer.


User Receive Bytes

Returns the number of bytes that have been received from a remote
device but have not been read (by the USER_RX function block). This
function is useful for checking if a remote device has responded or has
sent data to the RTU without having to process the data.
ADDR (UINT): The address of the remote device to check the data for.
CNT (UINT): The number of bytes in the local buffer that have not been
read.


User Transmit

Transmits up to 255 bytes to a remote device. If the data is successfully
transmitted, the RTUs message success counter is incremented.
ADDR (UINT): The address of the remote device to send data to.
DATA (STRING): The data bytes to be transmitted.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 106


Function Blocks - Maths
Change Detect

Checks if the Input Variable has changed from the last stored value. If
the Input Variable is non-zero, the first time the logic is processed a
change will be detected (since the last stored value will be zero).

INP (DINT): Input Variable.
OUT (BOOL): Output Detected. 1 (TRUE) = Change detected; 0
(FALSE) = No change detected.


Decrement

Reads the value of the Input Variable, decreases it by one and then
stores the resulting value in the Output Variable.

INP (DINT): Input Variable.
OUT (DINT): Output Variable. Make the output variable the same as the
input variable when wanting to update the input variable.


Increment

Reads the value of the Input Variable, increases it by one and then
stores the resulting value in the Output Variable.

INP (DINT): Input Variable.
OUT (DINT): Output Variable. Make the output variable the same as the
input variable when wanting to update the input variable.


Multiply Divide Integer

Reads the value of the Input Variable, multiplies it by the Multiply Factor
and divides the result by the Division Factor. The result is then stored in
the Output Variable as an integer value (no decimal places).

INP (DINT): Input Variable.
MUL (DINT): Multiply Factor. Can be entered as a constant.
DIV (DINT): Division Factor. Can be entered as a constant.
OUT (DINT): Output Variable. Set to the same variable as the Input
Variable when wanting to update the Input Variable.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 107


Function Blocks - AGA
AGA3, AGA7, AGA8 Gross, AGA8 Detailed and AGA9 are detailed below.

AGA3

Uses the factors method of the 1992 revision of the American Gas
Association AGA-3 report to calculate the natural gas mass flow.

N1 (REAL): Unit Conversion Factor (Orifice Flow)
Cd (REAL): Coefficient of Discharge - Orifice Plate
dr (REAL): Reference Orifice Plate Bore Diameter at Reference
Temperature
a (REAL): Linear Coefficient of Thermal Expansion
Tf (REAL): Temperature
Tr (REAL): Reference Temperature
Dr (REAL): Reference meter tube, internal Diameter at Reference
Temperature
Y (REAL): Expansion Factor
dP (REAL): Differential Pressure
p (REAL): Density of Fluid at Flowing Conditions
Qm (REAL): Mass Flow

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 108


AGA7

Uses the calculations from the 1980 revision of the American Gas
Association AGA-7 report to calculate the volumetric flow of gas using
the formula:
Qv = Qf x P/Pgr x Tgr/T x Z

Qf (REAL): Flowrate at Flowing Conditions
P (REAL): Pressure (MPa)
Pgr (REAL): Reference Pressure at specific gravity (MPa)
T (REAL): Temperature (deg. C)
Tgr (REAL): Reference Temperature at Specific Gravity (deg. C)
Z (REAL): Compressibility Factor (output from AGA8 Gross calculation)
Qv (REAL): Volumetric Flow

There are no required units for this calculation. Users must take care in ensuring that the units used are
appropriate as recommended below.
Pressure and Reference Pressure must be in the same units and they must be absolute units of
pressure, such as psia, kPaa, MPaa or similar. Absolute units for the line pressure are typically the
pressure from the transmitter (in gauge units) plus the local atmospheric pressure or the reading from an
absolute pressure transmitter.
Temperature and Reference Temperature must be in the same units and they must be the absolute units
of Kelvin (deg C + 273.15) or Rankin (deg F + 459.67).
The Compressibility correction factor is the ratio of the compressibility of the gas at base conditions to
the compressibility of the gas at flowing conditions. To calculate this, you need to execute two AGA8
calculations, using the same gas composition, but the first with the base pressure and temperature to
calculate the base compressibility (Zb) and the second with the flowing pressure and temperature to
calculate the flowing compressibility (Zf). The Compressibility correction factor is then Zb / Zf. Either of
the AGA8 Gross or AGA8 Detailed function blocks can be used, according to the available gas
composition information available.
Note that the Supercompressibility factor, F
PV
, is the square root of the Compressibility Correction Factor,
and can be used (Z = F
PV
2
) if it is supplied from an external source.
The output of the function block, Q
v
will be in the same units as the supplied Q
f
.



AGA9
It is recommended that for the measurement of the flow of natural gas using an Ultrasonic meter, that the
calculations from the AGA-9 report be used. This report refers the reader to the calculations in the AGA-7
report. Kingfisher programmers building software for ultrasonic meter stations should do likewise and simply
use the AGA7 function block.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 109

AGA8 Gross

Uses the American Gas Association AGA-8 report for calculating gas
compressibility using the gross method. This implementation is based
entirely on "Compressibility Factors of Natural Gas and Other Related
Hydrocarbon Gases", AGA Transmission Measurement Committee
Report No. 8, Second Edition, November 1992.

T (REAL): Temperature (deg. C)
P (REAL): Pressure (MPa)
N2 (REAL): Mole Fraction N2
CO2 (REAL): Mole Fraction CO2
SG (REAL): Specific Gravity
Tr (REAL): Reference Temperature (deg. C)
Pr (REAL): Reference Pressure (MPa)
C (REAL): Compressibility factor
S (INT): Status Register
Ch 1: calculation error [LSB]
Ch 2: pressure out of range error (allowed range is 0 to 12 MPa)
Ch 3: temperature out of range error (allowed range is -8 to 62
o
C)

Example:
Temperature
Pressure
Mole N2
Mole CO2
Specific Gravity
Reference Temperature
Reference Pressure
Result
0
o
C
0.6894757 MPa
0.002595
0.005956
0.581078
15.56
o
C
0.101560 MPa
Compressibility = 0.982387, Status=0.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 110

AGA8 Detailed

Uses the American Gas Association AGA-8 standard for calculating gas
compressibility using the detailed characterization method. This
implementation is based entirely on "Compressibility Factors of Natural
Gas and Other Related Hydrocarbon Gases", AGA Transmission
Measurement Committee Report No. 8, Second Edition, November 1992.

T (REAL): Temperature (deg. C)
P (REAL): Pressure (MPa)
Meth (REAL): Molar Fraction of Methane
Nitr (REAL): Molar Fraction of Nitrogen
CaDi (REAL): Molar Fraction of Carbon Dioxide
Etha (REAL): Molar Fraction of Ethane
Prop (REAL): Molar Fraction of Propane
Watr (REAL): Molar Fraction of Water
HySu (REAL): Molar Fraction of Hydrogen Sulphide
Hydr (REAL): Molar Fraction of Hydrogen
CaMo (REAL): Molar Fraction of Carbon Monoxide
Oxy (REAL): Molar Fraction of Oxygen
iBut (REAL): Molar Fraction of i-Butane
nBut (REAL): Molar Fraction of n-Butane
iPen (REAL): Molar Fraction of i-Pentane
nPen (REAL): Molar Fraction of n-Pentane
nHex (REAL): Molar Fraction of n-Hexane
nHep (REAL): Molar Fraction of n-Heptane
nOct (REAL): Molar Fraction of n-Octane
nNon (REAL): Molar Fraction of n-Nonane
nDec (REAL): Molar Fraction of n-Decane
Heli (REAL): Molar Fraction of Helium
Argn (REAL): Molar Fraction of Argon
Cmpr (REAL): Compressibility Ratio
St (INT) Status Indication
Ch1: [LSB] Internal calculation error. The AGA8 Detail calculation is a
fairly complicated non-linear calculation that includes a couple of
iteration loops (ie. it repeats a calculation many times until the result
converges to a solution). The AGA8 function block limits these loops to
a maximum of 100 iterations each, to limit the time taken to perform the
calculation. An 'Internal calculation error' indicates that after 100
iterations the result was still varying slightly (a valid result is still
returned by the AGA8 calculation block). The reason for the variation
may be that the input parameters are close to the limits specified in the
AGA8 Detailed specification. For further details about the parameter
limits and the tolerance levels, please refer to the actual AGA8
Standard. If very precise accuracy is required from the result, the
'internal calculation error' bit can be used as a warning flag, otherwise it
can be ignored.
Ch2: Pressure out-of-range error (allowed range is 0 to 280 MPa)
Ch3: Temperature out-of-range error (allowed range is -130 to 400
o
C)
Ch4: Firmware driver error
Ch5: Gas components outside 'normal' range
Ch6: Gas components outside 'expanded' range

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 111

Function Blocks - BIT

Normal Bit

Sets (ON) or Clears (OFF) a bit.

DATA (BOOL): 1=set bit, 0=clear bit
IN (UINT): 16-bit input variable
BIT (USINT): Bit number to set (1-16)
OUT (UINT): 16-bit output variable. Make the output variable the same
as the input variable when wanting to update the input variable with the
new bit state.


Normally Closed Bit

Tests if a bit is closed (TRUE). Outputs TRUE if bit is TRUE.

IN (UINT): 16-bit input variable
BIT (USINT): Bit number to test (1-16)
OUT (BOOL): 1 (TRUE) = bit closed; 0 (FALSE) = bit open.


Normally Open Bit

Tests if a bit is open (FALSE). Outputs TRUE if bit is FALSE.

IN (UINT): 16-bit input variable.
BIT (USINT): Bit number to test (1-16)
OUT (BOOL): 1 (TRUE) = bit open; 0 (FALSE) = bit closed.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 112

Function Blocks Network Image Capture
Retrieves images from a network image device (eg. a network IP camera) and stores them in the general
purpose file transfer area of the processor Flash memory. The images are accessible using DNP3 file
transfer and are stored with time and date stamp in the following format:
YYYYMMDD_HHMMSS_TTT_STRING.ext or STRING_YYYYMMDD_HHMMSS_TTT.ext
YYYY=year, MM=month, DD=day, HH=hour, MM=minutes, SS=seconds and TTT=milliseconds,
STRING=user-defined text (up to 16 characters)
ext=jpg or gif or bin. Extension (file type) of each image is determined by the header returned from the
network image capture device.


URL (STRING): The HTTP web address (1-255 characters) of the
image in the network image capture device eg.
'http://192.168.8.231/jpg/image.jpg'. The image device must be
accessible through the IP address, sub-network mask and gateway
address configured on the Ethernet port of the Kingfisher RTU.
USER (STRING): [Optional] The HTTP authentication username (0-255
characters) to be used to access the network image capture device if
unauthenticated access is rejected.
PASS (STRING): [Optional] The HTTP authentication password (0-255
characters) to be used to access the network image capture device if
unauthenticated access is rejected.
RES (STRING): [Optional] Numeric variable (0-128 characters) to store
the result of the Image function block (typically of type DINT). Instead of
specifying the variable name, RES can be specified as 1 to 2048 and
this will be interpreted as Kingfisher Local Register variable KFR1 to
KFR2048 respectively. The RES variable will then be set to 0 if an
image is successfully retrieved and stored or set to another value if an
error has occurred. Note: the Kingfisher Local Register variable must
first be created in the Dictionary.
TEXT (STRING): [Optional] The user-defined text (0-16 characters) to
be included in the file name of the image retrieved from the network
image capture device.
PREF (BOOL): [Optional] If set to True (or 1) the user-defined text will
be added to the prefix (or front) of the image file name. If False
(default), the user-defined text will be added to the suffix (or end) of the
image file name).
If PREF=1, file name will be: STRING_YYYYMMDD_HHMMSS_TTT.ext
If PREF=0, file name will be: YYYYMMDD_HHMMSS_TTT_STRING.ext
ERR (BOOL): Error status of function block. Set TRUE (1) if one or
more parameters are out of range.

Note: Test Harness from Triangle Microworks supports DNP3 file transfer and can be used to obtain images
from the RTU (available from http://www.trianglemicroworks.com/DownLoads.htm )
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 113

ISaGRAF
TM
- Logic Examples
A Toolbox PLUS project containing all the Ladder Diagram logic examples below is available from www.cse-
semaphore.com/mykingfisher.

For tips on how to create and edit ISaGRAF logic, please see the topic ISaGRAF Editing Tips above.


Example Description
Detecting Modules How to check that each module is present on the backplane
Scaling How to convert an analog input into engineering units
Hours On The total number of hours that a variable has been active
Counting Pulses and
Starts
The total number of pulses or starts (OFF to ON transitions) of a variable
Flow Totalisation Counting volume from a flowrate
Daily Totals Rolling over totals at midnight to create yesterday and current totals
Polling How to poll a Kingfisher RTU
Exception Reporting
Digitals
How to send a message when a digital variable changes state
Exception Reporting
Analogs
How to send a message when an analog variable changes significantly
Event Logging How to create periodic or change initiated event logs
DNP3 Protocol How to configure and use the DNP3 protocol
Modbus Protocol How to configure and use the Modbus protocol
Allen Bradley Protocol How to configure and use the Allen Bradley DF1 protocol
Redundant
Communications
Shows how to change port or communication paths in response to a
communication fail. Please see the Redundancy appendix for more
information.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 114

Logic Examples Detecting Modules
The logic below checks that the modules detected in slots 1, 2 and 3 match the configuration loaded in the
RTU (from Toolbox PLUS). The variables Module1_OK, Module2_OK, Module3_OK, ModulesOK and
LogicStatus are all BOOL type variables. Please see the topic ISaGRAF Custom Function Blocks, RTU
System Data, Get Module OK for function block details.




Logic Examples Scaling
The logic below converts 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 and LogicStatus is a BOOL variable.

Please see the topic ISaGRAF Custom Function Blocks, Maths, Multiply Divide Integer for function block
details.




Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 115

Logic Examples Hours ON
Every 3600 milliseconds (3.6 seconds or 1/1000
th
of an hour) the logic 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 ie. 0 to 999,999 = 0 to 999.999 Hrs. HrsRun can be rolled over at midnight to
obtain daily totals.




Logic Examples Counting Pulses And Starts
Low speed pulses (up to 5 pulses per second [Hz]) and starts are both counted the same way. The logic
checks for an OFF to ON (or ON to OFF) transition of a digital input and increments a counter when a
transition is detected.

The actual pulse rate that the RTU can count depends on how fast the logic and IO are processed. Since
pulses are counted by counting the rising or falling edges of digital inputs, the logic and IO needs to be
processed fast enough to allow the RTU to register the pulse in the ON and the OFF states.

The default logic (and IO) cycle time is 100 ms and is configured in ISaGRAF from Project, Run Time
Settings, Settings, Cycle Timing. The minimum cycle time that can be used will vary according to the
number and type of modules in the RTU.

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 (or starts) using a positive (rising) edge trigger. Every time there
is a new pulse (from SL03IO3DI1.value), the PulsesToday variable (a DINT variable) is incremented.
LogicStatus is a BOOL variable.




Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 116

Logic Examples Flow Totalisation
The following example shows how to accumulate a flow volume from a flowrate analog input
(SL03IO3AI1.value). For this example, the flowrate engineering units are 4-20mA=0-1000 L/s. Each second,
the number of litres 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 litres is then added to the FlowToday total (a DINT variable).

Please see the topic ISaGRAF Custom Function Blocks, Maths, Multiply Divide Integer for function block
details.



Logic Examples 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.
When the value for CurrentDAY (of the month) 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.

Please see the topic ISaGRAF Custom Function Blocks, RTU System Data, Get Time for function block
details.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 117

Logic Examples Exception Reporting Digitals
An exception report can be generated when a single digital bit changes state or when any of the bits in a
variable change state.

Monitoring A Single Bit
In the example below, a single digital input variable from an IO-3 module (SL03103DI1.value) is monitored
for change. If the input changes, an exception report flag is set (ExReport). DILastValue and ExReport are
BOOL variables.




Monitoring Multiple Bits
In the example below, the four digital inputs from an IO-3 module (SL03IO3DI1.value, SL03IO3DI2.value,
SL03IO3DI3.value and SL03IO3DI4.value) are copied to Kingfisher Register Variable 1 (KFR1). If Register
Variable 1 changes (ie. if any bit changes), an exception report flag is set. NewValue is a DINT variable.
LogicStatus and ExReport are BOOL variables.



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 118

Sending The Exception Report
Create one or more Kingfisher Local Register variables to send to the remote RTU. Example: KFR1 (of
type DINT). Please see the appendix RTU Data - Protocols, Kingfisher Data, Local Register Variables for
details.
Create an INT_ARRAY variable to be used for the REG parameter (example: LocalRegisters).
Configure the Initial Value parameter to correspond to the Local Register Variables to send to the
remote RTU. Example: to send Local Register Variables 1 to 5, configure an Initial Value of 1,2,3,4,5
(please see below for details)
Configure a KF_TX_DATA function block in an ISaGRAF
TM
logic program, using the appropriate
variables (ie. correct data type) or constants for the inputs and output. Assign the INT_ARRAY variable
created above to the REG input parameter.
When the function is executed, the RTU will get values from the specified local register variables and
send them to the remote RTU.
In the remote RTU the data will appear in network register variables (for CP-30/G30 RTUs) or network
registers (for CP-11, PC-1 RTUs).

Please see the topic ISaGRAF Custom Function Blocks, Kingfisher Messages, Tx Data for function block
details.

The logic below sends a message to RTU7 when the port is free and the ExReport flag (from above
examples) has been set. MsgWaiting and ErrorStatus are BOOL variables.



The LocalRegisters variable used above is defined as follows:



The initial value of LocalRegisters allows the KFR1 to KFR5 variables to be transmitted to the remote RTU.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 119

Logic Examples Exception Reporting Analogs
The example below shows how to trigger an exception report when an analog input (SL03IO3AI1.value)
changes by 5% (of the analog range) from the last reported value. This is done by using two DINT variables
(AI1HiLimit, AI1LoLimit) and a constant. The variables are used to store the last reported value plus the
constant and the last reported value minus the constant. When the analog value moves above or below
these values, an exception report is triggered and the thresholds are updated (as illustrated below).


AIHiLimit
AILoLimit
Analog Input


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 the KFR2 in the logic above) to another RTU, please see
the topic above, Logic Examples Exception Reporting Digitals, Sending The Exception Report.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 120

Logic Examples Event Logging
The RTU is able to keep a record of variables and their values over time. 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.

For the two examples below, ErrorStatus is a DINT variable and LogicStatus is a BOOL variable.


Logging Kingfisher Variables
The example below creates an event log whenever digital input 1 (SL03IO3DI1.value) changes state.

REG is configured with the string SL03IO3DI1.value (including the single quotation marks).

Please see the topic ISaGRAF Custom Function Blocks, Event Logging, Event Log for function block
details.




Logging DNP Variables
The example below creates periodic event logs (every 60 seconds) for DNP Analog Input 1 (DNPAI0) with a
priority of 2 (class 2 data).

Please see the topic ISaGRAF Custom Function Blocks, Event Logging, Event Log for function block
details.



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 121

Logic Examples Polling
Polling is usually performed by the master RTU in order to get a regular update of remote RTU data and to
determine if communications to the remote RTUs have failed.

Kingfisher protocol allows for full-duplex communications which means the RTU can simultaneously transmit
and receive. However, since most radios are half-duplex, which means that the RTU cannot transmit and
receive simultaneously, it is necessary to force the RTU to wait for a reply to each transmit message. Unless
the RTU is forced to wait, it will transmit all the polling messages one after the other - which can take a few
seconds. Because of the delay, the first polling message will have timed out before the RTU is able to
receive a reply as the RTU is still busy transmitting. The following examples show how to force the RTU to
wait for a reply to each message when polling.

Create one or more Kingfisher Network Register Variables to store the data received from the remote
RTU. Example: KF7R1, KF7R2, KF7R100. Please see the appendix RTU Data - Protocols, Kingfisher
Data, Network Register Variables for details.
Create an INT_ARRAY variable to be used for the REG parameter (example: RTU7Registers).
Configure the Initial Value parameter to correspond to the Local Register Variables to poll from the
remote RTU. Example: to poll Local Register Variables 1, 2 and 100 use an Initial Value of 1,2,100
(please see below for details)
Add the KF_RX_DATA function to an ISaGRAF logic program and configure each of the input
parameters. Assign the INT_ARRAY variable created above to the REG input parameter.
When the function is executed, the RTU will get the local register variables from the remote RTU and
store them in the corresponding network register variables in the local RTU.

Please see the topic ISaGRAF Custom Function Blocks, Kingfisher Messages, Rx Data for function block
details.

Basic Polling
The logic below polls RTU7 Local Register Variables 1, 2 and 100 every 60 seconds when the port is free.
RTU7MsgWaiting, ErrorStatus and PollRTU7 are BOOL variables and RTU7Registers is an INT_ARRAY
variable (as detailed below).



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 122

The RTU7Registers variable used above is defined as follows:


The initial value of RTU7Registers allows the KFR1, KFR2 and KFR100 variables to be polled from the
remote RTU.


Polling After Data Has Expired
If a remote RTU has exception reported to the master RTU recently, it is not necessary to poll the remote
RTU until the data is older than X minutes (where X is ideally a SCADA setpoint with a default value of say
10 minutes). If exception reports are generated frequently, it may never be necessary to poll the remote
RTU. Communication statistics are still accumulated as a success is recorded for each exception report
received. Communication Fails are also recorded as the master will still check comms every X minutes if it
has not received a message from the remote RTU during that time. Note: the variables that are exception
reported should be the same as the variables that are polled.

Advantages:
Minimises communications over the network
User can set the maximum age of data before a poll
Disadvantages:
Takes more effort to test

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 (of type DINT). If a message is received from
RTU7 or a poll has occurred, the RTU7QuietTimer (of type DINT) is reset to 0. StatsError, LogicStatus,
and RTU7MsgWaiting are BOOL variables. LastRxSucc, RTU7TxSucc, RTU7TxFails, RTU7RxSucc and
RTU7RxFails are all UDINT variables.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 123



The RTU7Registers variables used above is defined as follows:


The initial value of RTU7Registers allows the KFR1, KFR2 and KFR100 variables to be polled from the
remote RTU.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 124

Logic Examples DNP3 Protocol

Setting Up An RTU to be a DNP3 Slave
CP-30
DNP3
Slave
Operator Panel
DNP3 Master
Serial, 9600 bps
Serial
Port 2
Tank Le vel: 95 .2%
Ove rflow: OK
Chlo rine: 0.1 pp m


Add the DNP3 protocol to the RTU (RTU Configuration - Protocols). Edit the DNP3 protocol and
configure the number of local DNP3 objects from the General tab as required.
Add serial port 2 to the RTU configuration (RTU Configuration - Ports). Alternatively an Ethernet port
could be used.
Edit serial port 2 (RTU Configuration - Ports). From the Settings tab of port 2, set Bits per second to
9600 and enable the DNP3 protocol.
Add an ISaGRAF
TM
logic program to copy data into the DNP3 variables as required (RTU Configuration
- Programs). Note: an Initial Value can be configured and an IO channel can be mapped to each DNP3
variable. Please see the topic Dictionary DNP3 Variables for more information.
Download the Configuration and Logic (even if not using a logic program) to the RTU.


Setting Up An RTU to be a DNP3 Master

CP-30
DNP3
Master
Address 23
Serial, 9600 bps
Serial
Port 2
Serial
Port
DNP3
Slave
Device


Add the DNP3 protocol to the RTU (RTU Configuration - Protocols). Edit the DNP3 protocol and
configure the number of local DNP3 objects from the General tab as required. These are the objects that
can be written to the DNP3 slave device.
Add serial port 2 to the RTU configuration (RTU Configuration - Ports). Alternatively an Ethernet port
could be used.
Edit serial port 2 (RTU Configuration - Ports). From the Settings tab of port 2, set Bits per second to
9600 and enable the DNP3 protocol.
Create DNP3 Variables that correspond to the registers to be polled by the CP-30 (Dictionary - Multiple
Variables). Example: DNP23AI0 to DNP23AI4 (DNP3 device 23, Analog Inputs 0 to 4).
Add an ISaGRAF
TM
logic program to copy data into the DNP3 local variables as required (RTU
Configuration - Programs). Note: an Initial Value can be configured and an IO channel can be mapped to
each DNP3 variable.
Configure a DNP3 function block in an ISaGRAF
TM
logic program to poll or send data. An example is
shown below.
Download the Configuration and Logic to the RTU.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 125

The logic below polls class 0 data from DNP3 Device 23 every 10 seconds.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 126

Logic Examples Modbus Protocol
Setting Up An RTU to be a Modbus Slave
CP-30
Modbus
Slave
Operator Panel
Modbus Master
Serial, 9600 bps, Modbus RTU data format
Tank Le vel: 95 .2%
Ove rflow: OK
Chlo rine: 0.1 pp m
Serial
Port 2


Add the Modbus RTU protocol to the RTU (RTU Configuration - Protocols). Alternatively Modbus TCP
can be used an Ethernet port.
Add serial port 2 to the RTU configuration (RTU Configuration - Ports)
Edit serial port 2 (RTU Configuration - Ports). From the Settings tab of port 2, set Bits per second to
9600 and enable the Modbus RTU protocol.
Create local Modbus variables to be polled by the Modbus Master device (Dictionary - New Variables).
Example: MODH71 - Modbus Holding register 71 (40,071). Please see the appendix RTU Data -
Protocols, Modbus Data for Modbus variable formats and addressing details.
Add an ISaGRAF
TM
logic program to copy data into the Modbus variables as required (RTU
Configuration - Programs). Note: an Initial Value can be configured and an IO channel can be mapped to
each Modbus variable.
Download the Configuration and Logic (even if not using a logic program) to the RTU.



Setting Up An RTU to be a Modbus Master

CP-30
Modbus
Master
Modbus Slave
Address 7
Serial, 9600 bps, Modbus RTU data format
Serial
Port 2
Serial
Option
Port


Add the Modbus RTU protocol to the RTU (RTU Configuration - Protocols). Alternatively Modbus TCP
can be used on an Ethernet port.
Add serial port 2 to the RTU configuration (RTU Configuration - Ports).
Edit serial port 2 (RTU Configuration - Ports). From the Settings tab of port 2, set Bits per second to
9600 and enable the Modbus RTU protocol.
Create Modbus Variables to store the data polled from the Modbus Slave device (Dictionary - New
Variables). Example: MOD7H1 to MOD7H5 (Modbus device 7, Holding Registers 1 to 5).
Create local Modbus variables that correspond to the registers to be written to the Modbus Slave device.
Example: MODH14 to MODH16 (Modbus Holding registers 14 to 16). Please see the appendix RTU
Data - Protocols, Modbus Data for Modbus variable formats and addressing details.
Configure a Modbus function block in an ISaGRAF
TM
logic program, using the appropriate variables or
constants for the inputs and output. An example is shown below.
Download the Configuration and Logic to the RTU.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 127

The logic below polls holding registers 1001 and 1002 from Modbus Device 7 every 10 seconds and stores
the data in MOD7H1 and MOD7H2. ErrorStatus, RTU7MsgWaiting and PollRTU7 are BOOL variables.
ModbusStatus is a DINT variable.



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 128

Logic Examples Allen Bradley Protocol
Communicating With An Allen Bradley SLC500 PLC
Add the Allen Bradley DF1 protocol to the RTU (RTU Configuration - Protocols).
Add a serial port to the RTU configuration (RTU Configuration - Ports).
Edit the serial port (RTU Configuration - Ports). From the Settings tab of the port, set Bits per second to
the desired baudrate and enable the Allen Bradley protocol.
Add the station address of the PLC to the RTUs Route list (RTU Configuration - Routes). Note: the
station address cannot already be used by another RTU in the list.
Create one or more Kingfisher Local Register variables to send to the PLC or to store data from the PLC.
Example: KFR1 (of type DINT) to KFR200. Please see the appendix RTU Data - Protocols, Kingfisher
Data, Local Register Variables for details.
Configure an Allen Bradley function block in an ISaGRAF
TM
logic program, using the appropriate
variables (ie. correct data type) or constants for the inputs and output. An example is shown below.
Download the Configuration and Logic to the RTU.

The logic below polls 50 registers starting at N10:1 from an Allen Bradley PLC every 10 seconds and stores
the data in KFR10 to KFR60. ErrorStatus, MsgWaiting and PollNow are BOOL variables. ABErrorStatus
is a BYTE variable.



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 Semaphore 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.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 129

ISaGRAF
TM
- Reserved Variable Names
Listed below are the names that are reserved by ISaGRAF
TM
5.xx and so cannot be used as variable
names. In addition, all names beginning with the underscore character are reserved.

A ABS, ACOS, ADD, ANA, AND, AND_MASK, ANDN, ARRAY, ASIN, AT, ATAN
B BCD_TO_BOOL, BCD_TO_INT, BCD_TO_REAL, BCD_TO_STRING, BCD_TO_TIME, BOO, BOOL,
BOOL_TO_BCD, BOOL_TO_INT, BOOL_TO_REAL, BOOL_TO_STRING, BOOL_TO_TIME, BY,
BYTE
C CAL, CALC, CALCN, CALN, CALNC, CASE, CONCAT, CONSTANT, COS
D DATE, DATE_AND_TIME, DELETE, DINT, DIV, DO, DT, DWORD
E ELSE, ELSIF, EN, END_CASE, END_FOR, END_FUNCTION, END_IF, END_PROGRAM,
END_REPEAT, END_RESOURCE, END_STRUCT, END_TYPE, END_VAR, END_WHILE, ENO, EQ,
EXIT, EXP, EXPT
F FALSE, FIND, FOR, FUNCTION
G GE, GFREEZE, GKILL, GRST, GSTART, GSTATUS, GT
I IF, INSERT, INT, INT_TO_BCD, INT_TO_BOOL, INT_TO_REAL, INT_TO_STRING, INT_TO_TIME
J JMP, JMPC, JMPCN, JMPN, JMPNC
L LD, LDN, LE, LEFT, LEN, LIMIT, LINT, LN, LOG, LREAL, LT, LWORD
M MAX, MID, MIN, MOD, MOVE, MSG, MUL, MUX
N NE, NOT
O OF, ON, OR, OR_MASK, ORN
P PROGRAM
R R, READ_ONLY, READ_WRITE, REAL, REAL_TO_BCD, REAL_TO_BOOL, REAL_TO_INT,
REAL_TO_STRING, REAL_TO_TIME, REPEAT, REPLACE, RESSOURCE, RET, RETAIN, RETC,
RETCN, RETN, RETNC, RETURN, RIGHT, ROL, ROR
S S, SEL, SHL, SHR, SIN, SINT, SQRT, ST, STN, STRING, STRING_TO_BCD, STRING_TO_BOOL,
STRING_TO_INT, STRING_TO_REAL, STRING_TO_TIME, STRUCT, SUB, SUB_DATE_DATE,
SYS_ERR_READ, SYS_ERR_TEST, SYS_INITALL, SYS_INITANA, SYS_INITBOO, SYS_INITTMR,
SYS_RESTALL, SYS_RESTANA, SYS_RESTBOO, SYS_RESTTMR, SYS_SAVALL, SYS_SAVANA,
SYS_SAVBOO, SYS_SAVTMR, SYS_TALLOWED, SYS_TCURRENT, SYS_TMAXIMUM,
SYS_TOVERFLOW, SYS_TRESET, SYS_TWRITE, SYSTEM
T TAN, TASK, THEN, TIME, TIME_OF_DAY, TIME_TO_BCD, TIME_TO_BOOL, TIME_TO_INT,
TIME_TO_REAL, TIME_TO_STRING, TMR, TO, TOD, TRUE, TYPE
U UDINT, UINT, ULINT, UNTIL, USINT
V VAR, VAR_ACCESS, VAR_EXTERNAL, VAR_GLOBAL, VAR_IN_OUT, VAR_INPUT, VAR_OUTPUT
W WHILE, WITH, WORD
X XOR, XOR_MASK, XORN
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 130


8. Download

Topic Description
Overview Downloading overview
Connecting To An
RTU
How to establish Ethernet communications between a PC and an RTU
Configuration Downloading configuration settings to an RTU
Logic Downloading ISaGRAF logic and dictionary variables to an RTU
Firmware Downloading firmware into a CP-30, G30 or MC-30/31 module



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 131

Download - Overview

Before downloading an RTU configuration and logic, it is recommended that the
project be saved first ie. select File, Save.
When a project is saved, a set of folders is created. The top-level folder uses the
project name. A project can be backed up by saving this set of folders and all
the files they contain.

Configurations, logic programs and firmware can all be downloaded to any RTU that can be directly
communicated with using Ethernet (to CP-30 port 1). Downloads cannot currently be performed through any
intermediate RTUs.

IMPORTANT! Various versions of Toolbox PLUS and firmware have been released. To ensure correct
operation, the Toolbox PLUS version must correspond to the firmware version in the RTU. Required
firmware is listed in the Revision History table at the front of this manual. The firmware version in the RTU
can be checked using the Status command.


Restart
Whenever firmware, a configuration or logic is downloaded, the RTU is restarted. A restart resets all the
variables to the initial values. A restart retains event logs, the RTU configuration and logic.


Restart RTU
Select the RTU name in the navigation pane
Select Tools, Restart


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 132


Download - Connecting To An RTU
To connect directly to an RTU with a PC, an Ethernet crossover cable (as supplied with Toolbox PLUS) is
required as illustrated below. If connecting to an Ethernet hub, a straight through cable or a crossover cable
can be used.


Ethernet Crossover Cable
CP-30 PS-11
CP-30 PS-11
Ethernet Straight
Through Patch Cables

Ethernet
Network








The above cables are industry standard and are readily available.

Once a cable is installed, the PCs LAN port needs to be setup as detailed in the next topic.

Note: If the RTU has a Serial option port and the port has already been configured (by first using Ethernet
communications), then Toolbox PLUS can use Serial communications to the RTU as illustrated below.


CP-30 PS-11
Serial Crossover Cable
(Null Modem Cable)
ADP-05
Adaptor
RJ45 Patch Cable


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 133

Download - LAN Port Setup
To initially communicate with the RTU, the PCs LAN port must be enabled and setup to communicate with
the RTUs default IP address as detailed below.

1. From Windows Control
Panel, Select Network
Connections. Right-click the
LAN port and select Enable
(this option will only be
available if the LAN port is
disabled).


2. Once the LAN port is
enabled, right-click the LAN
port again and select
Properties. The following
window will then appear.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 134

3. Select Internet Protocol
(TCP/IP) and then click the
Properties button. The
following window will then
appear.

Select Use the following IP
address and enter the IP
address and Subnet mask as
shown and then click OK.



The above settings, assign an IP address to the PCs LAN port. The IP address to be used by Toolbox PLUS
to communicate with the remote RTU now needs to be setup as detailed in the next topic.

Note: once the RTU has been configured with an IP address supported by a LAN, it can be connected to that
LAN. To communicate with the RTU via the LAN, the PCs LAN port should be changed back to Obtain an
IP address automatically (as shown above).
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 135


Download - Connection Parameters

Edit Connection Parameters
Select Tools, Connection

By default Toolbox PLUS uses Ethernet to communicate with RTUs. Toolbox PLUS can also use the PCs
serial port to view the status and event logs of an RTU.




Use RTU IP address information: When selected,
Toolbox PLUS uses the IP address configured for port
one of the selected RTU configuration. This option is
used when communicating directly with the target
RTU.
Use the following IP address information: When
selected, Toolbox PLUS uses the specified IP
address. The default IP address used by an RTU is
192.168.0.1. When communicating through a network
of RTUs, this is the IP address of the first RTU.
If the IP address is unknown and the CP-30 processor
is running 1734 firmware or newer, the IP address can
be reset to 192.168.0.1 by removing the link on the
rear of the module and restarting the CP-30 without
the link installed. Restarting the CP-30 without the link
installed clears the configuration and loads the default
settings. Note: the logic is not cleared.
Use the following serial port information: When
selected, Toolbox PLUS uses the specified serial port
(COM1, COM2 ) and speed (9600, 19200, 38400,
57600 or 115200 bps) to communicate with the RTU.
Note: Configurations or logic cannot be downloaded
when using a serial communications.
If using a USB to DB9 serial port converter, a COM
port is assigned to the converter by the PC. To
determine the converter COM port, right-click My
Computer on the Windows Desktop and select
Manage. Select Device Manager on the left hand side
of the Computer Management window. Double-click
Ports on the right hand side of the window. The COM
port assigned to the converter will then be displayed
(the example on the left shows the COM port assigned
to an ATEN converter).
Discovery: detects all RTUs using the same Subnet
address as the local Ethernet port(s) or connected to
the PCs serial port (requires 2285 firmware or newer).
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 136


The Advanced tab of the Connection window
contains additional information that may need to be
changed if there is more that one PC communicating
with the RTU, when experiencing delays when
communicating with a remote RTU or when
communicating through a network of RTUs. The
default settings (as shown) can be used in most cases.
Network Address: (1-65535) Because the PC is
treated like another RTU in the network, it must have
its own unique address. Addresses 65521 to 65535
are reserved for Toolbox PLUS. If two or more PCs
running Toolbox PLUS are connected to the same
RTU, each PC should have its own unique address to
avoid communication fails.
Via address: (0-65535) [Only available when using
the Connection options - Use the following IP address
information or Use the following serial port
information]. When using a network of RTUs, this is
the address of the first RTU to communicate through.
Address 0 [default] disables this function.
Timeout (ms): (100 to 60,000 ms [1000 ms = 1 second]) The time waited for a response to a message
attempt before performing the next message attempt or flagging a communications fail. This setting may
need to be lengthened when communicating with a remote RTU (eg. when communicating over a 1200 baud
radio network, 4000 or more milliseconds are recommended.)
Retries: (0-9) The maximum number of attempts (after the first attempt) Toolbox PLUS will have at sending
a message to the RTU if the previous attempts have failed. It is more reliable to set the Number Of Retries to
1 or more when downloading an RTU Configuration or Ladder Logic to a remote RTU.
Repeat Rate (sec): (Continuous, 0.1, 0.2, 0.5, 1, 2, 5, 10, 30, 60 seconds) The rate at which Toolbox PLUS
generates a new message request. If a message fails, Toolbox PLUS will wait until the failed message has
timed out (after 'Timeout' seconds) and then will send the next message at the next Repeat Rate time
interval. When the Repeat Rate is set to 'Continuous' or when downloading files (eg. firmware or
configuration files) messages are continuously sent and received without pausing between messages.
Always use Kingfisher protocol for file transfers: (Tick to Enable) When enabled, Toolbox PLUS uses
the Kingfisher protocol when downloading firmware and configurations over Ethernet or serial connections.
When disabled, Toolbox PLUS uses the SSH internet protocol when downloading over Ethernet (SSH does
not support serial downloads).

Communications Check
If the PCs LAN port is connected to an RTU, the LAN port has been correctly setup and Toolbox PLUS has
the correct IP address of the remote RTU, the Ethernet link can be checked by selecting an RTU in the
navigation pane and then selecting Tools, Status. Toolbox PLUS will then attempt to communicate with the
remote RTU to obtain status information.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 137


Download - Configuration
Downloads the RTU settings (ie. address and RTU properties) without the logic or dictionary variables.

Caution! An RTU will be restarted after downloading the configuration.


Download Configuration
Select Download, Configuration (this option is only available if an RTU
name is selected in the navigation page)

Note: Configurations created using older versions of Toolbox PLUS must be
upgraded before they can be downloaded to the RTU.



Download - Logic
Downloads the logic programs and dictionary variables. Logic programs are automatically checked and
compiled before they are downloaded.

Caution! An RTU will be restarted after downloading the logic.


Download Logic (Only)
Select Download, Logic (this option is only available if an RTU name is
selected in the navigation page)


To check and compile logic programs without downloading, the Build command is used.


Check Logic Program (without downloading)
Select Tools, Build (this option is only available if an RTU name is
selected in the navigation page)

If all is OK, Toolbox PLUS will display the message: Build Successful!

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 138


Download - Firmware
Firmware can be downloaded into a processor or communications module to upgrade functionality. The
firmware version that is currently in the CP-30, G30, MC-30 or MC-31 can be checked using the Status
command.

Note: MC-30 firmware can be downloaded into an MC-11 to upgrade it to an MC-30. MC-31 firmware can be
downloaded into a CP-30 to change it into an MC-31 module.

Caution!
An RTU will be restarted after downloading firmware and may take up to two minutes to restart (until the
OK and F3 LEDs are steady ON). After the firmware is downloaded, the OK LED will flash slowly while
the new firmware is being processed. Interrupting the first restart may cause a processor malfunction.
The CP-30/G30 should not be powered down while downloading firmware. Memory corruption may
result.
Before downloading an RTU configuration, the Toolbox PLUS version must correspond to the firmware
version in the RTU. Required firmware is listed in the Revision History table at the front of this manual.


Download CP-30, G30 or MC-31 Firmware
Ensure that an Ethernet cable is connected directly to the module that
firmware will be downloaded to.
Check that Toolbox PLUS can communicate with the module by using the
Status command
Select Download, Firmware
The Connection To RTU window will appear. Specify the IP address of the
Ethernet port that firmware will be downloaded to and then select OK
The Select Firmware File window will appear. Select the firmware file to
download into the CP-30, G30 or MC-31.
Please be patient while the firmware downloads and the RTU restarts



Download MC-30 Firmware
Connect a serial [null modem] cable between the PC
COM and the top port of the MC-30 (or MC-11).
Select Tools, Advanced, Download MC-30
Firmware
Select the Firmware file path and name
(firmware is named MC-30Vxxx.h32 where
xxx=version) and the Serial port to use.
Select OK


RJ45 Cable
DB9 Male PC Serial Port
Adaptor
ADP-05
To USB Port DB9 Male
USB to DB9M RS232 Serial Converter cable
(Only required if PC does not have a spare DB9 serial COM port)
MC-30
Null Modem Cable
OR

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 139


9. Viewing Data

Topic Description
Status
View firmware version, date and time, module inputs and outputs and message
totals
Event Logs View time and date stamped data (logs are created using ISaGRAF logic)
Communications View Ethernet messages to and from Toolbox PLUS and between RTUs

The above information can be viewed whenever Toolbox PLUS can successfully communicate with an RTU.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 140

View - Status
Displays the RTU address, firmware version (Build Number), MC-30/31 firmware version, memory usage,
date and time, IO status and the number of messages that have been successfully sent and received. The
date and time can also be set.


View Status
Select the RTU name in the navigation pane
Select Tools, Status
Select the Date & Time tab OR Modules tab OR Statistics tab to view
additional information
Note: if an RTU name is not selected, the Status command will still operate.
Toolbox PLUS will first request the RTU address and System ID of the remote
RTU.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 141


The MC-30/31 firmware version can be viewed by
selecting the MC-30/31 Module above and then
clicking the Details button.



Note: if a message is initiated to a remote device and
there is no route defined for that address, the
Messages Sent Failure count will be incremented
Device Address: (0-65535) Enter the address of the
remote RTU or device to view the message statistics
between the local RTU and that remote RTU or
device. Entering address 0 will display the total
number of messages to and from all remote RTUs
and devices (including messages from Toolbox PLUS
that uses address 65535 by default).


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 142


View - Event Logs
Event logs allow the RTU to record time and date stamped data. An event log can be created periodically,
after data changes or on any configurable event using logic. Event logs are initially kept in battery backed
SRAM. Periodically, 4KB blocks of event logs are moved to FLASH RAM (4MB of permanent storage).


View Event Logs
Select the RTU name in the navigation pane
Select Event Log in the wonder bar
Select the Retrieve button
Specify whether to retrieve All Events or the number of newest events to retrieve





Event Log Buttons
Count: Determines how many event logs are stored in the RTU and displays the result (to the right of
the Cancel button).
Filter: Only event logs corresponding to the filter settings will be retrieved if Apply Filter is enabled (tick
to enable).
Retrieve: Retrieves event logs from the RTU. 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).
Clear: Clears all the event logs in the RTU.
Cancel: Only available when retrieving event logs. Stops the uploading of event logs.

Event Log Parameters
Id: Unique index assigned to each event log by the RTU.
Timestamp: Date and time of the event log. Note: Kingfisher IO variables are accurate to one second.
RTU: Address of the RTU that created the event log.
Name: Name of the variable that was logged.
Value: Value of the variable when logged.
Flags: Additional information available when using DNP3.
Type: Configured type of the event log.
Priority: Configured priority of the event log.
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 143


Event Log Filter
Allows selected event logs to be retrieved from the RTU.


Configure Event Log Filter
Select the RTU name in the navigation pane
Select Event Log in the wonder bar
Select the Filter button
Specify the General settings of the event logs to upload
Select the Date Range tab to specify time and date settings of the event logs to
upload
Enable Apply Filter (tick to enable) this is tick box is located next to the Count
button.
Select the Retrieve button to upload event logs that correspond to the filter
settings





Max number: (0-65535) Maximum number of event logs to retrieve.

RTU: (1-65520) Event logs corresponding to this address will be retrieved from the selected RTU.

Type: (0-31) Only event logs matching this Type setting will be retrieved.

Priority: (0-7) Only event logs matching this Priority setting will be retrieved.

Range Start: The date and time of the oldest event log to retrieve.

Range Finish: The date and time of the newest event log to retrieve.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 144


View - Communications
Ethernet messages to and from Toolbox PLUS and between RTUs can be viewed using the Wireshark
program.


View Communications
Ensure Wireshark is installed on the PC
Select Tools, Communications (launches Wireshark - this menu option will be
disabled if Wireshark is not installed on the PC)

Wireshark is a network capture and analyser application that can decipher and filter messages and includes
support for Modbus TCP, DNP3 and more that 800 other protocols. Wireshark is designed for Ethernet
network traffic analysis and cannot be used for local analysis of a serial connection (between a PC and an
RTU).

To download a free copy of Wireshark, go to www.wireshark.org. A Kingfisher version of Wireshark is also
available from www.cse-semaphore.com/mykingfisher that has support for deciphering the Kingfisher
protocol.



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 145


Wireshark Setup
Select Capture, Interfaces. A window will appear listing all available capture interfaces. Select the Start
button next to the interface that will be used. Wireshark will then begin capturing packets from this interface.



This method captures all of the Ethernet traffic that is directed to or from the Wireshark PC. To capture traffic
that is directed to another device (eg. an RTU) please read on.

Capture Options
(Capture , Options menu - available when Wireshark is not capturing)
Deselect Capture packets in promiscuous mode when only wanting to analyse communications to
and from the Wireshark PC. Leave this option enabled to capture messages from all devices on the
network.
To display messages to or from a particular IP address, enter the filter ip.addr==aaa.bbb.ccc.ddd
where aaa.bbb.ccc.ddd is the required Ethernet address.


Capturing RTU Messages When Using Switches And Routers
Switches and Routers do not broadcast all messages on all ports, but direct messages to the intended port
to minimize network traffic. This means that the PC will not receive all the messages on the network. This
may prevent messages being captured from a remote RTU. This can be solved by connecting everything to
a non-switching hub (these are the older style 10/100 Mbit/s hubs).

A hub sends every message to every port. The hub uses a lower level of logic in that it does not know where
messages are supposed to go, so it sends them to every client on every port and lets those clients accept
the message if they want it and reject it if they dont. This setup allows all the messages to be captured on
the whole network.

To capture messages for an RTU on a switched network, at the RTU end, disconnect the RTU from the
switch. Connect the RTU to the hub and connect the hub to the switch. Then connect the Wireshark PC to
the hub as shown below.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 146

Ethernet Switch
RTU 1 RTU 2
PC will not hear
messages between
RTU1 and RTU2
Ethernet Switch
RTU 1 RTU 2
PC will hear all
messages to and
from RTU2
Non - Switching Hub



For more details on how to access messages that are not directed to the Wireshark PC, please see
http://wiki.wireshark.org/CaptureSetup/Ethernet.


Saving Captured Messages
Once the required messages have been captured, stop capturing messages by selecting Capture, Stop.
The data can then be saved to a file using the menu - File, Save.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 147


10. Appendices

Appendix Description
Glossary Definition of RTU words used in this manual
Kingfisher PLUS+
Details the differences between Kingfisher ISaGRAF
TM
processors (CP-30, G30)
and other processors (PC-1, CP-11, CP-21, LP-1)
Semaphore MIB
RTU parameters that are available for query and setting using the SNMP
Daemon protocol
Redundancy
An RTU can have a second power supply and CP-30 processor that takes control
if the first one fails
Creating Variables
Using Excel
How to export dictionary variables to a Microsoft Excel
TM
spreadsheet and import
the variables back into a Toolbox PLUS configuration
RTU Data Lists the data available from CP-30 or G30 RTUs


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 148

Appendix - Glossary
BYTE A group of 8 bits. Each bit can be a 0 (off) or a 1 (on) allowing up to 256 combinations.
CP-30 Kingfisher PLUS+ processor module. Runs the Linux operating system and supports
ISaGRAF
TM
.
DICTIONARY Set of variables available for use in logic programs or to be polled by a remote RTU.
EXCEPTION
REPORT
A sporadic message initiated by a slave RTU to another RTU (usually to the master) to
report new data or a significant event.
FUNCTION
BLOCK
This term refers to a block of code that can be executed by an ISaGRAF
TM
logic program.
Examples of function blocks include AGA gas calculations, hardware configuration and
communication messages.
G30-SA Kingfisher PLUS+ processor module. Runs the Linux operating system and supports
ISaGRAF
TM
. Housed in a stand-alone (SA) enclosure and has one power supply card and
one IO card (optional).
INPUT Signal into the RTU
IO Input, Output
MASTER The device that is responsible for the collection, concentration and ultimate reporting of
information from local and remote devices (conversely described as slave devices). The
Master device 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.
OUTPUT Signal out of the RTU
POLL A periodic message initiated by the master RTU to get the latest data and check the state of
communications to a remote RTU.
PORT A physical connection or socket on an RTU used for communications
PROTOCOL Refers to the format of messages that may be passed to, from and through an RTU in
communication with local and remote devices. Communications may use one or more RTU
ports. Examples of protocols used within telemetry include Kingfisher, Modbus and DNP3.
PS-11 Kingfisher PLUS+ power supply
RTU Acronym for Remote Terminal Unit. Describes a group of processor, communication and IO
modules that comprise a device for monitoring and control of hardware and devices in
remote locations.
SLAVE The device that is responsible for the collection of IO and other information. This data can
then be polled or exception reported to a master device. A slave may be an RTU or
another device.
TCP/IP Transfer Control Protocol / Internet Protocol. Commonly used for Ethernet communications.
UDP Universal Datagram Protocol.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 149


Appendix - Kingfisher PLUS+
The most significant difference between Kingfisher PLUS+ processor modules (PC-1, CP-11, CP-21, LP-x) is
that the CP-30 and G30 processors support ISaGRAF
TM
while the other processors do not. To support
ISaGRAF
TM
, CP-30 and G30 processors handle data in different ways as detailed below.

Item Non-ISaGRAF
TM
Kingfisher
Processors
ISaGRAF
TM
Kingfisher Processors
Processors PC-1, CP-11, CP-21, LP-x CP-30 or G30-SA (stand alone)
Data Limit 2048 Local or Network Registers Virtually Unlimited
Data Format 16-bit registers
Pairs of local registers are used to
create long and float registers (32-
bit)
Most registers are read/write
Variables of various types (Binary,
Integer, Long Integer, Float etc) can
be created in the Dictionary
Storage Location
All registers are stored in Static
RAM.
Local registers are stored in a
fixed location in memory.
Memory for Network registers is
allocated dynamically as needed.
Memory is dynamically allocated to
variables.
Data is stored in the variable itself.
Stores data from Non-ISaGRAF
TM

processors if the corresponding
variables exist in the Dictionary. Eg.
Creating the variable KF17N210 will
allow the RTU to store local register
#R210 from RTU17
Data Address The register address is a
reference to where data is stored
in RTU memory.
Egs. #R533, #DI14.1
Variable names are used to address
data. The RTU manages where the
data is stored. A variable name is a
label that describes the data it
represents.
Egs. SL14IO4DI1,
RTU23_ACPWR_STATUS
RTU System Data System Registers (#Y) allow
access to RTU system data.
Toolbox PLUS automatically adds IO
module variables to the dictionary.
RTU System Data is available from
custom function blocks in
ISaGRAF
TM
.
Available Data Registers do not have to be
created. They are always available
for use in ladder logic.
Data can only be accessed when
variables are created in the
Dictionary (except for IO module
variables that are automatically
created)
Data Transfer Data transferred by referring to
local or network registers
Data transferred by referring to
variable names

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 150


Kingfisher PLUS+ General
Item Non-ISaGRAF
TM
Kingfisher
Processors
ISaGRAF
TM
Kingfisher Processors
Configuration
Software
Toolbox 32 Toolbox PLUS
ISaGRAF
TM
Workbench. All international
IEC 61131 control languages are
supported.
Address Range 0-255 (8-bit) 0-65535 (16-bit)
Communications
Path
Called a network link
Direct or indirect
Called a route
Direct or Indirect
Data Transfer Ladder Logic blocks ISaGRAF
TM
Custom Function Blocks
Port Referencing Port Number 1 to 16 Module, Slot Number, Port 1 to 3
Memory Usage Must be manually allocated Automatically allocated
Drivers Download as required Merged automatically by Toolbox PLUS
Protocol Support Supported by some ports Supported by all ports (provided hardware
is suitable)
Projects Optional. RTU configurations can be
kept separate or included in a project.
A project must be created before an RTU
configuration can be created. All RTU
configurations are kept in a project.
Kingfisher TCP/IP
or UDP port
number
473 473
Size of event logs 12 bytes 40 bytes
AI-10 input ranges One range for all 8 channels One range per channel

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 151


Kingfisher PLUS+ Protocol
ISaGRAF
TM
processors (CP-30, G30) are designed to be backwards compatible with non-ISaGRAF
TM

processors (PC-1, CP-11, CP-21, LP-1).

ISaGRAF
TM
processors use 16-bit addresses (0-65535) while Non-ISaGRAF
TM
Processors use 8-bit
addresses (0-255). If an RTU network with ISaGRAF
TM
processors only uses RTU addresses less than 256,
then both types of processors are largely compatible for most applications.

An ISaGRAF
TM
processor can handle messages for addresses above 255 while non-ISaGRAF
TM
processor
cannot.

RTU Address Description
0 All RTUs respond to address 0.
1-249 General addresses available to all RTUs
250-255 Reserved for Toolbox 32 / Toolbox PLUS and other PC applications
256-65520 Addresses available for ISaGRAF
TM
processor (CP-30, G30) RTUs
65521-65535 Reserved for Toolbox PLUS and other PC applications

Detailed protocol information can be found in the manual - Kingfisher PLUS+ Protocol - available from
www.cse-semaphore.com/mykingfisher.


Kingfisher Message Structure
Each Kingfisher message has a maximum length of 255 bytes. ISaGRAF
TM
processor modules use two
bytes to store each RTU address while non-ISaGRAF
TM
processor modules use one byte.

[SYSTEM ID][TARGET RTU][NO OF CHARACTERS][INITIATING RTU][VIA RTU][MESSAGE
NO.][FUNCTION CODE] [DATA/ARGUMENTS][CRC]

Number of Bytes Message
Component Non-
ISaGRAF
TM

Processors
ISaGRAF
TM

Processors
Description
SYSTEM ID 1 1 Used to screen and identify incoming messages
TARGET RTU 1 2 Message destination
NO OF
CHARACTERS
1 1 Characters in message excluding System ID and CRC
INITIATING RTU 1 2 Source of the message
VIA RTU 1 2 Relay RTU
MESSAGE NO. 1 1 Sequential Message number. Eg. FF: the first F
indicates the message number. The second F is the
reply number. If the second character is 0, then no reply.
FUNCTION CODE 1 1 Message type as per the protocol
DATA/ARGUMENTS 246 max. 243 max.
CRC 2 2 Ensures data integrity

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 152


Appendix - Semaphore MIB
RTU parameters that are available for query and setting using the SNMP daemon protocol include:
RTU network address (configAddress) and system identifier (configSystem)
RTU hardware modules (rtuModulesTable) and I/O states (rtuIOTable)
Event log information (rtuEventsTable)
Network interface and traffic information
These are all defined in the Semaphore MIB below.

In addition to the Semaphore MIB defined below, Kingfisher CP30 and G30 processors also implement the
Management Information Base for Network Management of TCP/IP based internets (MIB-II) as defined in
RFC document 1213. This allows access to system configuration, network interfaces, connection and
protocol information.

SEMAPHORE-RTU-MIB DEFINITIONS ::= BEGIN

IMPORTS
enterprises,
MODULE-IDENTITY,
OBJECT-TYPE,
Integer32,
TimeTicks,
Unsigned32
FROM SNMPv2-SMI
TimeStamp
FROM SNMPv2-TC
OBJECT-GROUP,
MODULE-COMPLIANCE
FROM SNMPv2-CONF;

semaphore MODULE-IDENTITY
LAST-UPDATED "200706261253Z"
ORGANIZATION "CSE Semaphore"
CONTACT-INFO
"Rob Casey <robc@cse-semaphore.com>"
DESCRIPTION
"Semaphore offers the first IP-based RTU solution that enables complete
integration of SCADA, control and communications functionality in one rugged
package. Our products leverage easy-to-use web technologies and inexpensive
public networks to offer dramatically reduced costs versus traditional SCADA
and PLC systems. In addition, Semaphore systems provide fast implementation
and start-up, minimal training and engineering costs and easy integration with
a vast range of third-party devices. Semaphore is the RTU of choice for those
desiring flexible, proven standard or Internet-based technology with minimal
project delay or risks."
REVISION "200706261253Z"
DESCRIPTION
"Initial Revision of Semaphore RTU MIB."
::= { enterprises 27982 }

semaphoreRTUs OBJECT IDENTIFIER ::= { semaphore 1 }

rtuConfig OBJECT IDENTIFIER ::= { semaphoreRTUs 1 }

configType OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The identifier for the Semaphore RTU product."
::= { rtuConfig 1 }

configAddress OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The network address of the RTU."
DEFVAL { 1 }
::= { rtuConfig 2 }
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 153

configSystem OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The system identifier for the telemetry system - The identifier is used
within the Kingfisher communications protocol as the synchronisation
character for incoming messages. The recommended value for this identifier
is 0xAE (174), except when configuring an RTU to relay radio messages."
DEFVAL { 174 }
::= { rtuConfig 3 }

configName OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The name of the RTU."
::= { rtuConfig 4 }

configDescription OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The high-level, free-form description of the RTU."
::= { rtuConfig 5 }

rtuParams OBJECT IDENTIFIER ::= { semaphoreRTUs 2 }

paramNumberEvents OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of events within the RTU event log. Values less than zero are
indicative that the retrieval of event logs are not supported through SNMP."
DEFVAL { -1 }
::= { rtuParams 1 }

paramNumberAlarms OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of alarms within the RTU. Values less than zero are indicative
that the retrieval of alarm information is not supported through SNMP."
DEFVAL { -1 }
::= { rtuParams 2 }

rtuModulesTable OBJECT-TYPE
SYNTAX SEQUENCE OF RtuModulesEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table of modules installed within RTU."
::= { semaphoreRTUs 3 }

rtuModulesEntry OBJECT-TYPE
SYNTAX RtuModulesEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry within table of modules installed within RTU."
INDEX { modulePosition }
::= { rtuModulesTable 1 }

RtuModulesEntry ::= SEQUENCE {
modulePosition Unsigned32,
moduleType Unsigned32
}

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 154

modulePosition OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The installed position of the module within the RTU rack."
::= { rtuModulesEntry 1 }

moduleType OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The RTU module type."
::= { rtuModulesEntry 2 }

rtuIOTable OBJECT-TYPE
SYNTAX SEQUENCE OF RtuIOEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table of I/O points available within the RTU module."
::= { semaphoreRTUs 4 }

rtuIOEntry OBJECT-TYPE
SYNTAX RtuIOEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry within table of I/O points available within the RTU module."
INDEX { ioIndex }
::= { rtuIOTable 1 }

RtuIOEntry ::= SEQUENCE {
ioIndex Unsigned32,
ioModule Unsigned32,
ioPosition Unsigned32,
ioType INTEGER,
ioEncoding Integer32,
ioValue OCTET STRING,
ioFlags Integer32
}

ioIndex OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Index identifier for I/O points."
::= { rtuIOEntry 1 }

ioModule OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The RTU module associated with the I/O point."
::= { rtuIOEntry 2 }

ioPosition OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The I/O point position within the RTU module."
::= { rtuIOEntry 3 }

ioType OBJECT-TYPE
SYNTAX INTEGER {
internal(0),
input(1),
output(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The I/O point type."
::= { rtuIOEntry 4 }

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 155

ioEncoding OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The I/O point encoding."
::= { rtuIOEntry 5 }

ioValue OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The I/O point value."
::= { rtuIOEntry 6 }

ioFlags OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The I/O point flags."
::= { rtuIOEntry 7 }

rtuEventsTable OBJECT-TYPE
SYNTAX SEQUENCE OF RtuEventsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table of events within RTU."
::= { semaphoreRTUs 5 }

rtuEventsEntry OBJECT-TYPE
SYNTAX RtuEventsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry within table of events within RTU."
INDEX { eventIdentifier }
::= { rtuEventsTable 1 }

RtuEventsEntry ::= SEQUENCE {
eventIdentifier Unsigned32,
eventTimestamp TimeTicks,
eventRTU Integer32,
eventName OCTET STRING,
eventValue OCTET STRING,
eventEncoding Integer32,
eventFlags Integer32,
eventType Integer32,
eventPriority Integer32
}

eventIdentifier OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The unique identifier for the event log entry allowing temporal association of
event logs, separate from event timestamps (which may be affected by time skew
between RTUs and RTU modules)."
::= { rtuEventsEntry 1 }

eventTimestamp OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The timestamp of the event log."
::= { rtuEventsEntry 2 }

eventRTU OBJECT-TYPE
SYNTAX Integer32 (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The RTU with which the event log is associated."
::= { rtuEventsEntry 3 }

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 156

eventName OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..16))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The name of the variable associated with the event log."
::= { rtuEventsEntry 4 }

eventValue OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of the variable associated with the event log."
::= { rtuEventsEntry 5 }

eventEncoding OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The encoding of the variable value associated with the event log."
::= { rtuEventsEntry 6 }

eventFlags OBJECT-TYPE
SYNTAX Integer32 (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Any flags associated with the event log."
::= { rtuEventsEntry 7 }

eventType OBJECT-TYPE
SYNTAX Integer32 (0..31)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The user type of the event log."
::= { rtuEventsEntry 8 }

eventPriority OBJECT-TYPE
SYNTAX Integer32 (0..7)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The user priority of the event log."
::= { rtuEventsEntry 9 }

rtuAlarmsTable OBJECT-TYPE
SYNTAX SEQUENCE OF RtuAlarmsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table of alarms within RTU."
::= { semaphoreRTUs 6 }

rtuAlarmsEntry OBJECT-TYPE
SYNTAX RtuAlarmsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry within table of alarms within RTU."
INDEX { alarmIndex }
::= { rtuAlarmsTable 1 }

RtuAlarmsEntry ::= SEQUENCE {
alarmIndex Unsigned32,
alarmStartTimestamp TimeStamp,
alarmStartStatus INTEGER,
alarmMessage OCTET STRING,
alarmRecipient OCTET STRING,
alarmEndTimestamp TimeStamp,
alarmEndStatus INTEGER
}

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 157

alarmIndex OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Index identifier for alarms."
::= { rtuAlarmsEntry 1 }

alarmStartTimestamp OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Timestamp at the moment alarm condition appears."
::= { rtuAlarmsEntry 2 }

alarmStartStatus OBJECT-TYPE
SYNTAX INTEGER {
noAck(0),
manualAck(1),
autoAck(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Status of alarm handling."
::= { rtuAlarmsEntry 3 }

alarmMessage OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Alarm message or report file name."
::= { rtuAlarmsEntry 4 }

alarmRecipient OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Name of alarm recipient or group."
::= { rtuAlarmsEntry 5 }

alarmEndTimestamp OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Timestamp at the moment alarm condition disappears."
::= { rtuAlarmsEntry 6 }

alarmEndStatus OBJECT-TYPE
SYNTAX INTEGER {
noAck(0),
manualAck(1),
autoAck(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Acknowledgement status of alarm."
::= { rtuAlarmsEntry 7 }


semaphoreProducts OBJECT IDENTIFIER ::= { semaphore 2 }

productKingfisher OBJECT IDENTIFIER ::= { semaphoreProducts 1 }

productTBox OBJECT IDENTIFIER ::= { semaphoreProducts 2 }

semaphoreGroups OBJECT IDENTIFIER ::= { semaphore 3 }

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 158

semaphoreRTUGroup OBJECT-GROUP
OBJECTS {
configType,
configAddress,
configSystem,
configName,
configDescription,
paramNumberEvents,
paramNumberAlarms,
modulePosition,
moduleType,
ioIndex,
ioModule,
ioPosition,
ioType,
ioEncoding,
ioValue,
ioFlags,
eventIdentifier,
eventTimestamp,
eventRTU,
eventName,
eventValue,
eventEncoding,
eventFlags,
eventType,
eventPriority,
alarmIndex,
alarmStartTimestamp,
alarmStartStatus,
alarmMessage,
alarmRecipient,
alarmEndTimestamp,
alarmEndStatus
}
STATUS current
DESCRIPTION
"Managed object group for SEMAPHORE-RTU-MIB module"
::= { semaphoreGroups 1 }

semaphoreCompliances MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"Module compliance information for MIB validation purposes"

MODULE
MANDATORY-GROUPS { semaphoreRTUGroup }
GROUP semaphoreRTUGroup
DESCRIPTION
"Group for RTU related managed objects"
::= { semaphore 4 }

END

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 159

Appendix - Redundancy
Redundancy allows RTUs installed in critical applications to continue operating normally when a power
supply, a processor or a communications link fails. Each RTU can also be monitored and controlled by two or
more PCs running SCADA software as detailed in the topic Redundant PCs.


Redundant Processor (odd slot address)
Processor (even slot address)

CP-30


CP-30 PS-11

Standby Active Radio
Standby Redundant Radio
PS-11
Redundant Power Supply
Power Supply
Active Radi o
Redundant Radio
RADIO
RADIO
RADI O
RADI O



Redundant Processors
Two processor modules can provide redundancy by one module operating as the active processor and the
other module operating as the passive processor.

The active processor scans the I/O, runs the logic and manages communications. The passive processor
remains in passive (standby) mode ready to switch to active mode if the active processor fails. Only the
active processor initiates or responds to messages.

To keep the passive processor up to date, logic information, event logs and communication indices are
regularly updated in the passive processor while the active processor is running.

One 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
initially the active processor and the processor installed in the odd-numbered slot is initially the passive
processor.

The F3 LED indicates active or passive mode of each processor. When steady, the processor is in ACTIVE
mode. When flashing (1 Hz), the processor is in PASSIVE mode.

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.

The active processor regularly updates the passive processor with the following items:
ISaGRAF symbols (dictionary variables) that were modified during the last cycle of logic execution. This
includes function block parameters.
New Kingfisher and DNP3 event logs. The values, flags and time stamps as recorded in the active
processor module are all copied. Note: event logs recorded before the last power cycle are not copied to
the passive processor. If all the event logs are cleared in the active processor (eg. using logic), the event
logs in the passive processor will also be cleared.
DNP3 event list indices
Time is synchronised every second. Note: protocols are only enabled on the passive processor after
receiving the first time synchronisation from the active processor. This ensures that I/O points have been
read from the hardware modules before the protocol is enabled.

The passive processor will switch to active mode if communications stop on the backplane for 1500 ms (if
the passive processor is in an odd-numbered slot) or 500ms (if the passive processor is in an even-
numbered slot). This could be caused by:
Removal, reset or failure of the active processor module
Download of the configuration, logic or firmware to the active processor

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 160

Configuring Redundant Processors
Ensure one processor is installed in an even slot on the backplane and the other processor is installed in
an odd slot. The even-slot processor will become the active processor and the odd-slot processor will
become the passive processor when the RTU is powered up.
After creating a new CP-30 RTU configuration, add a second CP-30 module to the RTU. The CP-30 in
the even-slot will be labeled CP-30 Active and the processor in the odd-slot will be labeled CP-30
Passive by Toolbox PLUS.
A single configuration can be created for both processors or separate configurations can be created. To
configure separate processors, ensure the Switch button is enabled by selecting the Mirror button. The
processor shown in bold can then be configured. To configure the other processor, select the Switch
button. To use a single configuration for both processors, select the Mirror button (the Switch button will
disappear and both processors will be displayed in regular text).
Once the RTU properties have been configured, download the configuration(s) into both processors.
Note: a single configuration can be downloaded into both processors provided that both processors are
not connected to the same Ethernet network (eg. both processors cannot be connected to the one LAN if
they have the same IP address since both processors will reply to the same message at the same time).


Redundant Power Supplies
Two PS-xx power supplies can be plugged into a backplane and both will run normally, sharing the power
load. If one power supply is removed or fails, the other power supply will supply the complete power load. An
ISaGRAF
TM
program is not required to manage the power supplies.

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) is read and the two figures are totalled.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 161

Redundant Communications
It is possible to change the port and/or route used to communicate with a remote RTU if there is a
communications fail.

Note: communications ports on the passive processor cannot be used for redundant communications since
these ports will only operate when the passive processor changes into the active processor.

Redundant Ports
The example below shows how to use CP-30 port 2 as the active port and CP-30 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 failed communication attempts to RTU7. The configuration will keep switching
between ports if communications continue to fail.


CP30
Port 2
RTU1
Active
Redundant
Port 3
RTU7
RADIO RADIO
RADIO


A number of custom function blocks are used below. Please see the topic ISaGRAF Custom Function
Blocks for function block details and parameter types for Get Route, Get Communication Statistics, Set
Route, Reset Communication Statistics and Rx Data.

In the logic below, RouteError, StatsError and ErrorStatus and LogicStatus are BOOL variables.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 162





The RTU7Registers variable used above is defined as follows:



The initial value of RTU7Registers allows the KFR1, KFR2 and KFR100 variables to be polled from the
remote RTU.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 163

Redundant Routes
The example below shows how to swap between direct and indirect comms routes to RTU7 using the
Kingfisher protocol. Initially RTU1 is configured with a direct route to RTU7 using port 2. Note: to prevent
RTU7 receiving and responding to indirect radio messages that are routed through RTU10, both RTU7 and
RTU10 should have unique System IDs (as illustrated below).


CP30
Direct Active Route
Indirect Redundant Route
CP30
RTU7 RTU1
CP30
RTU10
RADIO RADIO
RADIO
SYSTEM ID=AE
SYSTEM ID=A2
SYSTEM ID=A1


RTU1 Properties:



A number of custom function blocks are used below. Please see the topic ISaGRAF Custom Function
Blocks for function block details and parameter types for Get Route, Get Communication Statistics, Set
Route, Reset Communication Statistics and Rx Data.

In the logic below, RouteError, StatsError and ErrorStatus and LogicStatus are BOOL variables.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 164



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 165




The RTU7Registers variable used above is defined as follows:



The initial value of RTU7Registers allows the KFR1, KFR2 and KFR100 variables to be polled from the
remote RTU.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 166


Redundant PCs
Two or more PCs running SCADA or Toolbox PLUS 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, the other PCs will
continue to operate normally.


CP30 MC30 PS11
SCADA
CP30 MC30 PS11
SCADA
Ethernet
Crossover
Cable
RS232
Serial
Crossover
Cable
SCADA
RS485
Serial
Cable
Ethernet
Straight
Through
Patch Cables


Ethernet
Network
SCADA
SCADA
SCADA



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-30/MC-30 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.

The example below configures Toolbox PLUS to use address 65534. Toolbox PLUS uses address 65535 by
default.




Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 167

Appendix - Creating Variables Using Excel
Dictionary variables in an RTU configuration can be exported to a Microsoft Excel spreadsheet. Variables
can then be edited and created using Excel. When the changes are complete, the spreadsheet is imported
back into the RTU configuration, overwriting any existing variables. This method can be very useful for
creating large quantities of variables with custom settings.


Exporting Variables
Select the RTU name in the navigation pane containing
the variables to export
Select File, Export, To Excel
Select a folder and filename to export the variables to


Importing Variables
Select the RTU name in the navigation pane to store the
imported variables in
Select File, Import, From Excel
Select the Excel spreadsheet (<Filename>.xls) to import
the variables from. Note: the spreadsheet must have the
same columns as the spreadsheet created by the Export
function above.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 168

Importing Notes
Before importing variables from an Excel spreadsheet into an RTU configuration, Toolbox PLUS
extensively checks the spreadsheet for errors. If there are any errors, all variables will not be imported.
When importing IO variables, the corresponding IO module must already exist in the RTU configuration.
If an IO variable is assigned to a slot or channel that is not already defined in the RTU configuration,
variables will not be imported.
When errors are displayed, the row number in the spreadsheet is also displayed so that the error can be
located. Examples:



Rows containing a blank SymbolName (variable name) are ignored


Spreadsheet Format
The spreadsheet is divided into four sections of columns as follows:

The White columns (A to L) contain basic variable parameters


The Yellow columns (M to P) contain optional IO point parameters if the variable is to be linked to an IO
Point


The Blue columns (Q to Z) contain optional parameters for DNP3 variables. These parameters are only read
if the variable has a valid name (SymbolName) and valid data type (SymbolType). For acceptable settings
please see the appendix RTU Data, Protocols, DNP3 Data.

The Green column (AA) contains optional parameters for IEC variables. These parameters are only read if
the variable has a valid name (SymbolName) and valid data type (SymbolType).



Additional columns (AB onwards) can be used for comments and calculations as needed. Columns AB
onwards will be ignored when the spreadsheet is imported back into Toolbox PLUS.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 169

Spreadsheet Parameters
Parameter Description Notes
SymbolName The variable name Maximum length of 128 characters
Only letters, numbers and underscore ( _ )
allowed
Cannot start with a double or single underscore
Cannot start with a number
Cannot be an ISaGRAF Reserved Name
Each variable must have a unique name
Comment A comment for the
variable
Maximum length of 128 characters
SymbolType The data type Must be a type defined and usable within
ISaGRAF
Scope Describes where this
variable is available for
use
The text must be either:
The word Global, which indicates that the
variable can be used in all Functions,
Function Blocks and Programs
The name of a specific Function, Function
Block or Program that the Variable can only
be used in
StringSize The maximum number of
characters in a String
variable
If the variable is not a String, the value must be 0
Attribute A Read Only, Write Only
or Read and Write
variable
Must be: Read, Write or Free (read and write)
Direction Describes the flow of IO
data
If this is not attached to an IO Point, the value
must be Internal. Otherwise, the value must be
Input or Output
Group The dictionary Group Maximum length of 128 characters. If the Group
does not already exist, a new Group will be
created.
Retain Retain variable value
after a reboot
Set Retain to 1 to retain the variable 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
String arrays are entered as: first
string,second string,third string
This column is formatted as Text. Cells can be
reformatted as Numeric to allow Excel
calculations. To reformat, select cells or column J
and then select the Excel menu Format, Cells.
From the Number tab, select Number. Once
editing is complete, the cells or column must be
re-formatted back to Text before the spreadsheet
is imported into Toolbox PLUS.
Start Index First index in an array Set to 0 when not using an array. A non-zero
value specifies an array.
End Index Last index in an array Set to 0 when not using an array. Last index must
be greater than or equal to Start Index.
Slot The slot of the IO Point
module
On a G30 RTU, Slot is always 1. If the variable is
not attached to an IO Point, the value can be set
to 1 or left blank.
Card The number of the Option
Card on the Module
If there is no Option Card, as is the case on CP-
30 modules, the value is 1.
G30 MX cards are on option card 2.
G30 power supplies are on option card 3.
If the variable is not attached to an IO Point, the
Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 170

value can be set to either -1, or left blank.
IOType The type of IO Point Must be: AI, AO, DI, or DO
Channel The IO channel number If the variable is not attached to an IO Point, the
value can be set to -1 or left blank
DnpClass The Class of the DNP
variable
Must be 0, 1, 2 or 3
DnpFrozenClass Frozen Class Must be 0, 1, 2 or 3
Acceptable values depend on the IO Type of the
variable as follows:
IO Type Static
Variation
Binary Input (BI) 1, 2
Binary Output (BO) 1, 2
Binary Counter (BC) 1, 2, 5, 6
Analog Input (AI), IOPOINT_D 1, 2, 3, 4
Analog Input (AI), IOPOINT_R 5
Analog Output (AO), IOPOINT_D 1, 2
DnpStaticVariation Static Variation
Analog Output (AO), IOPOINT_R 3
DnpFrozenStaticVariation Frozen Static Variation Only used by Binary Counter (BC) IO Types.
Must be 1, 2, 5, 6, 9, or 10. All other IO Types
ignore this column.
Acceptable values depend on the IO Type of the
variable as follows:
IO Type Event
Variation
Binary Input (BI) 1, 2, 3
Binary Output (BO) 1, 2
Binary Counter (BC) 1, 2, 5, 6
Analog Input (AI), IOPOINT_D 1, 2, 3, 4
Analog Input (AI), IOPOINT_R 5, 7
Analog Output (AO), IOPOINT_D 1, 2, 3, 4
DnpEventVariation Event Variation
Analog Output (AO), IOPOINT_R 5, 7
DnpFrozenEventVariation Frozen Event Variation Only used by Binary Counter (BC) IO Types.
Must be 1, 2, 5, or 6. All other IO Types ignore
this column.
DnpDeadband The change in value
required to trigger an
Event
Either a percentage value or a raw value
depending on setting of DnpRawLimits
DnpHighLimit Highest value allowed for
this variable
Higher settings are ignored and the value is
limited to this setpoint. Either a percentage value
or a raw value can be specified depending on the
setting of DnpRawLimits.
DnpLowLimit Lowest value allowed for
this variable
Lower settings are ignored and the value is
limited to this setpoint. Either a percentage value
or a raw value can be specified depending on the
setting of DnpRawLimits.
DnpRawLimits Percentage or Raw
values
Type of values used for DnpDeadband,
DnpHighLimit, and DnpLowLimit. 0 = Percentage,
1 = Raw.
IecGroup IEC variable group An integer with range 0 to 16. A value of 0
represents a General group.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 171

Appendix - RTU Data
All data in Kingfisher PLUS+ RTUs is stored as named variables. Space is automatically allocated in RTU
memory according to the number of variables that are created and the size of each variable (eg. if it is a
digital input or a 32 bit counter)

ISaGRAF
TM
programs can use any variables that have been created in the dictionary.

Data is available for IO Modules, IO Cards (G30), System Registers and Protocols.


RTU Data - IO Modules
When an IO module is added to an RTU, variables are automatically created in the dictionary that
correspond to each input, output and data register (eg. counter) available from that module.

Data is available for the following modules: AI-1/AI-4, AI-10, AO-2, AO-3, DI-1, DI-5, DI-10, DO-1, DO-2/DO-
5/DO-6, IO-2, IO-3, IO-4, PS-11/PS-21.

For all the IO variables shown below, ss=slot number 01-64.

AI-1 or AI-4
(Variable Names are shown for the AI1 below)

Data Description Variable Name R/W Notes
Analog Input Ch1 SLssAI1AI1 R
Analog Input Ch2 SLssAI1AI2 R
Analog Input Ch3 SLssAI1AI3 R
Analog Input Ch4 SLssAI1AI4 R
Analog Input Ch5 SLssAI1AI5 R
Analog Input Ch6 SLssAI1AI6 R
Analog Input Ch7 SLssAI1AI7 R
Analog Input Ch8 SLssAI1AI8 R
Raw scale 0-32760 = 0-100%


AI-10
Data Description Variable Name R/W Notes
Analog Input Ch1 SLssAI10AI1 R
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
Analog Input Ch7 SLssAI10AI7 R
Analog Input Ch8 SLssAI10AI8 R
Raw scale: Signed -32768 to +32767
The sign bit is set when the current or voltage input is
negative.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 172


AO-2
Data Description Variable Name R/W Notes
Analog Output Ch1 SLssAO2AO1 R/W
Analog Output Ch2 SLssAO2AO2 R/W
Analog Output Ch3 SLssAO2AO3 R/W
Analog Output Ch4 SLssAO2AO4 R/W
Raw scale 0-32760 = 0-100%


AO-3
Data Description Variable Name R/W Notes
Analog Output Ch1 SLssAO3AO1 R/W
Analog Output Ch2 SLssAO3AO2 R/W
Analog Output Ch3 SLssAO3AO3 R/W
Analog Output Ch4 SLssAO3AO4 R/W
Raw scale 0-32760 = 0-100%
Ch1 Open Loop SLssAO3DI1 R
Ch2 Open Loop SLssAO3DI2 R
Ch3 Open Loop SLssAO3DI3 R
Ch4 Open Loop SLssAO3DI4 R
1 = Open Loop


DI-1
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssDI1DI1 R
Digital Input Ch2 SLssDI1DI2 R
Digital Input Ch3 SLssDI1DI3 R
Digital Input Ch4 SLssDI1DI4 R
Digital Input Ch5 SLssDI1DI5 R
Digital Input Ch6 SLssDI1DI6 R
Digital Input Ch7 SLssDI1DI7 R
Digital Input Ch8 SLssDI1DI8 R
Digital Input Ch9 SLssDI1DI9 R
Digital Input Ch10 SLssDI1DI10 R
Digital Input Ch11 SLssDI1DI11 R
Digital Input Ch12 SLssDI1DI12 R
Digital Input Ch13 SLssDI1DI13 R
Digital Input Ch14 SLssDI1DI14 R
Digital Input Ch15 SLssDI1DI15 R
Digital Input Ch16 SLssDI1DI16 R



Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 173

DI-5
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssDI5DI1 R
Digital Input Ch2 SLssDI5DI2 R
Digital Input Ch3 SLssDI5DI3 R
Digital Input Ch4 SLssDI5DI4 R
Digital Input Ch5 SLssDI5DI5 R
Digital Input Ch6 SLssDI5DI6 R
Digital Input Ch7 SLssDI5DI7 R
Digital Input Ch8 SLssDI5DI8 R
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
Counts pulses on the first 4 channels. Can count up to
10kHz on channels 1 and 2 and can count up to 255Hz on
channels 3 and 4.

If the maximum pulse rate is exceeded on channels 3 and 4
(>255 Hz), each counter will contain the lowest 8 bits of the
actual pulse rate. Results are unpredictable at pulse rates
greater that 1 kHz

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 174


DI-10
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssDI10DI1 R
Digital Input Ch2 SLssDI10DI2 R
Digital Input Ch3 SLssDI10DI3 R
Digital Input Ch4 SLssDI10DI4 R
Digital Input Ch5 SLssDI10DI5 R
Digital Input Ch6 SLssDI10DI6 R
Digital Input Ch7 SLssDI10DI7 R
Digital Input Ch8 SLssDI10DI8 R
Digital Input Ch9 SLssDI10DI9 R
Digital Input Ch10 SLssDI10DI10 R
Digital Input Ch11 SLssDI10DI11 R
Digital Input Ch12 SLssDI10DI12 R
Digital Input Ch13 SLssDI10DI13 R
Digital Input Ch14 SLssDI10DI14 R
Digital Input Ch15 SLssDI10DI15 R
Digital Input Ch16 SLssDI10DI16 R
Counter 1 SLssDI10AI1 R/W
Counter 2 SLssDI10AI2 R/W
Counter 3 SLssDI10AI3 R/W
Counter 4 SLssDI10AI4 R/W
Counter 5 SLssDI10AI5 R/W
Counter 6 SLssDI10AI6 R/W
Counter 7 SLssDI10AI7 R/W
Has configurable Frequency or Pulse or Quadrature
counting and Sequence-of-Events recording (using event
logs).

Counters 1-7 can count Frequency (0-10kHz max.) or Total
Pulses (0-65535) or Quadrature Count (0-65535) for any
configured channel(s) (as configured using Toolbox PLUS)


DO-1
Data Description Variable Name R/W Notes
Digital Output Ch1 SLssDO1DO1 R/W
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-5 / DO-6
Data Description Variable Name R/W Notes
Digital Output Ch1 SLssDO2DO1 R/W
Digital Output Ch2 SLssDO2DO2 R/W
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
Digital Output Ch12 SLssDO2DO12 R/W
Digital Output Ch13 SLssDO2DO13 R/W
Digital Output Ch14 SLssDO2DO14 R/W
Digital Output Ch15 SLssDO2DO15 R/W
Digital Output Ch16 SLssDO2DO16 R/W
DO-2 has relays in the module
DO-5 and DO-6 have transistor outputs for driving an
external relay board.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 175

IO-2
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssIO2DI1 R
Digital Input Ch2 SLssIO2DI2 R
Digital Input Ch3 SLssIO2DI3 R
Digital Input Ch4 SLssIO2DI4 R
Digital Input Ch5 SLssIO2DI5 R
Digital Input Ch6 SLssIO2DI6 R
Digital Input Ch7 SLssIO2DI7 R
Digital Input Ch8 SLssIO2DI8 R
Digital Output Ch1 SLssIO2DO1 R/W
Digital Output Ch2 SLssIO2DO2 R/W
Digital Output Ch3 SLssIO2DO3 R/W
Digital Output Ch4 SLssIO2DO4 R/W
Digital Output Ch5 SLssIO2DO5 R/W
Digital Output Ch6 SLssIO2DO6 R/W
Digital Output Ch7 SLssIO2DO7 R/W
Digital Output Ch8 SLssIO2DO8 R/W



IO-3
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssIO3DI1 R
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
Analog raw scale 0-32760 = 0-100%


IO-4
Data Description Variable Name R/W Notes
Digital Input Ch1 SLssIO4DI1 R
Digital Input Ch2 SLssIO4DI2 R
Digital Input Ch3 SLssIO4DI3 R
Digital Input Ch4 SLssIO4DI4 R
Digital Input Ch5 SLssIO4DI5 R
Digital Input Ch6 SLssIO4DI6 R
Digital Input Ch7 SLssIO4DI7 R
Digital Input Ch8 SLssIO4DI8 R
Digital Output Ch1 SLssIO4DO1 R/W
Digital Output Ch2 SLssIO4DO2 R/W
Analog Input Ch1 SLssIO3AI1 R
Analog Input Ch2 SLssIO3AI2 R
Analog raw scale 0-32760 = 0-100%

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 176


PS-11 or PS-21
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=0-32736, Eng. Units= -4 to +4 A
Current is positive when charging. Negative when battery is
discharging.
Total Current SLssPS11AI3 R Raw Scale=0-32736, Eng. Units= -4 to +4 A
Total current supplied by the power supply to the RTU
modules and battery.
Battery Temp. SLssPS11AI4 R Raw Scale=0-32736
Eng. Units= -20 to +80 C, 0 C = 6547
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 Temperature SLssPS11AI7 R Raw Scale=0-32736,
Eng. Units= -20 to +80 C, 0 C = 6547
Power ON SLssPS11DI1 R 1 = AC (PS-11) or DC (PS-21) 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 (ie. SLssPS11DI1=0), a battery is
present if the RTU is still running!
Power Supply Type SLssPS11DI4 R 1 = PS-21, 0 = PS-11
Float State SLssPS11DI5 R 1 = float state
Charge State SLssPS11DI6 R 1 = charge state
Boost State SLssPS11DI7 R 1 = boost state
Temperature Sensor
Error
SLssPS11DI8 R 1 = sensor error
Manual Power
Control
SLssPS11DO1 R/W 0 = automatic control (default)
1 = manual control. Allows manual control of Radio and
24V power (and Mains Supply for PS-11)
Radio power OFF SLssPS11DO2 R/W 1 = radio OFF (if SLssPS11DO1=1)
Aux 24V OFF SLssPS11DO3 R/W 1 = 24V OFF (if SLssPS11DO1=1)
Inhibit AC Supply
Input Circuit (PS-11
only)
SLssPS11DO4 R/W 1 = inhibit AC (if SLssPS11DO1=1)

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 177

RTU Data - IO Cards
When an IO or power supply card is added to the G30, variables are automatically created in the dictionary
that correspond to each input, output and data register (eg. counter) available from that card.

Data is available for the following cards: IOD-MX2, IOD-MX3, IOD-MX4, PSO-ACR and PSO-DCU.


IOD-MX2
Data Description Variable Name R/W Notes
Analog Input Ch1 SL01MX2AI1 R
Analog Input Ch2 SL01MX2AI2 R
Analog Input Ch3 SL01MX2AI3 R
Analog Input Ch4 SL01MX2AI4 R
Analog Input Ch5 SL01MX2AI5 R
Analog Input Ch6 SL01MX2AI6 R
Analog raw scale 0-65534 = 0-100%
Digital Input Ch1 SL01MX2DI1 R
Digital Input Ch2 SL01MX2DI2 R
Digital Input Ch3 SL01MX2DI3 R
Digital Input Ch4 SL01MX2DI4 R
Digital Input Ch5 SL01MX2DI5 R
Digital Input Ch6 SL01MX2DI6 R
Digital Input Ch7 SL01MX2DI7 R
Digital Input Ch8 SL01MX2DI8 R
Digital Input Ch9 SL01MX2DI9 R
Digital Input Ch10 SL01MX2DI10 R
Digital Input Ch11 SL01MX2DI11 R
Digital Input Ch12 SL01MX2DI12 R
Digital Input Ch13 SL01MX2DI13 R
Digital Input Ch14 SL01MX2DI14 R

Digital Output Ch1 SL01MX2DO1 R/W
Digital Output Ch2 SL01MX2DO2 R/W
Digital Output Ch3 SL01MX2DO3 R/W
Digital Output Ch4 SL01MX2DO4 R/W
Digital Output Ch5 SL01MX2DO5 R/W
Digital Output Ch6 SL01MX2DO6 R/W
Digital Output Ch7 SL01MX2DO7 R/W
Digital Output Ch8 SL01MX2DO8 R/W


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 178


IOD-MX3
The MX3 has the same variables as an MX2 (except the variable name uses MX3 instead of MX2) and also
has two analog outputs as detailed below.

Data Description Variable Name R/W Notes
Analog Input Ch1 SL01MX3AI1 R
Analog Input Ch2 SL01MX3AI2 R
Analog Input Ch3 SL01MX3AI3 R
Analog Input Ch4 SL01MX3AI4 R
Analog Input Ch5 SL01MX3AI5 R
Analog Input Ch6 SL01MX3AI6 R
Analog raw scale 0-65534 = 0-100%
Analog Output Ch1 SL01MX3AO1 R/W
Analog Output Ch2 SL01MX3AO2 R/W
Analog raw scale 0-65534 = 0-100%
Digital Input Ch1 SL01MX3DI1 R
Digital Input Ch2 SL01MX3DI2 R
Digital Input Ch3 SL01MX3DI3 R
Digital Input Ch4 SL01MX3DI4 R
Digital Input Ch5 SL01MX3DI5 R
Digital Input Ch6 SL01MX3DI6 R
Digital Input Ch7 SL01MX3DI7 R
Digital Input Ch8 SL01MX3DI8 R
Digital Input Ch9 SL01MX3DI9 R
Digital Input Ch10 SL01MX3DI10 R
Digital Input Ch11 SL01MX3DI11 R
Digital Input Ch12 SL01MX3DI12 R
Digital Input Ch13 SL01MX3DI13 R
Digital Input Ch14 SL01MX3DI14 R

Digital Output Ch1 SL01MX3DO1 R/W
Digital Output Ch2 SL01MX3DO2 R/W
Digital Output Ch3 SL01MX3DO3 R/W
Digital Output Ch4 SL01MX3DO4 R/W
Digital Output Ch5 SL01MX3DO5 R/W
Digital Output Ch6 SL01MX3DO6 R/W
Digital Output Ch7 SL01MX3DO7 R/W
Digital Output Ch8 SL01MX3DO8 R/W


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 179


IOD-MX4
Data Description Variable Name R/W Notes
Digital Input Ch1 SL01MX4DI1 R
Digital Input Ch2 SL01MX4DI2 R
Digital Input Ch3 SL01MX4DI3 R
Digital Input Ch4 SL01MX4DI4 R
Digital Input Ch5 SL01MX4DI5 R
Digital Input Ch6 SL01MX4DI6 R
Digital Input Ch7 SL01MX4DI7 R
Digital Input Ch8 SL01MX4DI8 R
Digital Input Ch9 SL01MX4DI9 R
Digital Input Ch10 SL01MX4DI10 R
Digital Input Ch11 SL01MX4DI11 R
Digital Input Ch12 SL01MX4DI12 R
Digital Input Ch13 SL01MX4DI13 R
Digital Input Ch14 SL01MX4DI14 R
Digital Input Ch15 SL01MX4DI15 R
Digital Input Ch16 SL01MX4DI16 R

Digital Output Ch1 SL01MX4DO1 R/W
Digital Output Ch2 SL01MX4DO2 R/W
Digital Output Ch3 SL01MX4DO3 R/W
Digital Output Ch4 SL01MX4DO4 R/W
Digital Output Ch5 SL01MX4DO5 R/W
Digital Output Ch6 SL01MX4DO6 R/W
Digital Output Ch7 SL01MX4DO7 R/W
Digital Output Ch8 SL01MX4DO8 R/W
Digital Output Ch9 SL01MX4DO9 R/W
Digital Output Ch10 SL01MX4DO10 R/W
Digital Output Ch11 SL01MX4DO11 R/W
Digital Output Ch12 SL01MX4DO12 R/W
Digital Output Ch13 SL01MX4DO13 R/W
Digital Output Ch14 SL01MX4DO14 R/W
Digital Output Ch15 SL01MX4DO15 R/W
Digital Output Ch16 SL01MX4DO16 R/W


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 180


PSO-ACR
PSO-DCU
Data
Description
ACR Variable
Name
DCU Variable
Name
R/W Notes
Supply Voltage SL01ACRAI1 SL01DCUAI1 R ACR: The DC voltage (V) supplied to the G30 and
option cards (typically 12V) and used to charge the
battery. This voltage is sourced from the battery if
the Mains Supply is Off.
DCR: The DC Input Supply voltage.
Supply Current SL01ACRAI2 SL01DCUAI2 R Current (A) supplied by the ACR power supply or
External Supply (DCU) to the G30 and battery.
Battery Current SL01ACRAI3 N/A R ACR only: Current (A) out of battery (ie. when
discharging). Note: battery current is negative
when charging.
Internal
Temperature
SL01ACRAI4 SL01DCUAI4 R Temperature (C) inside the G30.
External
Temperature
SL01ACRAI5 SL01DCUAI5 R Temperature (C) from the external sensor (if
connected)
Charging Level SL01ACRAO1 N/A R/W ACR only: Battery Charging Level (0 to 100.0 %)
Supply OK SL01ACRDI1 SL01DCUDI1 R DC Supply voltage status: 1=OK, 0=Overload
Auxiliary OK SL01ACRDI2 SL01DCUDI2 R Auxiliary output status: 1=OK, 0=Overload
Mains Detected SL01ACRDI3 N/A R ACR only: 1=Mains Supply Detected, 0=No Mains
Supply.
Battery Charging SL01ACRDI4 N/A R ACR only: 1=Charging, 0=Not charging
Manual Override SL01ACRDO1 SL01DCUDO1 R/W 1=Manual control of outputs
0=Automatic control [default]
RTU Power SL01ACRDO2 SL01DCUDO2 R/W 1=Enable [default], 0=Disable. Caution! If RTU
Power is disabled, the G30 will shut down until the
power supply card is manually switched off and on
again.
Auxiliary Out
Enable
SL01ACRDO3 SL01DCUDO3 R/W 1=Enable [default], 0=Disable

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 181


RTU Data - System Registers
The ISaGRAF
TM
system also provides a number of variables that may be used to determine information
about the system.

Variable Name * Read/Write Type Description
_ _SYSVA_RESNAME
R STRING Resource (application) name, maximum length
255 characters
_ _SYSVA_SCANCNT
R DINT Input scan counter
_ _SYSVA_CYCLECNT
R DINT Cycle counter
_ _SYSVA_KVBPERR
R/W BOOL Kernel variable binding producing error
_ _SYSVA_KVBCERR
R/W BOOL Kernel variable binding consuming error
_ _SYSVA_TCYCYCTIME
R/W TIME Programmed cycle time
_ _SYSVA_TCYCURRENT
R TIME Current cycle time
_ _SYSVA_TCYMAXIMUM
R TIME Maximum cycle time since last start
_ _SYSVA_TCYOVERFLOW
R DINT Number of cycle overflows
_ _SYSVA_RESMODE
R SINT Resource execution mode:
-1:fatal error, 0:no resource available, 2:ready to
run, 3:run in real time, 4:run in cycle by cycle,
5:run with SFC breakpoint encountered,
7:stopped in stepping mode
_ _SYSVA_CCEXEC
W BOOL Execute one cycle when application is in cycle
by cycle mod
_ _SYSVA_WNGCMPTNM
R STRING Warning component name
_ _SYSVA_WNGCMD
R/W SINT Warning command. Set it to 1 to get next
warning
_ _SYSVA_WNGARG
R DINT Warning argument
_ _SYSVA_WNGNUM
R DINT Warning number
* The two underscore characters used at the beginning of the variable name do not have a space between them.

Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 182


RTU Data - Protocols
Variables for the Kingfisher, Modbus and DNP3 protocols are described below. Please see the topic
Dictionary Multiple Variables to create variables for each of these protocols.


Kingfisher Data
Kingfisher Local Register Variables
Variables can be created that correspond to local registers (16-bit) as used in non-ISaGRAF
TM
processor
modules (PC-1, CP-11, CP-21 and LP-1/2/3). Local Register Variables must already exist in the Dictionary
before Local Registers Variables can be used in logic.

Kingfisher local register variables have the format: KFRx

Kingfisher Local Register variables use the DINT data type in ISaGRAF
TM
.

Parameter Description
KF Indicates that it is a Kingfisher variable
R Indicates that it is a local register variable
x The register number (1 to 9999) without leading zeros.

Example
Local register 315, Kingfisher variable = KFR315


Kingfisher Network Register Variables
Local Register Variables polled or received from a remote Kingfisher RTU will only be stored in the local RTU
if Network Register Variables have been manually created for that data.

Kingfisher Network Register Variables have the format: KFrNx

Kingfisher Network Register Variables use the DINT data type in ISaGRAF
TM
.

Parameter Description
KF Indicates that it is a Kingfisher variable
r The address of the network (remote) RTU (1 to 65535). No leading zeros.
N Network register variable
x The register number (1 to 9999) without leading zeros.

Example
Local register 210 received from RTU17, stored in variable = KF17N210


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 183

Modbus Data
Modbus variables have the format: MODTx or MODrTx

Data polled or received from a remote Modbus device will only be stored in the local RTU if variables have
been manually created for that data.

All Modbus variables use the DINT data type in ISaGRAF
TM
. When using Modbus over Ethernet (Modbus
TCP), the Modbus Ethernet port number is 502. Modbus extended addressing is supported allowing up to
65,535 data points of each type.

Parameter Description
MOD Indicates that it is a Modbus variable
r The address of the remote Modbus device (1 to 65535) without leading zeros.
This address is not required for local Modbus variables. Only the lower byte of the
address (1-255) is used in outgoing Modbus messages. Incoming Modbus data is
stored in variables corresponding to the one byte address (1-255).
Variable type Description Modbus Address Range
C Coil 000,001 to 065,535
D Discrete input 100,001 to 165,535
H Holding register 400,001 to 465,535
T
I Input register 300,001 to 365,535
x The variable number (1 to 65535) without leading zeros.

Example
Modbus holding register 256 (Modbus address 400,256) for remote Modbus device 7. Modbus variable =
MOD7H256.


Toolbox PLUS User Manual 3.8.4 www.cse-semaphore.com/mykingfisher Page 184

DNP3 Data
Local DNP3 variables are automatically created in the Dictionary when the DNP3 protocol is enabled on a
port and one or more DNP3 objects are configured.

Data polled from a remote DNP3 device will only be stored in the local RTU if variables have been manually
created for that data.

DNP3 variables have the format: DNPTTx or DNPrTTx

Parameter Description
DNP Indicates that it is a DNP3 variable
r The address of the remote DNP3 device (1 to 65535) without leading zeros. This
address is not required for local DNP3 variables.
DNP3 object type ISaGRAF
TM
Data Type
BI Binary input IOPOINT_B (binary)
BO Binary output IOPOINT_B (binary)
BC Binary counter IOPOINT_D (double integer)
AI Analog input IOPOINT_D or IOPOINT_R (real)
TT
AO Analog output IOPOINT_D or IOPOINT_R (real)
x The variable number (1 to 65535) without leading zeros.

Example
Binary input 215 for remote DNP device 46. DNP variable = DNP46BI215