|  |  | @ -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) |  |  |  |  | 
			
		
	
	
		
		
			
				
					|  |  | 
 |