You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
toimtoimtoim
d91e37a290
|
8 years ago | |
---|---|---|
examples | 8 years ago | |
src | 8 years ago | |
tests | 8 years ago | |
.gitignore | 8 years ago | |
.travis.yml | 8 years ago | |
LICENSE | 9 years ago | |
README.md | 8 years ago | |
composer.json | 8 years ago | |
phpunit.xml | 8 years ago |
README.md
phpmodbus
Implementation of the basic functionality of the Modbus TCP and UDP based protocol using PHP.
NOTE: This is a fork to fix & update the library code (and code alone).
What's new
This fork adds a namespace and fixes issues encountered when porting to PHP 7, fixes old MS Windows specific tests
Implemented features
- Modbus master
- FC1 - Read coils
- FC2 - Read input discretes
- FC3 - Read holding registers
- FC4 - Read holding input registers
- FC5 - Write single coil
- FC6 - Write single register
- FC15 - Write multiple coils
- FC16 - Write multiple registers
- FC23 - Read/Write multiple registers
Requirements
- The PHP extension php_sockets.dll should be enabled (server php.ini file)
- PHP 5.5+
Example
use PHPModbus/ModbusMaster;
use PHPModbus/PhpType;
// Modbus master UDP
$modbus = new ModbusMaster("192.168.1.1", "UDP");
// Read multiple registers
try {
$recData = $modbus->readMultipleRegisters(0, 12288, 5);
} catch (Exception $e) {
// Print error information if any
echo $modbus;
echo $e;
exit;
}
// Print data in string format
echo PhpType::bytes2string($recData);
Use the setTimeout($seconds)
and setSocketTimeout($read_timeout_sec, $write_timeout_sec)
methods to adjust wait times.
Most of the code is (to some extent) commented and documented with PhpDoc. You should get useful tooltips in your IDE.
Tests
To run the test suite, you need install the dependencies via composer, then run PHPUnit.
NB: PHP 5.6+ is required for tests
composer install
vendor/bin/phpunit
GoogleCode legacy docs & downloads
This project was originally hosted on (now defunct) Google Code. It's still archived here: