PHP を介して Modbus TCP データの読み書きを実装する方法

WBOY
リリース: 2023-07-17 14:50:01
オリジナル
1433 人が閲覧しました

PHP を介して Modbus TCP データの読み取りと書き込みを実装する方法

Modbus は、産業分野でデバイス間の通信に使用される一般的に使用される通信プロトコルです。 Modbus TCP は、TCP/IP プロトコルを使用してネットワーク上で通信する Modbus プロトコルの変種です。この記事では、PHP を介して Modbus TCP データを読み書きする方法を紹介します。

  1. Modbus PHP 拡張機能のインストール
    PHP を使用して Modbus TCP 通信を実装する前に、Modbus PHP 拡張機能をインストールする必要があります。一般的に使用される拡張機能は phpmodbus です。https://github.com/angeloc/phpmodbus からコードをダウンロードし、そのコードを PHP プロジェクトにコピーできます。
  2. Modbus TCP 接続の確立
    phpmodbus 拡張機能を使用して Modbus TCP 接続を確立するのは非常に簡単です。まず、ModbusMaster オブジェクトを作成し、Modbus サーバーの IP アドレスとポート番号を指定する必要があります。例は次のとおりです。
require_once('modbus/ModbusMaster.php');

$modbus = new ModbusMaster("192.168.1.1", "TCP");
ログイン後にコピー
  1. Modbus データの読み取り
    Modbus プロトコルは、保持レジスタ (Holding Register) や入力レジスタ (Input Register) の読み取りなど、データを読み取る複数の方法をサポートしています。コイル(コイル)などModbusMaster オブジェクトの readMultipleRegisters() メソッドを使用して、保持レジスタのデータを読み取ることができます。例は次のとおりです。
$startAddress = 0;
$length = 10;

$data = $modbus->readMultipleRegisters(1, $startAddress, $length);

for ($i = 0; $i < $length; $i++) {
    echo "寄存器 " . ($startAddress + $i) . " 的值: " . $data[$i] . "
";
}
ログイン後にコピー
  1. Modbus データの書き込み
    Modbus サーバーにデータを書き込みたい場合は、 ModbusMaster オブジェクト。例は次のとおりです。
$address = 1;
$value = 123;

$modbus->writeSingleRegister($address, $value);

echo "写入成功
";
ログイン後にコピー
  1. エラー処理
    実際のアプリケーションでは、Modbus 通信でエラー処理を実行する必要があります。 ModbusMaster オブジェクトの各メソッドは、通信が成功したかどうかを示すブール値を返します。通信に失敗した場合は、getError() メソッドを使用してエラー情報を取得できます。例は次のとおりです。
if (!$modbus->writeSingleRegister($address, $value)) {
    echo "写入失败:" . $modbus->getError() . "
";
}
ログイン後にコピー

要約すると、phpmodbus 拡張機能を使用すると、PHP を使用して Modbus TCP データを読み書きできます。 ModbusMaster オブジェクトを確立し、適切なメソッドを選択することで、Modbus 通信を簡単に実行できます。エラー処理に注意を払うと、プログラムの安定性と信頼性が向上します。

この記事では、PHP で Modbus TCP を実装する基本についてのみ説明しますが、より複雑な Modbus アプリケーションをさらに学習して開発できるようにするための良い出発点となります。皆さんが引き続き探索と実践で学び、Modbus の可能性を最大限に発揮できることを願っています。

以上がPHP を介して Modbus TCP データの読み書きを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート