modbus: Modbus Support - Release Notes
Release 2-4
May 22, 2012
- Improved support for different Modbus data types.
- Added support for 7 new Modbus data types:
- 16-bit signed integer
- 32-bit integer, little-endian
- 32-bit integer, big-endian
- 32-bit float, little-endian
- 32-bit float, big-endian
- 64-bit float, little-endian
- 64-bit float, big-endian
- Added support to allow the Modbus data type to be specified on a per-record bas
using the asyn drvUser field. Previously all records connected to a Modbus asyn
port driver had the same Modbus data type, because each Modbus port driver was limited
to a single data type.
- If the drvUser string in the link specification is omitted, or if it is the default
of MODBUS_DATA then the record will use the modbusDataType defined in drvModbusAsynConfigure.
This is backwards compatible, and existing IOCs will continue to work with no changes
to databases or startup scripts.
- Added new example IOC script, substitutions file, and medm screens to test all
data types. The testing was done with a Modbus slave simulator.
- Added special treatment for Wago devices. These device are different from other
Modbus devices because the address to read back a register is not the same as the
address to write the register. The readback address is the write address plus 0x200.
This means that in previous versions of this driver the initial readback value for
Modbus write operations to Wago devices was incorrect. This was fixed by adding
the 0x200 offset to the readback address if the plcType argument to drvModbusAsynConfigure
contains the substring "Wago" (case sensitive).
- Added support for passing status information back to device support in callbacks
for I/O Intr scanned records. Support for this was added in asyn R4-19. This means
that if the Modbus device communications returns errors that I/O Intr scanned records
will now have their alarm status set correctly.
Release 2-3
Sept 9, 2011
- build changes
- added .opi files for CSS-BOY
Release 2-2
March 13, 2011
- R2-0 introduced a 20 ms delay before each Modbus write. This was not correct,
delays should only be needed for serial RTU. The Modicon Modbus Protocol Reference
Guide says this must be at least 3.5 character times, e.g. about 3.5ms at 9600 baud,
for Serial RTU. An additional writeDelayMsec parameter was added to modbusInterposeConfig.
It is the final parameter, so if it is not specified the default value is zero,
which is appropriate when not using Serial RTU. In the startup script lines like
the following:
modbusInterposeConfig("Koyo1",0,5000)
should be changed to:
modbusInterposeConfig("Koyo1",0,5000,0)
for no delay, or to:
modbusInterposeConfig("Koyo1",0,5000,20)
for a 20 ms delay.
Release 2-1
November 7, 2010
- Bug fix. Non-automatic connection to the Modbus server uses pasynCommonSyncIO->connectDevice().
The pasynUser being used for that operation was being created with pasynOctetSyncIO->connect().
That was always an error, it must be created with pasynCommonSyncIO->connect().
This error became serious with asyn R4-14, and non-automatic connection no longer
worked.
- Previous releases of modbus recommended setting NoAutoConnect=1 when configuring
the TCP or serial port. That was probably because of problems in connection management
in earlier versions of asyn. With asyn R4-14 this is no longer necessary, and NoAutoConnect=0,
the normal default, can be used with no problems. The example scripts Koyo1.cmd
and Koyo2.cmd in the iocBoot directory have been changed to enable automatic connection
to the IP or serial driver.
Release 2-0
November 26, 2009
- Moved the slave address handling from the asynInterpose layer to the Modbus driver
layer. This was done because handing it in the the interpose layer only allowed
1 slave address per asyn serial port or IP port. This did not allow a single serial
port to be used with multiple Modbus devices on an RS-485 bus, for example. NOTE:
This requires all startup command scripts to be changed, because the syntax of the
modbusInterposeConfig and drvModbusAsynConfigure commands has changed. Thanks
to Yves Lussignol from CEA in France for making these changes.
Release 1-3
September 19, 2008
- Changed modbusInterpose.c to replace pasynOctet->writeRaw() and pasynOctet->readRaw()
with pasynOctet->write() and pasynOctet->read(), because the raw routines have been
removed in asyn R4-10.
- Changed the driver to use the asynStandardInterfaces interfaces added to asyn
in R4-10.
Release 1-2
September 6, 2007
- Fixed bug in computing byteCount in WRITE_MULTIPLE_COILS function code.
There is a known limitation with using serial interfaces. It is not currently possible
to have multiple Modbus servers connected to a single serial port. This is a limitation
of the asynInterposeInterface architecture used. It is fixed in release 2-0.
Release 1-1
April 30, 2007
Initial release of modbus module.