You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Modbus TCP连接失败求助:代码调试及端口疑问

PHP无法连接Modbus TCP设备问题排查

问题概述

我无法通过PHP连接Modbus TCP设备,但使用测试软件可正常获取数据,且ping目标设备(192.168.0.1)结果正常。

初始测试代码

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);
?>

测试结果

  • 测试软件连接设备正常,可成功读取数据(截图显示读取流程无异常)
  • 上述代码执行报错,错误信息显示连接相关异常(截图内容为连接失败提示)

修改站地址后的尝试

将站地址从0改为1,代码如下:

$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命令查询该端口未被占用,请问这是否与PHP连接Modbus设备失败有关?

  • 软件截图显示502端口异常提示
  • netstat查询截图显示无502端口占用记录

内容的提问来源于stack exchange,提问作者jacklee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:33:33