modbuslog - 2012/02/20 -------------------- modbuslog is a program designed to read from a modbus device at predefined intervals and store the output to file. Compilation: -------------------- modbuslog requires the libconfig (>=1.4.8) and libmodbus (>=3.0.1) libraries, and will not function without these libraries installed. Neither of these libraries are currently available (or if they are, are not of sufficient version) in the current Debian Stable release codenamed "Squeeze". This means that these dependencies must be manually fulfilled. libmodbus: It should be sufficient to backport the current version of libmodbus from Debian Testing codenamed "Wheezy" http://packages.debian.org/wheezy/i386/libmodbus5/download http://packages.debian.org/wheezy/i386/libmodbus-dev/download libconfig: An older, incompatible version of libconfig currently exists in Debian Squeeze (right the way up to Sid). An updated package has been created and will hopefully be included in the next Debian Stable release. In the mean time it is available here: http://mentors.debian.net/package/libconfig When it gets accepted, it will be available here: http://packages.debian.org/source/testing/libconfig modbuslog uses a Makefile to ease compilation, and as such, can be compiled by simple navigating to the directory and running "make". This will recompile any files that need to be compiled. These files can then be moved to the required directories on the target system. Alternatively, if the code is being compiled on the target system itself, "make install" can be used to both compile and install the software. Required files: -------------------- /usr/sbin/modbuslog executable program /usr/bin/ftpupload ftp upload script /usr/bin/ftphelper ftp upload script helper /etc/modbuslog.cfg configuration file /var/modbuslog/ output directory where logs are stored /var/modbuslog/interval/interval.txt textfile storing unique interval /var/modbuslog/archive/ directory containing archived log files /var/www/ webserver directory for php scripts Configuration: -------------------- The configuration file for modbuslog is stored in /etc/modbuslog.cfg, and is arranged in a hierarchical structure suitable for libconfig. The modbus section defines the standard operating parameters for the modbus device, These include: 1) device serial port in use 2) baud baud rate in use 3) data_bits number of data bits, commonly 8. 4) parity parity, commonly E (even) or N (None). 5) stop_bits stop bits, commonly 1. 6) retry number of retries for each failed reading. The ftp section defines the parameters for the ftp upload function. The required parameters are: 1) server address of remote ftp server 2) username ftp username 3) password ftp password 4) directory directory on ftp server files will be uploaded to The reading section defines the unique reading times that the program is required to log at. Each entry must contain: 1) slaveid modbus slave id 2) registertype type of modbus reading 3) startaddress register to start reading from 4) numregisters number of registers to read 5) intervalvalue read register every x 6) intervalunit (m) minutes or (h) hours The -d argument can also be passed to modbuslog to enable a verbose debugging mode.