ISaGRAF Target Kit "Readme"
This README.HTML file documents the changes made to the ISaGRAF Target Kit, a
product of Industrial Control Links, Inc. of
Auburn California, USA.
v6.14
Summary
New Features/Changes
Fixed Problems
-
Changed ComRdBts 'C' Function block to ComRdBuf to eliminate naming conflict
with the ComRdBts 'C' Function on a previous install. This conflict does not
occur on fresh installations.
-
Fixed problem in Modbus Slave and Bricknet driver where response to a Status or
Coil query could send back invalid data bytes. Problem does not affect most
Modbus master drivers.
v6.13
Summary
New Features/Changes
Fixed Problems
-
Fixed problem where serial I/O was taking two control program scans per update.
-
Changed ComRdBts 'C' Function to a function block. This allows ISaGRAF to
return both the receive byte count and the data in one call.
-
Increased com buffer size to 1K for a serial ISaGRAF debugger port. When using
a large number of floating point variables, the debugger would not be able to
complete a full transfer without overflowing the buffer.
-
Removed references to OEM boards for the EtherLogic. They were included in the
library files but were not implemented in the kernal library. The EtherLogic
uses the native ScadaBuilder I/O configuration interface instead.
v6.12
Summary
Maintenance and feature release.
New Features/Changes
-
Added FTP support for ScadaBuilder files.
Fixed Problems
-
Fixed bug where email would not work with another protocol (such as FTP) on a
dialup link. Each netSession maintains its own value for the 'deviceType'.
-
Fixed bad enum in RegWriteString. Check error would report the wrong function.
-
Fixed function name lookup problem in check errors where it was possible to use
the name pointer before inititializing it.
v6.11
Summary
Fixed Problems
-
ISaGRAF windows called from ScadaBuilder for the first time after installation
would not display properly.
v6.10
Summary
ScadaBuilder support update.
New Features/Changes
-
Updated for compatibility with ScadaBuilder v2.00. Support added for:
-
Register buffer formating
-
Local events/alarms
-
Log events/alarms
-
TUI alarms/logs
-
Setting of trigger scan rate.
-
Setting of counter scan rate.
-
Setting of serial I/O WDT.
-
Disable of network sessions.
-
Installer now modifies ISaGRAF configuration file (isa.ini) to enable retained
variables to have initial values.
-
Added new functions/function blocks:
-
IOCtrl (enables/disables I/O scan)
-
DateWr (sets the system time and date)
-
TimeWr (sets the system time)
-
DateRd (reads the system date and time)
-
NPHandle (Gets net port handle from port name)
-
Support for EtherLogic using new high-speed internal serial I/O protocol. This
eliminates the need to set up Modbus to get at the EtherLogic I/O. Requires
ScadaBuilder to take advantage of this feature.
-
DI counters counter can now be mapped to registers.
Fixed Problems
-
TUI no longer opens the COM port if already in use.
-
TUI only closes the COM port if it opened it.
-
Fixed bug when determining hop count of routed messages.
-
Fixed bug when setting scaling clamp values.
-
Fixed memory overflows when allocating large trigger blocks.
v6.02
Summary
New Features/Changes
-
Updated for compatibility with ScadaBuilder v1.13.
Fixed Problems
v6.01
Summary
Fixed Problems
-
The ELOGIC sample project (for EtherLogic controller) had a few problems that
have been corrected:
-
Changed the project comment to match what the application does.
-
Changed TUI header from HVAC to Etherlogic Toolbox.
-
Changed AO callout to Vx1000 (10 volts = 10000)
-
Changed voltage mode AI callouts to Vx1000 and Vx1000w/Isrc (were x100 which
was not correct)
-
Changed current mode callout to mAx1000 (was x100 which was not correct)
v6.00
Summary
Support has been added for ScadaBuilder, plus a number of other features and a
few fixes. The Target kit now applies to multiple ICL controllers, not just the
ICL-4300.
New Features/Changes
-
Requires a BIOS with "library version" of 3.41 or later.
-
The slave address or IP address offset can now be read from a DIP switch on ICL
controllers that have this hardware feature or can be read from a register.
-
ISaGRAF applications can now use configuration files developed using
ScadaBuilder. ESP-style configuration files are still supported as well (either
by themselves or in combination with ScadaBuilder).
-
Support for using Ethernet for the debugger link was added. A new run-time
kernel command-line switch option (-t=tcp) enables Ethernet (Sockets and the
packet driver must also be loaded).
-
When the controller is acting as a dialup FTP server, and there is no activity
within a timeout period, the modem connection is now terminated automatically
to allow the modem to be used for other activities (such as dialing out
alarms). The timeout is specified by the NetSession/sesTimeoutSec configuration
file parameter. The default is 30 seconds (you may want to increase this value
when using the controller in this fashion).
-
Support for sending email messages based on triggers has been added (this is
not supported in ScadaBuilder yet, but is supported in the ESP-style
configuration file).
-
Support added for new I/O boards: 43-AI16-16, 43-AI8-16 and 43-AO8-12I.
-
Added support for TUI over Telnet (Ethernet-only).
-
Added PPP dial-up support.
-
TUI Page Links can now use an associated register to disable the link based on
the register value.
-
Added support to configure an FTP client status buffer.
-
Changed the log file name from "icl4300.log" to "system.log".
-
Total application size (TIC code plus ESP/configuration resource file) had been
limited to 64k. This has now been increased. TIC code may now be up to 64k by
itself, plus the ESP file can be as large as available RAM on the target
controller allows.
Fixed Problems
-
Several pointers were not being nulled properly when an application was shut
down. This could cause an application to lock up when restarted from the
debugger or when a new application was loaded.
-
The controller would not answer incoming modem connections when set up as an
FTP server (like the sample application "FTP2").
-
TUI2 sample project was reporting an error for the [TuiValList] ESP record:
"Invalid variable type".
-
Added small delays to RTC initialization to fix initialization failing at high
temperature.
-
Fixed config file error when parsing unquoted '#' characters in a 'format'
parameter value.
-
Fixed memory leak -- if multiple modbus master sessions were attached to one
port, buffer would get allocated too many times.
v5.02
Summary
Fixed Problems
-
The TUI2 sample project (and other user projects) were reporting an error for
the [TuiValList] record: "Invalid variable type". This turned out to be a C
compiler bug -- the code was incorrectly interpreting the variable as a MSG
(message) type.
v5.01
Summary
New Features/Changes
-
Added regCheck parameter to the [Options] record to control the level of
checking performed when parsing the configuration file. The possible values for
regCheck are:
-
strict - flags Any references to non-existent variables (registers). This is
the default.
-
tolerant - flags only references to non-existent variables that are at the
start of a block, or single variables.
-
none - does not flag any references to non-existent variables.
Example:
[Options]
regCheck=tolerant ; set level to tolerant
Fixed Problems
-
Modbus routing was essentially non-functional. The routed response delay was
being calculated incorrectly, resulting in very slow routings, especially at
lower baud rates. Response messages we not being reliably routed because of an
error in how the routing table entries were being interpreted. Modbus routing
was broken since the beginning.
-
BrickNet routing was non-functional. The router was generating CRC's
incorrectly, resulting in the destination unit rejecting the message. This was
broken since v4.50.
-
The Modbus ASCII Slave protocol driver was not processing Preset Multiple
Register (0x10) messages properly. The byte count was not being extracted from
the incoming message, leaving the variable uninitialized and resulting in too
many or too few register values being stored. This was broken since v5.00.
-
Leading zeros on numeric values in the configuration file were incorrectly
causing the configuration file parser to interpret the numbers as octal -- they
are now forced to decimal. This was broken since v5.00.
v5.00
Summary
Major new feature release.
New Features/Changes
-
Data & Alarm Logging
-
Added data and alarm logging. Automatically logs data records based on triggers
and alarm records based on change of alarm state. Features include single or
multiple files, configurable file format and maximum size, and time/date stamp.
-
Removed 'datalog' sample application and added 'log1' and 'log2' which
illustrate the new (and easier) way of doing data logging.
-
TUI (Textual User Interface)
-
Added the ability to display data and alarm logs on a TUI.
-
The Page Up and Page Down keys now work in the TUI.
-
Added alarm properties that can be applied to TUI alarms or alarm logs.
-
Signed, unsigned and hex modes are now supported for TUI fields.
-
Communications
-
Incoming PPP dial-up modem connections are now supported when using TCP/IP.
-
Additional modes and flexibility are now available to send & receive
"non-standard" data types over Modbus protocol. You can now set up the ICL-4300
to deal with almost any representation.
-
A list of phone numbers can now be used for alarm dialing, with configurable
control over how the system advances from one number to the next.
-
Improved Modbus communications performance, especially when accessing a large
number of boolean variables in a single message.
-
Error Messaging
-
Improved error checking and reporting while parsing the config file.
-
The system event log mechanism has been changed so that a fresh log file
(icl4300.log) is created each time the application starts. The previous log
file, if any, is backed up to icl4300.bak. This makes it easier to find
applicable error messages, and reduces the likelihood that the log will fill up
and stop recording.
-
Miscellaneous
-
The Status LED and the reboot signal can now be mapped to Boolean variables.
-
The configuration file parser has gotten more strict about accepting floating
point numbers where an integer is expected. The sample files have been changed
accordingly.
-
The configuration file parser has gotten more strict about requiring all
variables in referenced blocks to be defined in the dictionary. This change in
behavior is designed to help you more quickly locate errors.
-
Added I/O breakouts in comment headers of sample files.
-
The [FORMAT] record now left justifies buffer register types that are inserted
into the format string.
-
The installer now installs the ICL sample applications into a separate project
group (ICLSMP).
-
Low-level functions for reading/writing hardware I/O ports have been added, to
support custom I/O boards and hardware.
-
The installer has been changed to optionally clean the archive directory
(C:\ISAWIN\ARK) in order to avoid reinstallation of residual libraries/projects
left behind from earlier installations.
Fixed Problems
-
[Defines] entries can now be nested.
-
BrickNet now has the ability to receive messages while waiting to access the
media when sending a command.
-
The maximum register count for Arcnet messaging was being calculated
incorrectly, allowing too many variables to be specified in a [NetEvent].
-
Error messages are now displayed cleanly to the TUI.
-
The communication failure status now properly reflects success/failure over a
dialup connection.
-
The presence of Arcnet hardware is now detected before the system tries to
install the Arcnet device driver.
-
DTR is now cleared when the application exits in order to hang up any attached
modem(s).
-
TUI autoedit feature was not working properly.
-
Fixed Arcnet device address to eliminate unreliable Arcnet device
communications.
-
The memory allocation system was improved to automatically eliminate memory
leaks in the ISaGRAF kernel.
-
When you ran an application that used the day_time function and then ran
commands via the remote console prompt (isa -r), the runtime kernel would
crash.
-
If the file system was too full to accept the downloaded application, no error
message was generated.
-
If you tried to transfer an application file larger than 64K, the kernel would
crash.
v4.50
Summary
Major feature release, including Ethernet, Arcnet, Modbus/TCP and HotLink
support.
New Features/Changes
-
HotLink
-
Added HotLink operator interface panel support, via TUI.
-
Added local alarm annunciation on the HotLink beeper, via TUI.
-
Textual User Interface (TUI)
-
Added TUI value lists and TUI buttons.
-
Added auto edit feature to TUI.
-
Ctrl+N and Ctrl+P are now used for next and previous menus in the TUI.
-
Ctrl+S (or '*' on HotLink) is used for auto selection of TUI value list.
-
Ctrl+A is used to set a TUI register block to the value of the currently
selected register.
-
Made attributes and colors configurable on the TUI.
-
Changed TUI key scan time to 50mS from 100mS.
-
TUI now supports both hierarchical and flat menu structures.
-
TUI can now navigate up, down, left and right.
-
Communications
-
Added TCP/IP Support for Ethernet.
-
Added Modbus/TCP Master protocol support.
-
Added FTP Client and Server support.
-
Added Telnet Server support.
-
Network statistics and comm fail information can now be mapped to variables.
-
Moved response delay parameter from network sessions to network ports.
-
BrickNet always routes using routing table from session that monitors.
-
Added support for Arcnet LAN controller.
-
Other
-
Increased configuration file (ESP) parsing performance.
-
Syslogs for net event errors now display the error value.
-
Net events with only a startup trigger are now allowed by parser.
-
Installer has been improved.
Fixed Problems
-
Modbus master can now rewind and re-evaluate received characters as invalid
message are rejected. This is in support of systems that use store and forward.
-
BrickNet can now respond to messages while waiting to send a command or during
an event or cycle gap.
-
Removed "check" error on pager ID when using a numeric pager.
-
Fixed problems with session-based address-qualified triggers and trigger
hold-off feature.
-
Fixed application shutdown operation.
-
Fixed handling of spurious interrupts on IRQ7 (INT0F).
v4.01
Summary
Minor maintenance release.
New Features/Changes
-
Added regMode=autoSigned option for NetSession record in configuration file.
This sets the Modbus communications mode so that registers/variables are
treated as signed numbers, instead of unsigned (as with regMode=auto).
Fixed Problems
v4.00
Summary
Major release, adding support for the following new features:
-
Voice playback and recording using local or dial-up connection.
-
Alarm processing, with annunciation using voice or digital outputs.
-
Dial-up modem data communications.
-
There is an up-to-date Target Kit Manual that goes along with this release.
New Features/Changes
-
General
-
Based on newer kernel source code (v3.23) from Transysoft.
-
Many new sample applications have been added to illustrate new features.
-
Supports shell feature on debugger COM port. Use "-r" command line switch when
starting ISA.EXE to enable this feature. Enters command prompt mode when three
carriage returns are received on debugger port. Exit command mode by typing
"exit" at the command prompt.
-
Information printed to the console regarding free memory has been made more
useful.
-
Alarm Processing
-
Alarm records may be created using a configuration file.
-
Alarm and alarm acknowledgement conditions are defined by Trigger records.
-
Alarms may be annunciated using local voice messaging, voice messaging over a
telephone or using a digital output.
-
Voice Recording/Playback
-
Support for the modem and microphone voice recording/ playback hardware options
has been added.
-
Voice may be handled automatically using a configuration file.
-
New configuration file record types
-
In conjunction with other changes, several new record types have been added.
The new record types are listed briefly below:
-
Format - generates output to a message variable based on a format string and
variable value fields
-
LocalEvent - stores a value to a variable based on a trigger
-
VoiceMsg - defines an individual voice message recording
-
VoiceSeq - defines a voice message made of a sequence of individual recordings
and variable value fields
-
Alarm - defines an alarm, including trigger and acknowledge conditions
-
NetAlarm - defines how an alarm is to be annunciated via numeric or
alphanumeric pager
-
LocalAlarm - defines how an alarm is to be annunciated with a local digital
output
-
Vui - defines a VUI (Voice User Interface)
-
VuiMenu - defines a menu for use in the VUI
-
VuiReg - defines a register for use in the VUI
-
Communications
-
NetSession defaults have been changed (respTimeoutMs: 1000 => 3000,
respRetry: 3 => 2).
-
Misc
-
If NetPort is not specified, TUI now defaults to console.
-
TUI now allows lower case in field entries.
-
The TUI disables the 'P' key to edit the page number if the showPageNum flag is
FALSE.
Fixed Problems
-
Target Kit did not install properly on top of v3.30 Workbench -- sample
projects and libraries did not install properly because of a change in how the
archiver works.
-
Memory leaks and lockups related to application shutdown and startup.
v3.00b7
Summary
Beta maintenance release.
New Features/Changes
Fixed Problems
-
A command line switch was added (-p=off) to disable Power Fail Interrupt (PFI)
detection so that the ISaGRAF kernel can be run on older hardware (earlier than
rev F backplane). If the new kernel is run on old hardware and the PFI is
disabled, the kernel does not allow retained variables because NVRAM is not
reliable without the PFI enabled (an error message is generated).
v3.00b6
Summary
Beta maintenance release.
New Features/Changes
Fixed Problems
-
When an application was re-downloaded or re-started, the memory location used
for retained variables would change. Now it remains the same.
-
Power fail detection is now enabled, to prevent the CPU from writing to RAM as
the power is dropping. This fixes a problem where retained variables would
sometimes be corrupted. Note that rev F or later of the ICL-4300 backplane
(board number B0190006) is required for this to work properly.
v3.00b5
Summary
Beta maintenance release.
New Features/Changes
-
Improved error message when an unknown Trigger name is referenced in a NetEvent
record.
-
The Debug link baud rate was changed from 19200 to 9600 in the sample projects
(19200 is unreliable on COM1/COM2 of the ICL-4300 when running the ISaGRAF
kernel).
Fixed Problems
-
Stack overflow could occur when timer or delta triggers were created. Increased
stack sizes for timer and delta trigger threads.
-
Variables in TuiField records improperly generated warning messages.
-
System would not switch between multiple NetSessions on the same port.
-
A missing 'blockSize' parameter on a 'read' or 'write' NetEvent would not
generate an error message, but would default to 0 and generate messages with
zero-length data.
-
Trigger records were being improperly rejected.
-
Y2K - error logging function did not print year properly to error log file when
year reached 2000.
v3.00b4
Summary
-
Beta maintenance release.
New Features/Changes
-
Xinu multitasking kernel now prints free and reserved memory on startup.
-
3 new trigger types have been added (netSes, netSes/ netAddr & tui). The
triggers are activated when variables are written to by communications or the
TUI.
-
Fixed bug in calculation of NVRAM base addess (specifying 512K would start at
address 0x7fC00 which is standard RAM).
-
A flag has been added to the network session indicating whether or not
broadcast messages should be accepted. The default state for this flag causes
broadcast messages to be ignored, which provides a minor performance
improvement.
Fixed Problems
-
Fixed Modbus register byte swapping problem.
-
Made default regMode set to 'auto', instead of 'MsbFirst'.
-
It was possible for the Modbus RTU Slave driver to reject good messages if they
were preceded by noise or messages destined for a different slave. The driver
could "sync up" with data or noise and begin to interpret the stream as a
message. The CRC would then fail and cause the data to be discarded, possibly
discarding some or all of a subsequent good message. Now, if a message is
rejected, the driver backs up, throws out the first byte and attempts to re-
interpret the remaining data as a message.
-
Modbus RTU Slave bad message rejection was improved by adding cases for illegal
length and illegal broadcast message type codes so that the message or noise
can be discarded sooner.
-
Modbus RTU Slave bad message rejection was further improved by checking the
register count against the byte count for FMC and PMR messages. This eliminates
a case where the communication driver was trying to process the data portion of
a message addressed to another slave as a valid message for itself (the message
is now rejected sooner, which allows the slave to more quickly recognize a
following good message).
-
If a character gap is detected in the Modbus RTU Slave driver, instead of
throwing away any received bytes, the receiver state machine is reset and the
received bytes are reevaluated beginning at the next possible start of message
byte. This improves the ability to detect good messages embedded in noise or
preceded by messages to other slaves.
-
Broadcast messages were not being handled properly in the Modbus Slave RTU
driver. If a valid broadcast message was received, a response would be
generated (none should be). Now responses are not generated.
-
Increased the default net session character gap timeout from 500 ms to 5000 ms
to account for large delays in UserProgMain (if user application code is slow).
This timeout is used in the Modbus slave driver to restart the receive state
machine if there is a large gap in the incoming data stream.
-
Made various event state changes thread safe.
v3.00b3
Summary
Beta maintenance release.
New Features/Changes
-
The Target Kit Manual is not included on the distribution disk anymore - it can
be downloaded from our website if desired (www.iclinks.com).
Fixed Problems
-
When reading voltages in the range -10/10V from an #43-AI16-14 board using raw
mode, the values would get clamped at 0 and 4095. The values will now show the
full range range from -8092 to 8091.
-
When physical DOs were updated the channels were being reversed.
-
When a missing "reglink" was detected (i.e. Modbus message received and no
register type was associated with the message type), no error message was
logged.
-
The board type code associated with a #43-AO16-12V board was incorrect, making
it so the board could not be "opened" by the application. If you are using one
of these boards in your application, remove the board and add it back in to the
ISaGRAF I/O rack to get the updated definition.
-
The help text associated with C communications functions now list COM7.
v3.00b1
Summary
Beta release.
Major maintenance release, with BrickNet protocol added.
Requires BIOS version 3.01 or later.
New Features/Changes
-
I/O
-
Added Support for bipolar and multi-mode I/O boards.
-
Added support for dual calibration and raw modes on analog boards. Polarity of
filter setting bits has been reversed. This requires users to remove boards
from apps and add them back in again.
-
Added Analog Input averaging feature. Can be set either through configuration
file ([OPTIONS] aiAverage=) or control function (AIAve).
-
Communications
-
Added support for multiple Modbus register data encoding/ decoding modes
([NETSESSION] regMode=auto, msbFirst or lsbFirst). "Auto" mode is equivalent to
normal operation in previous release.
-
ICL ASCII, Optomux and Ultimeter protocols are no longer supported. We found
that no one was using these protocols, and it was causing us a lot of extra
work to try to maintain them as made changes to the system. If you really want
to run one of these protocols, contact Technical Support, and we can give you
the C source code from the last supported release for you to integrate into
your application code.
-
Communications system improved to allow the definition of more complex
triggers.
-
BrickNet protocol support added.
-
Message routing for Modbus and BrickNet have been added.
-
Communications status and statistics functions are now available.
-
Alternate network session support has been added.
-
Receive and transmit buffer size parameters were moved to the network port,
from the network session.
-
Added support for nine-bit communications.
-
Network port, event and session names are now case insensitive.
-
Added communication functions based on net ports defined in the configuration
file (NpOpen, NpClose, NpPktSnd).
-
Added function ComSet to change COM port settings without re-opening port.
-
The interrupt priorities were rearranged, to give COM1/COM2 highest priority.
This allows COM1/COM2 to handle higher baud rates.
-
The serial communications ISR and timer ISR were optimized for speed,
increasing overall efficiency and increasing highest acceptable baud rate on
COM1/COM2 (which have no FIFOs).
-
Enabled transmit and receive FIFO usage on COM3-COM7 to reduce interrupt rate
and allow higher baud rates without receive overruns.
-
Added support for modem on COM7, using low-level read and write serial
communication functions.
-
Added "nine-bit" communications support.
-
Configuration File
-
Additional error checking has been added to the file parser.
-
Many new record types and keywords have been added and/ or altered to
accomodate these changes.
-
Added parameters to configuration file for analog input averaging, digital
input inversion and system log message display.
-
Miscellaneous
-
A powerful new feature was added called the Textual User Interface, or TUI,
which allows you to set up a terminal mode user interface for viewing/ changing
information stored on the ICL-4300.
-
Support added for Super Size PCOS (flash memory and NVRAM).
-
Added support for debug/ship version compilation.
-
Improved overall performance by decreasing time spent doing hardware I/O
operations.
-
System log messages now output to the console, in addition to the log file.
-
Voice and Tone functions have been added, but not fully tested.
-
Code is now compiled to use 386 instructions, for increased performance.
Fixed Problems
-
Fixed scaling error with AI16 IO boards in 0to20mA mode. Values would scale to
large value when the current went negative.
-
Fixed BrickNet communications error. When waiting for a response to a command
and a command from another node is received, we would respond and return the
comm state back to idle. When our response finally arrived we would reject it
since we were no longer in the receive response state.
-
The creation of Modbus master net events are now rejected when an AI or DI
register is specified as the destination for a write.
-
For long messages(>200ms), the communications system could disconnect early.
This could cut off the tail end of RS-485 transmissions, depending on how the
Trail Delay was set.
-
A memory leak was fixed that would occur if the network system was shutdown and
re-started.
-
The RTS signal on COM1 was not enabled.
-
The response delay feature was not working.
-
Serial port control signal access functions did not work unless the port was
open. Now they work even when the port is closed.
-
Communications lockups could occur at high baud rates if multiple ports were
used simultaneously.
-
Serial ports opened by application (using function ComOpen) were not being
automatically closed when the application was terminated.
v1.30
Summary
New Features/Changes
-
Variable "Network Addresses" as defined in the dictionary, are now interpreted
as decimal numbers by default, instead of hexadecimal. Can be set to hex mode,
using the new -v=hd switch on isa.exe.
-
New functions were added for communications:
ANA ComRdBts( ANA port, MSG bytes, ANA max );
ANA ComWrStr( ANA port, MSG string );
ANA ComWrBt( ANA port, ANA byte );
ANA ComWrBts( ANA port, MSG bytes, ANA len ); (renamed from ComRdBt)
BOO ComXmtEm( ANA port );
ANA ComClRcv( ANA port );
ANA ComRts( ANA port, BOO state );
ANA ComDtr( ANA port, BOO state );
BOO ComCts( ANA port );
BOO ComDcd( ANA port );
-
New function was added for file open in append mode:
ANA f_aopen( MSG filename );
-
New types "Ana" and "Boo" have been added to the Configuration File, to more
naturally correspond to the Analog and Boolean variable types in ISaGRAF.
-
Changed mbmaster & mbslave sample projects: updated config files to match
new register nomenclature, changed Configuration File paths to standard
application directory.
-
Added PID sample project.
Fixed Problems
Modbus communications on the debugger port:
-
ROS (Read Output Status, code 1) message requesting greater than 255 values was
not handled cleanly - only LSB of number was used. Changed to look at both LSB
and MSB, trap all requests > 255 (rest of code currently can't handle
anything bigger, so limit is enforced).
-
If a read/write referenced a register with no corresponding variable, the
response was invalid. The system now responds, with 0 data for non-existent
register reads, and no effect for writes.
-
Register numbering was off by one, according to the Modbus specification and
compared to most implementations. (example, register 40010 in WonderWare
referred to analog register 9 in ISaGRAF). Now there is a one-to-one
correspondence.
-
The system would not respond to RIS (Read Input Status, code 2) and RIR (Read
Input Registers, code 4) messages, which are quite commonly used in Modbus. The
implementation was changed so that these messages work, and refer to the same
set of variables as ROS (Read Output Status, code 1) and ROR (Read Output
Registers, code 3).
-
The variable type was not properly considered when reading/writing registers.
If the variable type did not match the message type, incorrect messages were
generated and incorrect values were written. Now if the types don't match, a 0
is returned on a read, and nothing is done on a write.
|