PHP プログラミングのヒント: Modbus TCP データ フィルタリングと分析メソッドの実装
Modbus TCP は一般的に使用される通信プロトコルで、さまざまなデバイスとの通信に使用でき、産業用制御の分野で非常に人気があります。 PHP プログラミングでは、Modbus TCP データをフィルタリングして分析する方法が重要なスキルと要件です。この記事では、Modbus TCP データのフィルタリングおよび分析方法の実装に役立つ PHP プログラミング スキルをいくつか紹介します。
1. Modbus TCP 接続を確立する
PHP では、「phpmodbus」ライブラリを使用して Modbus TCP デバイスとの接続を確立できます。まず、ライブラリをインストールする必要があります。次のコマンドを実行してインストールします。
composer require modbus/tcp-php
インストールが完了したら、ライブラリを使用できるようになります。以下は、Modbus TCP 接続を確立するコード例です:
<?php require __DIR__.'/vendor/autoload.php'; use ModbusTcpClientNetworkBinaryStreamConnection; $ip = '192.168.1.100'; $port = 502; $connection = new BinaryStreamConnection($ip, $port); $connection->connect(); // 在这里可以进行Modbus TCP通信 $connection->close();
2. Modbus TCP リクエストの送信
デバイスとの接続を確立した後、「phpmodbus」ライブラリを使用して送信できます。 Modbus TCP リクエスト。以下は、保持レジスタを読み取る Modbus TCP リクエストを送信するコード例です:
... use ModbusTcpClientRequestReadHoldingRegistersRequest; use ModbusTcpClientUtilsTypes; $request = new ReadHoldingRegistersRequest(0, 10); $response = $connection->sendRequest($request); if ($response->isOk()) { $data = Types::parseByteArray($response->getData()); print_r($data); } else { echo '请求失败:' . $response->getErrorMessage(); } ...
上記のコードは、アドレス 0 から始まる 10 個の保持レジスタを読み取るリクエストを送信し、結果のデータを配列に解析します。 。
3. データのスクリーニングと分析
実際のプロジェクトでは、通常、すべてのデータが直接処理されるのではなく、ニーズに応じてスクリーニングと分析が行われます。たとえば、保持レジスタ内の 100 を超える値を持つデータのみを取得したい場合は、次のコードを使用してフィルタリングおよび分析できます。
... if ($response->isOk()) { $data = Types::parseByteArray($response->getData()); $filteredData = array_filter($data, function($value) { return $value > 100; }); print_r($filteredData); } else { echo '请求失败:' . $response->getErrorMessage(); } ...
上記のコードは array_filter# を使用しています。 ## データをフィルタリングする関数。100 より大きい値のデータを保持して出力します。
以上がPHP プログラミング スキル: Modbus TCP データのフィルタリングと分析方法の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。