Table of Contents

Modbus Library Reference

Available in Wattmon OS 3.12+

The Modbus include library contains functions and defines as shown below.

Usage:

include("/lib/uphp/modbus.inc");

Source:

View Source

Defines

DEFINEVALUE
MB_ILLEGAL_FUNCTION-1
MB_ILLEGAL_ADDRESS-2
MB_ILLEGAL_VALUE-3
MB_SLAVE_FAILURE-4

Functions

Click on the function name for further details:

FUNCTION NAMEPARAMETER(S)RETURNLIBRARYDESCRIPTION
mb_get_error_stringint errorstringmodbusGet human readable error description
mb_set_float_be_0x10int id, int bus, int reg, int val, int retriesintmodbusSet a modbus float in big endian using function 10h
mb_set_float_le_0x10int id, int bus, int reg, int val, int retriesintmodbusSet a modbus float in little endian using function 10h
mb_set_int16_0x03int id, int bus, int reg, int val, int retriesintmodbusSet a modbus device register using function 03h
mb_set_int16_0x10int id, int bus, int reg, int val, int retriesintmodbusSet a modbus device register using function 10h
mb_set_uint32_be_0x10int id, int bus, int reg, int val, int retriesintmodbusSet a modbus UINT32 in big endian using function 10h
mb_set_uint32_le_0x10int id, int bus, int reg, int val, int retriesintmodbusSet a modbus UINT32 in little endian using function 10h

Example

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