Modbus TCP and UDP library for PHP., originally from
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.
Ondřej Hruška 2ec605cf00
change license field so packagist shut up
6 years ago
src remove unused variable 7 years ago
.gitignore Cleaned up the code, fixed broken phpdoc tags, formatting 8 years ago
LICENSE deleted broken tests and examples, updated readme 6 years ago fix use stmts in readme 6 years ago
composer.json change license field so packagist shut up 6 years ago


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.

What's new

This fork adds a namespace and fixes issues encountered when porting to PHP 7

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


  • The PHP extension php_sockets.dll should be enabled (server php.ini file)


use PHPModbus\ModbusMaster; 
use PHPModbus\PhpType; 

// Modbus master UDP
$modbus = new ModbusMaster("", "UDP"); 
// Read multiple registers
try {
    $recData = $modbus->readMultipleRegisters(0, 12288, 5); 
} catch (Exception $e) {
    // Print error information if any
    echo $modbus . "\n";
    echo $e;
// 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.

GoogleCode legacy docs & downloads

This project was originally hosted on Google Code. It is still archived here: