Available in Wattmon OS 3.12+
The Modbus include library contains functions and defines as shown below.
Usage:
include("/lib/uphp/modbus.inc");
Source:
| DEFINE | VALUE | 
|---|---|
| MB_ILLEGAL_FUNCTION | -1 | 
| MB_ILLEGAL_ADDRESS | -2 | 
| MB_ILLEGAL_VALUE | -3 | 
| MB_SLAVE_FAILURE | -4 | 
Click on the function name for further details:
| FUNCTION NAME | PARAMETER(S) | RETURN | LIBRARY | DESCRIPTION | 
|---|---|---|---|---|
| mb_get_error_string | int error | string | modbus | Get human readable error description | 
| mb_set_float_be_0x10 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus float in big endian using function 10h | 
| mb_set_float_le_0x10 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus float in little endian using function 10h | 
| mb_set_int16_0x03 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus device register using function 03h | 
| mb_set_int16_0x10 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus device register using function 10h | 
| mb_set_uint32_be_0x10 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus UINT32 in big endian using function 10h | 
| mb_set_uint32_le_0x10 | int id, int bus, int reg, int val, int retries | int | modbus | Set a modbus UINT32 in little endian using function 10h | 
<pre><? // assume a modbus TCP connection on ID 1 on Channel 2 $DEBUG=1; include("/lib/uphp/modbus.inc"); $id=1; $bus=2; $reg=1; $cmd=100; $retries=1; $res=mb_set_int16_0x03($id, $bus, $reg, $cmd, $retries); print("\r\nSet INT 16 func 03 result is : ".$res." ".mb_get_error_string($res)); $reg++; $res=mb_set_int16_0x10($id, $bus, $reg, $cmd, $retries); print("\r\nSet INT 16 func 10 result is : ".$res." ".mb_get_error_string($res)); $reg+=2; $res=mb_set_uint32_le_0x10($id, $bus, $reg, $cmd, $retries); print("\r\mb_set_uint32_le_0x10 result is : ".$res." ".mb_get_error_string($res)); $reg+=2; $res=mb_set_uint32_be_0x10($id, $bus, $reg, $cmd, $retries); print("\r\mb_set_uint32_be_0x10 result is : ".$res." ".mb_get_error_string($res)); $reg+=2; $res=mb_set_float_le_0x10($id, $bus, $reg, $cmd, $retries); print("\r\mb_set_float_le_0x10 result is : ".$res." ".mb_get_error_string($res)); $reg+=2; $res=mb_set_float_be_0x10($id, $bus, $reg, $cmd, $retries); print("\r\mb_set_float_be_0x10 result is : ".$res." ".mb_get_error_string($res)); ?></pre>