ホームページ >バックエンド開発 >PHPチュートリアル >PHP プログラミングのアイデア: 効率的な Modbus TCP 通信アプリケーションの構築

PHP プログラミングのアイデア: 効率的な Modbus TCP 通信アプリケーションの構築

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

PHP プログラミングのアイデア: 効率的な Modbus TCP 通信アプリケーションの構築

モノのインターネットの急速な発展に伴い、TCP 通信を通じてサーバーとデータを交換する必要があるデバイスがますます増えています。 Modbus は、産業オートメーションの分野で広く使用されている一般的に使用される通信プロトコルです。この記事では、PHP プログラミング言語を使用して効率的な Modbus TCP 通信アプリケーションを構築する方法を紹介し、コード例を示します。

  1. 通信方式の決定

Modbus TCP 通信アプリケーションを構築する前に、通信方式を決定する必要があります。 Modbus TCP は、PHP のソケット拡張機能を使用して実装することも、phpmodbus などのサードパーティ ライブラリを使用して開発プロセスを簡素化することもできます。ここでは、phpmodbus ライブラリを使用することを選択します。phpmodbus ライブラリは、Modbus プロトコルの詳細をカプセル化し、使いやすい API を提供するためです。

  1. phpmodbus ライブラリのインストール

Composer を使用して phpmodbus ライブラリをインストールするのが最も簡単な方法です。コマンド ライン ウィンドウを開き、プロジェクト ディレクトリに入り、次のコマンドを実行して phpmodbus ライブラリをインストールします。

composer require phpmodbus/phpmodbus

Composer は phpmodbus ライブラリとその依存関係をダウンロードしてインストールします。

  1. Modbus TCP デバイスの接続

まず、Modbus TCP 接続を作成する必要があります。 PHP では、これは ModbusMaster クラスを使用して実現できます。以下は、Modbus TCP デバイスに接続するためのサンプル コードです。

require __DIR__ . '/vendor/autoload.php';

use PhpmodbusPhpmodbus;

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

$modbus = new ModbusMaster($ip, $port);
  1. Read data

接続が正常に確立されたら、次のメソッドで readMultipleRegisters メソッドを使用できます。 Modbusデバイスレジスタデータを読み取るModbusMasterクラス。以下は、レジスタ データを保持する Modbus デバイスを読み取るサンプル コードです。

$unitId = 0; // 设备的单元标识符
$startAddress = 0; // 开始地址
$numberOfRegisters = 10; // 读取寄存器的数量

$data = $modbus->readMultipleRegisters($unitId, $startAddress, $numberOfRegisters);
$values = Phpmodbus::byteArrayToRegisterArray($data);

上記の例では、readMultipleRegisters メソッドはデバイスのユニット識別子、開始アドレス、およびレジスタ番号をパラメータとして受け取り、バイト配列を返します。 Phpmodbus ライブラリの byteArrayToRegisterArray メソッドを使用して、バイト配列をレジスタ値の配列に変換できます。

  1. データの書き込み

Modbus デバイスにデータを書き込む必要がある場合は、ModbusMaster クラスの writeMultipleRegisters メソッドを使用できます。以下は、Modbus デバイス保持レジスタにデータを書き込むサンプル コードです:

$data = [1, 2, 3, 4, 5]; // 要写入的数值数组
$startAddress = 0; // 开始地址
$unitId = 0; // 设备的单元标识符

$modbus->writeMultipleRegisters($unitId, $startAddress, $data);

上記の例では、writeMultipleRegisters メソッドはデバイスのユニット識別子、開始アドレス、および値の配列を受け入れます。パラメータとして書き込むことになります。データが書き込まれる配列の長さは、書き込まれるレジスタの数と同じである必要があることに注意してください。

  1. 接続を閉じる

Modbus デバイスとの通信が必要なくなったら、接続を閉じてリソースを解放する必要があります。接続は、ModbusMaster クラスの切断メソッドを使用して閉じることができます。以下は、Modbus TCP 接続を閉じるためのサンプル コードです。

$modbus->disconnect();

概要

この記事では、PHP プログラミング言語を使用して効率的な Modbus TCP 通信アプリケーションを構築する方法を紹介します。 phpmodbus ライブラリを使用すると、簡単な API を使用して Modbus デバイスに簡単に接続し、レジスタ データを読み書きすることができます。この記事が Modbus TCP 通信アプリケーションの構築に少しでも役立つことを願っています。

注: 上記のコード例は参考用であり、実際のアプリケーションでは、特定の状況に基づいていくつかの調整や拡張が必要になる場合があります。

以上がPHP プログラミングのアイデア: 効率的な Modbus TCP 通信アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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