这是我的代码,我使用ModbusMaster.php来测试连接modbus,但我无法连接
require_once dirname(__FILE__) . '/../vendor/adduc/phpmodbus/Phpmodbus/ModbusMaster.php';
// Modbus master UDP
$IP = '192.168.0.1' ;
$RAM_location = '32769';
$RAM_NUM = '10' ;
// // Create Modbus object
$modbus = new ModbusMaster($IP, "TCP");
// Read multiple registers
try {
$recData = $modbus->readMultipleRegisters(0, $RAM_location, $RAM_NUM);
}
catch (Exception $e) {
// Print error information if any
echo $modbus;
echo $e;
exit;
}
// Print data in string format
echo PhpType::bytes2string($recData);
?>
但是如果我使用测试测试软件就可以得到数据
这是我的错误消息
谢谢
我会尝试用1代替0
还是不行。
我确认我已连接到同一设备并且也已 ping 通
代码
$IP = '192.168.0.1' ;
$RAM_location = '32769';
$RAM_NUM = '10' ;
// // Create Modbus object
$modbus = new ModbusMaster($IP, "TCP");
// Read multiple registers
try {
$recData = $modbus->readMultipleRegisters(1, $RAM_location, $RAM_NUM);
}
catch (Exception $e) {
// Print error information if any
echo $modbus;
echo $e;
exit;
}
// Print data in string format
echo PhpType::bytes2string($recData);
错误信息
顺便尝试打开Modbus服务器测试软件
它说我的502端口有问题。
但是我用netstat检查502端口没有被占用。
这和我无法连接有什么关系吗?
尝试使用ModbusMasterTcp-Class来获取您的对象实例:'new ModbusMasterTcp($ip, "TCP")',这会让您高兴。