ホームページ  >  記事  >  バックエンド開発  >  PHP 開発実践: 拡張性の高い Modbus TCP 通信アプリケーションの構築

PHP 開発実践: 拡張性の高い Modbus TCP 通信アプリケーションの構築

WBOY
WBOYオリジナル
2023-07-17 16:37:431065ブラウズ

PHP 開発実践: 拡張性の高い Modbus TCP 通信アプリケーションの構築

産業オートメーションの分野では、Modbus はデバイス間のデータ送信に一般的に使用される通信プロトコルです。 Modbus TCP は、TCP/IP プロトコルに基づく Modbus の一種で、イーサネットを介したデバイス間のリモート通信を実現します。この記事では、PHP 言語を使用して拡張性の高い Modbus TCP 通信アプリケーションを開発する方法を紹介し、関連するコード例を示します。

まず、Modbus デバイスと通信するための PHP 拡張ライブラリをインストールする必要があります。ここでは、Modbus TCP 通信に便利な関数セットを提供する phpmodbus ライブラリを使用します。次のコマンドを通じて Composer を使用してインストールできます:

composer require phpmodbus/phpmodbus

インストールが完了したら、Modbus TCP 通信機能を実装するための PHP コードの記述を開始できます。以下は、Modbus デバイスからレジスタの値を読み取る簡単な例です。

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

use PHPModbusModbusMaster;

// 设备的IP地址和端口号
$ip = '192.168.0.1';
$port = 502;

// 创建一个ModbusMaster对象
$modbus = new ModbusMaster($ip, $port);

// 读取保持寄存器的值(寄存器地址为0,数量为10)
$result = $modbus->readMultipleRegisters(0, 10);

// 输出结果
if (!empty($result)) {
    echo "读取成功:" . PHP_EOL;
    foreach ($result as $key => $value) {
        echo "寄存器" . $key . "的值:" . $value . PHP_EOL;
    }
} else {
    echo "读取失败。" . PHP_EOL;
}
?>

上記のコード例では、phpmodbus ライブラリによって提供される ModbusMaster クラスを使用して、Modbus TCP 通信を実装します。 readMultipleRegisters 関数を使用してレジスタから複数の値を読み取ることができます。戻り結果は連想配列で、キーはレジスタアドレス、値はレジスタ値です。実際のニーズに応じてこれらの値を処理して使用できます。

レジスタの値の読み取りに加えて、phpmodbus ライブラリを介して、レジスタの値の書き込み、コイルのステータスの設定などの書き込み操作を実行することもできます。以下は、書き込み操作のサンプル コードです。

<?php
// ...

// 写入保持寄存器的值(寄存器地址为0,写入的值为100)
$result = $modbus->writeSingleRegister(0, 100);

// 输出结果
if ($result) {
    echo "写入成功。" . PHP_EOL;
} else {
    echo "写入失败。" . PHP_EOL;
}
?>

上記のサンプル コードでは、phpmodbus ライブラリによって提供される writeSingleRegister 関数を使用して、レジスタの値を書き込みます。書き込みが成功すると、関数は true を返し、それ以外の場合は false を返します。これにより、Modbusデバイスと双方向通信を行い、データの読み書きを実現します。

基本的な読み取りおよび書き込み操作に加えて、phpmodbus ライブラリは、コイルステータスの読み取り、複数のレジスタの値の書き込みなど、他の豊富な機能も提供します。具体的な使用方法やパラメータについては、実際のプロジェクトのニーズに合わせて関連ドキュメントやソースコードを参照してください。

まとめると、PHP 言語と phpmodbus ライブラリを使用することで、Modbus TCP 通信機能を簡単に実装できます。 Modbus デバイスと対話するための実際のニーズに応じて読み取りおよび書き込み操作を実行できます。同時に、phpmodbus ライブラリは豊富な機能と使いやすいインターフェイスを提供し、拡張性の高い Modbus TCP 通信アプリケーションの開発をより簡単かつ便利にします。

参考:

  • phpmodbus ライブラリ GitHub アドレス: https://github.com/phpmodbus/phpmodbus

以上がPHP 開発実践: 拡張性の高い Modbus TCP 通信アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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