|
|
@ -2,15 +2,15 @@ |
|
|
|
|
|
|
|
|
|
|
|
Implementation of the basic functionality of the Modbus TCP and UDP based protocol using PHP. |
|
|
|
Implementation of the basic functionality of the Modbus TCP and UDP based protocol using PHP. |
|
|
|
|
|
|
|
|
|
|
|
This is a fork of the original project at https://code.google.com/p/phpmodbus/ |
|
|
|
**NOTE: This is a fork to fix & update the library code (and code alone). Notably, the tests are probably all broken.** |
|
|
|
|
|
|
|
|
|
|
|
> **What's new** |
|
|
|
> **What's new** |
|
|
|
> |
|
|
|
> |
|
|
|
> This fork adds a namespace and fixes issues encountered when porting to PHP 7 |
|
|
|
> This fork adds a namespace and fixes issues encountered when porting to PHP 7 |
|
|
|
|
|
|
|
|
|
|
|
**WARNING: Everything except the actual code in this repo may be broken and outdated.** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Implemented features: |
|
|
|
## Implemented features |
|
|
|
|
|
|
|
|
|
|
|
* Modbus master |
|
|
|
* Modbus master |
|
|
|
* FC1 - Read coils |
|
|
|
* FC1 - Read coils |
|
|
|
* FC2 - Read input discretes |
|
|
|
* FC2 - Read input discretes |
|
|
@ -22,18 +22,24 @@ Implemented features: |
|
|
|
* FC16 - Write multiple registers |
|
|
|
* FC16 - Write multiple registers |
|
|
|
* FC23 - Read/Write multiple registers |
|
|
|
* FC23 - Read/Write multiple registers |
|
|
|
|
|
|
|
|
|
|
|
Example: |
|
|
|
|
|
|
|
|
|
|
|
## Requirements |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* The PHP extension php_sockets.dll should be enabled (server php.ini file) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Example |
|
|
|
|
|
|
|
|
|
|
|
```php |
|
|
|
```php |
|
|
|
require_once dirname(__FILE__) . '/Phpmodbus/ModbusMaster.php'; |
|
|
|
use PHPModbus/ModbusMaster; |
|
|
|
|
|
|
|
use PHPModbus/PhpType; |
|
|
|
|
|
|
|
|
|
|
|
// Modbus master UDP |
|
|
|
// Modbus master UDP |
|
|
|
$modbus = new ModbusMaster("192.168.1.1", "UDP"); |
|
|
|
$modbus = new ModbusMaster("192.168.1.1", "UDP"); |
|
|
|
// Read multiple registers |
|
|
|
// Read multiple registers |
|
|
|
try { |
|
|
|
try { |
|
|
|
$recData = $modbus->readMultipleRegisters(0, 12288, 5); |
|
|
|
$recData = $modbus->readMultipleRegisters(0, 12288, 5); |
|
|
|
} |
|
|
|
} catch (Exception $e) { |
|
|
|
catch (Exception $e) { |
|
|
|
|
|
|
|
// Print error information if any |
|
|
|
// Print error information if any |
|
|
|
echo $modbus; |
|
|
|
echo $modbus; |
|
|
|
echo $e; |
|
|
|
echo $e; |
|
|
@ -43,7 +49,14 @@ catch (Exception $e) { |
|
|
|
echo PhpType::bytes2string($recData); |
|
|
|
echo PhpType::bytes2string($recData); |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
For more see [http://code.google.com/p/phpmodbus/downloads/list documentation] or [http://code.google.com/p/phpmodbus/wiki/FAQ FAQ]. |
|
|
|
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. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## GoogleCode legacy docs & downloads |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This project was originally hosted on (now defunct) Google Code. It's still archived here: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* [GoogleCode Archived Repo](http://code.google.com/p/phpmodbus) |
|
|
|
|
|
|
|
|
|
|
|
Note: |
|
|
|
|
|
|
|
* The PHP extension php_sockets.dll should be enabled (server php.ini file) |
|
|
|
|
|
|
|