s7nodave Device Support for EPICS

Table of Content

About s7nodave

s7nodave for EPICS is a device support based on Asyn and libnodave that communicates with S7 (or compatible) PLCs. Unlike other EPICS device supports for the S7 PLCs, this device support does not require any special programming on the PLC side. Instead, the EPICS records just specify the memory address in the PLC and the device support uses the ISO-TCP protocol supported by most S7 PLCs in order to read or write the channel data.


An extensive manual, explaining how to install, configure and use the s7nodave device support is available online.


This program and the accompanying materials are made available under the terms of the GNU General Public License version 3. By downloading the software you agree to be bound the the terms of this license. In particular, you have to agree to sections 15 (“Disclaimer of Warranty”) and 16 (“Limitation of Liability”) before downloading the software.

The modified version of libnodave distributed with s7nodave is licensed under the terms if the GNU Lesser General Public License version 2.1. Please refer to the files included in the source distribution for more copyright and licensing information.

Release 2.0.1 (August 7th, 2015):
This release fixes two bugs. The first bug caused the IOC to crash during startup under certain conditions and was caused by an invalid iterator dereference. This bug was present in all prior version of s7nodave. The second bug concerned the validation of parameters to the s7nodaveConfigureIsoTcpPort IOC shell command. This bug only had an effect when too few arguments were passed to this command and was only present in the 2.0.0 release.
In addition to the two bug fixes, this release implements a small change that allows you to change settings in the configure/CONFIG_SITE or configure/RELEASE files without actually modifying the files by creating a configure/CONFIG_SITE.local or configure/RELEASE.local.

Release 2.0.0 (February 8th, 2015):
This release adds options to configure the rack and slot number for the PLC connection, thus enabling communication with a wider range of S7 PLCs. It also changes the way that individual bits in DB areas are addressed, so that the address format now matches the format used by most S7 tools.
Caution: These changes make this release incompatible with older releases of s7nodave. You will have to update your project configuration in order to use this release. The changes are simply and should only take a few minutes. Please refer to the News section of the manual for detailed instructions.

Release 1.0.3 (April 24th, 2014):
This release fixes various bugs affecting the ai, stringin and stringout records. Other fixes address problems with timer and counter addresses and a dead-lock that could appear if record initialization failed. For more details and a full list of the fixed bugs, have a look at the NEWS file in the source distribution.

Release 1.0.2 (January 1st, 2013):
This release fixes a bug that caused a wrong boolean value to be read for the first bit in a byte that had other bits set.

Release 1.0.1 (December 17th, 2012):
This release fixes two bugs. The first bug was in the ai and ao record support and occurred when these record types were used with a floating-point number in the PLC. The other bug affected the support for the mbboRecord and (under special conditions) could cause a crash due to a read beyond array limits.

Release 1.0.0 (January 28th, 2012):
First public release of s7nodave.


You can contact the author of this software, Sebastian Marsching, at s7nodave-maintainer removethis <at> oss <dot> aquenos <dot> com.

Visit other projects on oss.aquenos.com.

© 2012-2013 aquenos GmbH