Skip to content

aldas/phpmodbus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

phpmodbus with native php-streams instead of ext-sockets

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
  • Removes dependency to sockets extension. Now uses built-in Stream API
  • Fixes/replaces 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

  • 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
composer test

To report test coverage (created inside ./report/html):

composer test-coverage

GoogleCode legacy docs & downloads

This project was originally hosted on (now defunct) Google Code. It's still archived here:

Packages

No packages published

Languages

  • PHP 100.0%