EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Modbus R2-9 available
From: Mark Rivers <[email protected]>
To: "[email protected]" <[email protected]>
Date: Tue, 23 Aug 2016 18:22:16 +0000

Folks,

 

Release R2-9 of the EPICS "modbus" module is now available. This is from the release notes:

 

- Added support for specifying absolute Modbus addresses in the asyn "addr" field. Previously each driver was limited to addressing at most 125 registers (read operations) or 123 registers (write operations), and the asyn "addr" field specified an offset relative to the modbusStartAddress passed as the fifth argument to drvAsynModbusConfigure(). Now if the modbusStartAddress=-1 then the driver will use absolute addressing, and the asyn "addr" specifies the absolute Modbus address in the range 0 to 65535. In this case the modbusLength argument to drvAsynModbusConfigure() is the maximum length required for any single Modbus transaction by that driver. This would be 1 if all Modbus reads and writes are for 16-bit registers, but it would be 4 if 64-bit floats (4 16-bit registers) are being used, and 100 (for example) if an Int32 waveform record with NELM=100 is being read or written.

 

- Added support for strings using the asynOctet interface. Some vendors use Modbus for string data. The Modbus standard does not specify how strings should be stored, and different vendors do it differently. The driver supports 4 new Modbus data types, using the following drvInfo strings:

    - STRING_HIGH One character is stored in the high byte of each register.

    - STRING_LOW One character is stored in the low byte of each register.

    - STRING_HIGH_LOW Two characters are stored in each register, the first in the high byte and the second in the low byte.

    - STRING_LOW_HIGH Two characters are stored in each register, the first in the low byte and the second in the high byte.

The standard asynOctet device support is used. This supports stringout, stringin, and waveform records. Waveform records can be used for either input or output. The stringin and stringout records are limited to 40 characters strings, while waveform records are limited only by the 125/123 register limit of Modbus for read/write operatations i.e. up to 250 characters.

 

- Added error checking to make sure the length of the reply from the Modbus server is the expected value. Previously garbled communications could cause a crash because of array bounds violation.

 

The home page is here:

http://cars.uchicago.edu/software/epics/modbus.html

 

The release notes are here:

http://cars.uchicago.edu/software/epics/modbusReleaseNotes.html

 

The documentation is here:

http://cars.uchicago.edu/software/epics/modbusDoc.html

 

The repository is on Github:

https://github.com/epics-modules/modbus

 

Cheers,

Mark

 

 


Navigate by Date:
Prev: Re: Is There A Way to Explicitly Close CA Connections in PyEpics? Weiwei Lu
Next: RE: Can an IOC receive/process CIP data? Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS and TIA Portal communication Nick Levchenko
Next: tpmac distribution Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 24 Aug 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·