ホームページ >バックエンド開発 >PHPチュートリアル >PHP を介して Modbus TCP リモート アクセスを実装する方法

PHP を介して Modbus TCP リモート アクセスを実装する方法

王林
王林オリジナル
2023-07-17 19:49:401647ブラウズ

PHP を介して Modbus TCP リモート アクセスを実装する方法

Modbus は、産業オートメーションの分野でコントローラーとデバイスの間でデータを交換するために使用される通信プロトコルです。 Modbus TCP は、イーサネット上の TCP/IP 通信に基づく Modbus プロトコルです。 PHP言語を使用すると、Modbus TCPへのリモートアクセスを簡単に実装できます。この記事では、PHP を介して Modbus TCP リモート アクセスを実装する方法とサンプル コードを紹介します。

ステップ 1: PHP Modbus ライブラリをインストールする
まず、PHP 環境に PHP Modbus ライブラリをインストールする必要があります。 Composer を通じてインストールできます。ターミナルを開いてプロジェクト ディレクトリに切り替え、次のコマンドを実行します:

composer require php-modbus/php-modbus

ステップ 2: Modbus TCP を作成するconnection
In PHP コードでは、PHP Modbus ライブラリを使用して Modbus TCP デバイスとの接続を確立できます。以下はサンプル コードです:

<?php

require 'vendor/autoload.php';

use PhpModbusPhpModbus;

$ip = '192.168.0.10';    // Modbus TCP设备的IP地址
$port = 502;             // Modbus TCP设备的端口号

$phpModbus = new PhpModbus();
$phpModbus->connectTCP($ip, $port);

// 连接成功后,可以进行数据的读写操作

// 关闭连接
$phpModbus->disconnect();

?>

ステップ 3: Modbus レジスタ データを読み取る
Modbus TCP 接続を確立した後、PHP Modbus ライブラリを使用して Modbus デバイス上のレジスタ データを読み取ることができます。以下はサンプル コードです:

<?php

// 建立Modbus TCP连接,参考步骤2

$startAddress = 0;        // 起始寄存器地址
$quantity = 10;           // 读取寄存器的数量

// 读取指定数量的寄存器数据
$readData = $phpModbus->readMultipleRegisters(0, $startAddress, $quantity);

// 打印读取到的寄存器数据
print_r($readData);  

?>

ステップ 4: Modbus レジスタ データを書き込む
レジスタ データを読み取るだけでなく、PHP Modbus ライブラリを使用して Modbus デバイスにレジスタ データを書き込むこともできます。以下はサンプルコードです:

<?php

// 建立Modbus TCP连接,参考步骤2

$registerAddress = 0;     // 写入寄存器的地址
$data = [100, 200, 300];  // 需要写入的数据

// 写入寄存器数据
$phpModbus->writeMultipleRegisters(0, $registerAddress, $data);

?>

要約すると、PHP Modbus ライブラリを使用することで、Modbus TCP へのリモート アクセスを簡単に実現できます。接続が確立された後は、レジスタ データの読み取りおよび書き込みによって Modbus デバイスとのデータ対話を実行できます。この記事が、PHP プロジェクトで Modbus TCP リモート アクセスを正常に実装するのに役立つことを願っています。

以上がPHP を介して Modbus TCP リモート アクセスを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。