ホームページ  >  記事  >  バックエンド開発  >  PHP で Modbus TCP 応答メッセージを解析して処理する方法

PHP で Modbus TCP 応答メッセージを解析して処理する方法

WBOY
WBOYオリジナル
2023-07-17 19:41:041359ブラウズ

PHP で Modbus TCP 応答情報を解析および処理する方法

概要:
Modbus は、産業用制御システムでデータを送信するために使用される通信プロトコルです。 Modbus TCP は、TCP/IP プロトコルに基づいてデータを送信する Modbus プロトコルの実装です。 PHP では、いくつかのライブラリを使用して Modbus TCP 応答情報を解析および処理できます。この記事では、phpmodbus ライブラリを使用して解析と処理を行う方法について説明します。

phpmodbus ライブラリをインストールします:
まず、phpmodbus ライブラリをインストールする必要があります。プロジェクトで次のコマンドを使用して Composer を通じてインストールできます:

composer require php-modbus/php-modbus

Modbus TCP 応答情報の解析:
Modbus TCP 要求を送信した後、要求されたデータを含む応答を取得します。この応答を解析するには、phpmodbus ライブラリの ModbusMaster クラスを使用できます。

まず、ModbusMaster クラスをインスタンス化し、接続する Modbus TCP デバイスの IP アドレスとポート番号を指定する必要があります。

<?php
require_once 'vendor/autoload.php';

use PHPModbusModbusMaster;

$modbus = new ModbusMaster("192.168.1.1", "TCP");

その後、ModbusMaster の readMultipleRegisters メソッドを使用できます。 Modbus レジスタのデータを読み取るクラス。このメソッドは、デバイス ID、読み取られるレジスタ アドレス、および読み取られるレジスタの数の 3 つのパラメータを受け入れます。返される応答には、要求されたデータが含まれます。

$deviceId = 1;
$startAddress = 0;
$quantity = 10;

$response = $modbus->readMultipleRegisters($deviceId, $startAddress, $quantity);

Modbus TCP 応答情報の処理:
Modbus TCP 応答を取得したら、それを処理できます。応答では、データは 16 ビット整数として返されます。このデータは、phpmodbus ライブラリの decodeRegister メソッドを使用してデコードできます。

$data = $response['data'];
$decodedData = $modbus->decodeRegister($data);

decodeRegister メソッドは、デコードされたデータを含む配列を返します。

phpmodbus ライブラリの他のメソッドを使用して、Modbus TCP 応答を処理することもできます。たとえば、単一のレジスタの値を読み取りたい場合は、readSingleRegister メソッドを使用できます。同様に、writeMultipleRegisters メソッドを使用して、複数のレジスタの値を書き込むことができます。必要に応じて、コード内でこれらのメソッドを適切に呼び出すことができます。

完全なサンプル コード:
以下は、phpmodbus ライブラリを使用して PHP で Modbus TCP 応答情報を解析および処理する方法を示す完全なサンプル コードです:

<?php
require_once 'vendor/autoload.php';

use PHPModbusModbusMaster;

$modbus = new ModbusMaster("192.168.1.1", "TCP");

$deviceId = 1;
$startAddress = 0;
$quantity = 10;

$response = $modbus->readMultipleRegisters($deviceId, $startAddress, $quantity);

$data = $response['data'];
$decodedData = $modbus->decodeRegister($data);

foreach ($decodedData as $value) {
    echo $value . "
";
}

?>

概要:
PHP での Modbus TCP 応答メッセージの解析と処理は、phpmodbus ライブラリを使用して実現できます。 ModbusMaster クラスを使用して、Modbus TCP 応答を解析して処理できます。 readMultipleRegisters、decodeRegister、およびその他の関連メソッドを使用すると、Modbus レジスタ内のデータを読み取り、処理できます。この記事が、PHP で Modbus TCP 応答メッセージを解析して処理する方法を理解するのに役立つことを願っています。

以上がPHP で Modbus TCP 応答メッセージを解析して処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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