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.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							711 B
						
					
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							711 B
						
					
					
				| <?php
 | |
| use PHPModbus\ModbusMasterUdp;
 | |
| 
 | |
| $ip = filter_var($_GET['ip'], FILTER_VALIDATE_IP) ? $_GET['ip'] : '192.192.15.51';
 | |
| $unitId = ((int)$_GET['unitid']) ?: 0;
 | |
| $reference = ((int)$_GET['reference']) ?: 12288;
 | |
| 
 | |
| $modbus = new ModbusMasterUdp($ip);
 | |
| 
 | |
| // Data to be writen
 | |
| $bitValue = true;
 | |
| $bitNumber = 2;
 | |
| $andMask = 0xFFFF ^ pow(2, $bitNumber);
 | |
| $orMask = 0x0000 ^ (pow(2, $bitNumber) * $bitValue);
 | |
| 
 | |
| try {
 | |
| 	// FC22
 | |
|     $recData = $modbus->maskWriteRegister($unitId, $reference, $andMask, $orMask);
 | |
| } catch (Exception $e) {
 | |
| 	// Print error information if any
 | |
| 	echo $modbus;
 | |
| 	echo $e;
 | |
| 	exit;
 | |
| }
 | |
| 
 | |
| echo '<h1>Status</h1><pre>';
 | |
| print_r($modbus);
 | |
| echo '</pre>';
 | |
| echo '<h1>Data</h1><pre>';
 | |
| print_r($recData);
 | |
| echo '</pre>'; |