This README.HTML file documents the changes made to the ScadaWorks development
kit, a product of Industrial Control Links, Inc. of Auburn
- Changed FTP transfers to set the FTP fail flag to true and not retry
when a source file does not exist on the local side.
- Added TrigInitDelaySet() to holdoff the initialization of triggers
- Added incremental and duration retrigger options to RTC triggers.
- Added array support in ISaGRAF REDUNDNT block.
- Added Bricknet access to Digital Output PWM registers on Microbricks
that support the feature.
- Added ability to disable automatic "makes" in ISaGRAF
when programs are downloaded.
- Added HTML Help to all controls, menus as well as making the manuals
available on-line. Expanded manual, updated screen shots, added ISaGRAF
ICL functions section as well as a hierarchy overview section.
- Quickstart guides are also in HTML Help format.
- Added serial TUI mouse navigation for those TUI controls that support
- Added self-triggering Network Events to all master protocols--not
just Modbus Master.
- Added DNS retry and retry time parameters to the Node | Settings
| Ethernet/Serial IP tab.
- Changed ISaGRAF data memory model to allow for larger than 64K program
control files. Limit is now available memory in the controller.
- Advanta was not configured to properly detect when the Real Time
Clock battery was bad. Reading may have been arbitrary.
- Thermal type devices that supported negative ranges would not read
- In the dialer feature, long messages would cause a sample overflow.
This manifested itself as playing the remaining samples in the wave
- Timings between phone numbers and phone number lists were not being
set making it impossible to pause between calls.
- Netevents configured as "Regmode | Auto" were always delivered
as signed numbers.
- Telnet TUI management on different TCP/IP port numbers did not listen
- TUI fields get shifted when blank label lines are used.
- Redundnt block programs with large scan times could not complete
data transfers properly.
- Blocks doing Real Time Clock writes were not accounting for the
Daylight Savings Time flag.
- RTCSECWR function where it was not compensating for the century
- RUNTIME function block was not updating it's internal time while
block was disabled. It also would not set the time unless the digital
input was on.
- TOTALIZE function block was not updating it's internal time while
block was disabled.
- Two Modbus TCP Slave sessions could not simultaneously monitor for
communication on two TCP/IP port numbers.
- Fixed problem where RS-485 trail delay could be affected by excessive
sockets activity causing timeouts to remote I/O talking over RS-485
- Fixed problem where DNS lookups could cause the controller to stall
for long periods of time on a failed lookup.
- Fixed problem where high latency TCP/IP networks would cause monitoring
sockets to stop accepting connections.
- General Operation
- Added intelligent Make prompt to automatically detect when the
user needs to do an ISaGRAF make according to what has changed
in the application.
- Added the ability to create Registers, Triggers, Alarms, and
Network Sessions on the fly from other records that might need
these data elements.
- Added ability to configure local PC address temporarily to access
node under development. Prompts user before changing IP address
- Added viewer capability in the Tools | FTP Transfer dialog with
configurable viewable files.
- Added TCP/IP WAN address for downloading to something other
than the primary Ethernet address. The WAN address can also be
a site name string.
- Added ability to synchronize Real Time Clock over FTP from ScadaBuilder.
- Eliminated need to pre-create Network Ports. All ports are available
(if not already used for debugging) for configuration at any time.
- Changed Project Options to "Project Settings".
- Changed Node Options to "Node Settings" to better
reflect operations for node configuration.
- Downloads will only prompt once during a download operation
should "Prompt" be selected in Node | Settings | FTP/HTTP
- Added serial comport TCP/IP configuration to the Node | Settings
| TCP/IP tab.
- Added a comport download feature to the Node | Settings | General
tab to supersede the project's comport download configuration.
- In places where register block sizes apply, the user can now
select the end register by name.
- Eliminated the use of the NOCON executable. Code is now embedded
into the ISaGRAF kernel.
- Power Fail Interrupt now recovers from a brown out condition
without resetting the controller. This is supported on Etherlogic
and ScadaFlex Plus controllers only.
- ISaGRAF Function Blocks
- Changed day_time function to use more efficient means of reading
real time clock.
- Added Totalize function block for totalizing any real numbered
analog based on time.
- Added Runtime for function block totalized time while any boolean
point remains true.
- Added Pack16 and Unpack16 function blocks for packing and unpacking
booleans into and out of an integer register.
- Added DiskMgt function block to allow user to programatically
get the amount of free space on the controller flash disk, create
a directory and change to a directory.
- Network Features
- Added UDP feature to the Modbus TCP Master and Slave protocol.
- Added "Dropped Carrier" modem statistic.
- Added the ability to skip a number in a phone number list if
a single "0" is in the list when operating from message
- Added DNP3 protocol master and slave (this is still a beta feature).
- Added support so a Bricket monitor session will update it's
global stats for all associated sessions. Address net stats from
associated Bricknet sessions are re-mapped to the monitoring Bricknet
- Added support for DF1 0x0F:0xAB (protected typed logical write
w/ mask) command function.
- Added support for DF1 diagnostic status message.
- Added support for automatically disabling the console if the
port is used by a net session.
- Added dropped carrier diagnostic to modem.
- Dialer and VUI interfaces may have standard messages reprogrammed
to customize the voice application. See Node | Generate Voice
and click on the "Customize" button.
- Support for multilingual voices has been added for French, Spanish,
German and Portuguese.
- Added Month/Day or Day/Month date annunciation.
- Added gain configuration for voice generation.
- Register Editing
- Registers of integer, real, or boolean may have indexes of up
to 65535. Messages (buffers) are still limited to 1-9999.
- Registers may be created with prefix, enumeration, suffix, and
- All Register drop down boxes now include a tree which displays
the data type and the register index (AKA network address).
- Registers can be created using template files for common functions.
- A Register display has been added to examine usage and indexing.
- Registers can be created from any drop down box in the ScadaBuilder
system that uses registers.
- General purpose register mappings have been moved to their own
branch in the ScadaBuilder tree. These mappings include:
- Time Zone
- Daylight Savings
- Memory Available
- Status LED
- Clock Speed Set
- Serial number (MSB and LSB)
- Low Battery
- State Triggers now handle all edge triggering as well. Old applications
will be updated to the new format automatically.
- Triggers now have sperate on/off debounce times. Consolidated
some common trigger setup functions.
- Added an integer map to specify the current alarm state in an
- Log events may have a register block size for "on the fly"
configuration for the number of contiguous registers logged.
- Added ability to configure a multi-line Log Entry by hitting
enter at the end of each line within the Log Entry.
- Added secure login authentication.
- Network Events
- Events now show a "register map" where applicable
to show exactly what registers are being accessed locally and
- Added RTC Set and RTC Get events for Modbus and Bricknet protocols.
- Textual User Interface (TUI)
- Added Group feature to better facilitate navigation using CTRL
P and CTRL N functionality. Also applies to PREV and NEXT on the
- Added Security levels to all pages in system.
- Added Security to all fields in system.
- Added attributes to Text Fields, Value List labels and Page
- Added 8 bit and 16 bit signed modes to numeric controls to allow
the proper display of negative numbers.
- Added Telnet terminal for use with Ethernet version of the TUI
- Enhanced TUI parsing speed for large TUI applications.
- Reduced memory use and allocation.
- Added TUI Telnet timeout parameter.
- Added support to run the same TUI on two different ports.
- Added support to hide the cursor in lower-right corner of the
TUI, instead of just line 25.
- Voice User Interface (VUI)
- Added "Number of rings before answer" feature.
- Fixed problem in Node Options (now Node Settings) TCP/IP tab where
the Max Number of Sockets parameter would get reset to 8 whenever
the dialog closed. This prevented the user from changing it when needed.
- Fixed problem where Logfile Entries could overflow the logfile write
buffer should large block sizes be used.
- Fixed Delta Triggers from registers where a zero in the set point
would cause a constant trigger. A zero in the set point register now
disables the Delta Trigger.
- Etherlogic and ScadaFlex Plus controllers can now recover from a
brown-out condition (Power Fail Interrupt) without resetting.
- Fixed problem where function blocks (such as the average block)
could be configured in such a way to have other function block's data
overwriting its values. This manifested intself in the average block
because it had the largest data target for the misconfigured function
blocks to corrupt.
- Fixed problems in Advanta, Integra and Ultima Etherlogics where
DI and PI Rates were not getting updated/configured properly at runtime.
- Fixed problem where Bricknet dialup systems with multiple destinations
or sessions would not be able to monitor and share the dialup modem
properly. This caused problems for units dialing in.
- Fixed problem where a logged alarm being acknowledged from a Dialer
could cause system instability.
- Fixed problem where telemetry file transfers used the wrong file
specification for destination file.
- Fixed problem where listening sockets could get out of sync between
a listen and an open. This now monitored and flagged as a "listen
error" which is recorded in the system.log file.
- Fixed problem where the watchdog (when enabled) would cause a reset
of the controller after a clean exit from the program. This caused
download problems from ScadaBuilder.
- Changed Modbus RTU system to work from message gaps thus eliminating
- Added FTP status buffer update that shows how many bytes have been
sent during the current transfer. Works with both Ethernet and PPP
- Added the ability to detect a failure on an FTP transfer no matter
the reason for the file not being delivered (ie. loss of carrier or
remote server disconnected).
- Mapping DI Counters was indexed improperly in the Integra I/O driver.
- Logfiles that were set to not overwrite archives could potentially
archive every time the archive file was deleted or transfered off
- Modbus RTU task could operate on unitialized data should a receive
timeout occur causing the task to stop. No other protocols were affected.
- Dialup Modbus sessions no longer pass token to other dialup sessions
while a file transfer is active over the dialup link. The transfer
will finish or fail out before the system moves on.
- When using voice, it was possible that the system would not shutdown
properly when doing a reset or termination of the program.
- ISaGRAF 3.54 licensing would not work on some workstations and laptops.
- TCP/IP would shutdown over a long period of time.
- Added support for Etherlogic Ultima and Integra model controllers.
- Added support for multiple internal modems on Integra model controllers.
- Added file transfer over Bricknet and Modbus.
- This feature allows users to download new applications "over
the air". This feature is also known as Remote File Hosting.
- Added file export utility for Ergoview tag databases.
- Added replacement dictionary editor for ISaGRAF dictionary to better
control deletion problems within ScadaBuilder (ISaGRAF dictionary
access is still supported from ISaGRAF Workbench.)
- Added support for faster serial clocks on models that require voice.
- Added FTP custom command support for rebooting over FTP link.
- Added modem scripting functions to allow ICL and customers to interface
to more types and styles of dialup and cell type modems.
- Added modem script to support Multitech MTSMC-G-F2 cellular
modem (T-Mobile version).
- Added modem script to support V32 mode connection for internal
and external Radicom dialup modems.
- Added the ability to disable probe checks in Network Sessions.
- Added capability of downloading over Zmodem without hitting the
- Added ability to specify FTP "active" mode for some Microsoft servers
that do not support passive mode.
- Added the ability to configure PPP dialup links to initiate remote
- Added ability to configure an optional gateway for PPP configurations.
- Added VUI feature to list unacknowledged and acknowledged dialer
alarms with key code entry.
- Added VUI feature to list read-only registers with one key code
- Added support for MAXIO module U16/6 and D24/16..
- Added support for mapping GPS delta time and distance to registers
with a configurable delta threshold.
- Added support to manually trigger the archive of a log file.
- Added support in Logfile Events that allows a user specified register
to change the block size of a log entry at runtime.
- Added ability to configure up to 64 sockets for TCP/IP use.
- Added function blocks to ISaGRAF including:
- f_delete for deleting files.
- f_rename for renaming files.
- f_exist to check if file exists.
- rtcsecwr to write to the real time clock in seconds since midnight
- redundnt to allow customers to setup identical controller programs
to hot swap control with a master/slave configuration.
- read_sw to read hardware address switch from controllers that
- Updated ISaGRAF Workbench to version 3.54. New features in this
- Up to 32 character variable names.
- Grep function for finding text and symbols throughout a project.
- Added support for triggering from and logging status buffers for
- Added String (message) data type to Modbus protocols.
- Added feature where outgoing dialup TCP/IP protocols have appropriate
routes automatically created.
- Significantly reduced kernel size allowing more memory to be allocated
for customer application.
- Added ability to monitor TUI and HTTP activity status while connected
over a serial or dialup connection to allow the connection to continue
and not time out.
- Added ability to configure multiple TUI instances over Telnet. As
many as four users are supported.
- Added ablility to auto-configure NVRAM from application file to
facilitate network and over-the-air application updates. No external
NVRAM update is now necessary. Controller will reboot automatically
if NVRAM is increased.
- Added PDF Report Generator to allow the documentation of ScadaBuilder
- Added WYSIWYG veiwer and editor for the TUI and ability to configure
line, dot or no grid.
- Added Group Copy and Group Paste capability for copying multiple
controls from one TUI page to another--even if they are on a separate
- Added the ability to automatically use NOCON when the console port
is used for telemetry.
- Added the ability to configure blocks of registers within a logfile.
- Added Excel time, tick time, elapsed time, count and delimiter fields
to the logfile configuration.
- Added ability to switch between monitor and outgoing events more
often when master and slave sessions use the same port.
- Added block definitions for entries in datalog files so that large
contiguous blocks of registers can be easily configured.
- Added Excel format time stamps to logfile.
- Added support for dynamically changing system time for Daylight
Savings from a boolean.
- Added support for dynamically changing a Modbus TCP Network Event
TCP/IP destination address from a buffer at run-time.
- Revamped Modbus address translation routing to allow for multiple
routes in a single system and to more closely match Picobrick and
Microbrick routing schemes.
- Revamped Bricknet routing and eliminated alternate Netsessions
while simplifying setup of path-based routing architecture..
- Added ability to individually map selected address comm statistics
and added Current Path ID statistic.
- Added support for HART protocol.
- Added In Progress map for net events.
- Communication Manager upgrades:
- All Network Sessions are handled in separate tasks.
- Added PPP connection layer to better manage dialup TCP/IP connections.
This fixed a problem where PPP connections were still being attempted
after the modem was offline. This caused some modem response timeouts
and could cause a modem lock up.
- Added PPP connection timeout.
- Eliminated need for NULL Network Session. Activity timeouts
can now be set in TCP/IP serial server configuration area under
the Network Port.
- Added ability to display and format time in dd-mm-yy and dd-mm-yyyy
- Added Update BIOS option on Target menu.
- Prompt user to generate voice file before ISaGRAF make if voice
file has changed.
- Automatically create triggers for TUI Buttons.
- Fixed problem where writing message buffers to the database wrote
the wrong length information. Problem would show in TUI editting of
- Fixed race condition that could cause command line arguments to
be corrupted at startup of the ISaGRAF runtime kernel.
- Fixed problem where remote scaling wrote to floating point registers
and would only write values to the left of the decimal point truncating
the value to a whole number. Remote Scaling also had a false limit
of 8 scales per session that was removed.
- Fixed problem where logfile archiving was not writing the first
entry of a new log file uncompressed after an archive had been done.
This would have caused difficulty for anyone attempting to parse and
decompress a logfile.
- Fix problem in Pid_al function block where proportional term was
only being updated at sample time instead of constantly as it should.
- Fixed problem where alarm dialers would reset phone number list
sequencing when a second alarm is annunciated.
- Fixed problem where logfiles and/or heavy sockets activity would
interfere with voice playback.
- Fixed problem where a race condition could occur when doing an FTP
- Fixed problem where a remote could close a socket connection and
leave the client in an undetermined state.
- Fixed problem where PPP connection could attempt to connect before
an IP address was designated from a PPP server.
- Updated ISaGRAF Kernel code to version 3.40 library.
- Removed ISACFG file support to reduce kernel size. Only the ScadaBuilder
configuration file (node.sbr) is supported.
- Reduced code size of ISaGRAF kernel (ISA.EXE) to free memory for
- Added additional functions and function blocks to ICL library:
- GpsRD function to read GPS time from a GPS interface configured
- LogAna function to allow user to configure a set of contiguous
integer registers as a block of logging entries.
- LogReal the same as LogAna only with real (floating point) registers.
- PID_AL simpleintegrated PID block.
- RTCSecs function to read the controller's real time clock and
convert the output to UNIX compatible seconds since Jan. 1, 1970.
May be used for relative timestamping or file naming.
- Charctrz function allows user to specify curve characterization
for analog inputs from two contiguous blocks of registers in the
dictionary--one block is for the X axis and one for the Y axis.
- Scaler function for traditional proportional linear scaling
- FlipFlop function for transition alternation.
- TrackHld is a track and hold function for holding values based
on an input flag.
- RateLim limits rate of change of an analog input based on a
- Added RTC option for Timer Trigger.
- Added FTP Transfer Events.
- Added Complete Controller Download Option in Target Menu.
- Added Data Logging features:
- Separated log file writes and log buffering into separate tasks
to prevent impact on system when doing a file write to the flash
- New log architecture allows user to set buffer size.
- Added disable overwrites option.
- Added force new header at startup.
- Added log count.
- Register, Date and Time can now be inserted into log file headers.
- New dialog interface for configuring log file message/headers.
- Added register mapping of archive flag to tell the user when
an archive has been done (copy lg1 to lg2).
- Added logfile compression when data does not change.
- Added maximum number of records archive setting.
- Added DF1 Master and Slave protocols.
- Added support for Modbus/TCP Master and Slave to use TCP ports other
than the default 502 port.
- Added capability for slave IP addresses to be referenced by Netevents
- Added GPS Interface support.
- Added Real Time Clock synchronization support.
- Added Daylight Savings Time support.
- Added timezone offset support from GMT.
- The timezone and daylight savings support is also for Emails
- Added self-triggering Netevents from communication writes or from
- Added network statistics for individual slave numbers under any
- Added mapping to registers to disable communication by slave number
for any master protocol.
- Added AI Priority function to support faster analog input scanning
on ScadaFlex Plus.
- Added capability to archive and restore projects to and from controllers
with optional password protection.
- Added default warning dialog when exiting ScadaBuilder that the
user has not archived project to controller.
- Added capability to export and import individual node archives to
and from controllers.
- Added ISaGRAF Make and Debug hot buttons.
- Added "Lightning" hot button that will automatically start controller
after a controller configuration update.
- Added the ability to send ISaGRAF program and ScadaBuilder node
files with the Target|Send Startup Config menu option.
- Added file browser/download/upload tool for file management on controllers.
- Changed I/O configuration dialogs to support mapping, unmapping,
scaling and unscaling in blocks.
- Added on-line help reference for all controls and features.
- Fixed problem where sockets would never get deallocated once they
where interrupted during a RST. Problem was most prevalent during
- Fixed problem where TUI log history was not set.
- Changed the default FTP Client timeout to 30 seconds. Was 0 seconds
which would always cause a race condition between the FTP handler
and the FTP server.
- Netalarms were not resetting phone number lists properly after all
Alarms were acknowledged. The next Alarm would dial the number in
the list where the last Alarm left off.
- Fixed bug in TUI RTC field when am/pm field would inadvertenly change
when moved to for editing.
- New Radicom Dialup modem Support.
- Point-to Point Protocol (PPP) for both Dial Out (client) and Dial
In (server) support.
- DHCP capability.
- Voice Alarming.
- Voice User Interface.
- FTP target updates (for updating voice files over Ethernet for example).
- Multiple Textual User Interfaces (TUIís).
- EtherLogic LC Support.
- Made minor modification to ICL-4300 API to support modems on any
- Fixed Alarm annunciation issue where a retriggered unacknowledged
alarm would start a VUI dialup list over again.
- New terminal software and removed Green Leaf Terminal and comm.
- Http support with access permissions.
- DNS services.
- Fixed null string problem when a blank name was entered for a new
- Changed communication library used for downloads and terminal access.
- Email from a config file was broken in a previous beta version.
- Timer Triggers were not being initialized to seconds value passed
in from ScadaBuilder.
- Fixed problem where Modbus TCP session could cause sockets to be
allocated but never deallocated causing unit to stop responding to