我无法连接php modbus TCP

问题描述 投票:0回答:1

这是我的代码,我使用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端口没有被占用。

这和我无法连接有什么关系吗?

php modbus
1个回答
0
投票

尝试使用ModbusMasterTcp-Class来获取您的对象实例:'new ModbusMasterTcp($ip, "TCP")',这会让您高兴。

© www.soinside.com 2019 - 2024. All rights reserved.