modbus tcp通信

composer require aldas/modbus-tcp-client 2.4

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use ModbusTcpClient\Network\BinaryStreamConnection;
use ModbusTcpClient\Packet\ModbusFunction\ReadHoldingRegistersRequest;
use ModbusTcpClient\Packet\ModbusFunction\ReadHoldingRegistersResponse;

class ModbusController extends Controller
{
    public function connect()
    {
        try {
            // 创建 Modbus TCP 连接
            $connection = BinaryStreamConnection::getBuilder()
                ->setHost('192.168.254.15')
                ->setPort(502)
                ->build();

            // 建立连接
            $connection->connect();

            // 创建读取保持寄存器请求
            $request = new ReadHoldingRegistersRequest(0, 256, 3);

            // 发送请求并获取响应
            /** @var ReadHoldingRegistersResponse $response */
            $response = $connection->sendAndReceive($request);

            // 获取响应数据
            $data = $response->getData();

            // 关闭连接
            $connection->close();

            return $data;
        } catch (\Exception $e) {
            return 'Modbus TCP 连接失败:' . $e->getMessage();
        }
    }
}
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use ModbusTcpClient\Network\BinaryStreamConnection;

class ModbusController extends Controller
{
    public function testConnection()
    {
        try {
            // 创建 Modbus TCP 连接
            $connection = BinaryStreamConnection::getBuilder()
                ->setHost('192.168.254.15')
                ->setPort(502)
                ->build();

            // 建立连接
            $connection->connect();

            // 连接成功
            $message = 'Modbus TCP 连接成功';

            // 关闭连接
            $connection->close();

            return $message;
        } catch (\Exception $e) {
            return 'Modbus TCP 连接失败:' . $e->getMessage();
        }
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
写代码是一件趣事。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

aldas/modbus-tcp-client 接收包超时,没查到原因,所以改成python socket

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!