Manawyrm / phpmodbus

PHP implementation of the modbus protocol. Fixed by @Manawyrm to properly read answers from SMA inverters.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

phpmodbus

This project deals with an implementation of the basic functionality of the Modbus TCP and UDP based protocol using PHP. It's a copy of the releases from the project page over at Google Code with composer support added.

Changes by @Manawyrm

The upstream library had trouble reading data from SMA solar inverters via modbus. This was fixed by explicitly reading the length-field of the transmitted data and then waiting for the specified amount of data.

Warning! This library was NOT tested with a UDP modbus server and could behave wrong!

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
    • FC22 - Mask Write register
    • FC23 - Read/Write multiple registers

Example

 // 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);

For more see documentation or FAQ.

About

PHP implementation of the modbus protocol. Fixed by @Manawyrm to properly read answers from SMA inverters.

License:Other


Languages

Language:PHP 89.5%Language:HTML 8.5%Language:Batchfile 2.0%