PHPでModbus TCP通信を実装する方法の概要
Modbus TCPは、産業制御システムで広く使用されている通信プロトコルです。それを支援すると、複数のデバイスがイーサネットを介してデータを効率的に交換できます。この記事では、ライブラリのインストール、サーバー接続、読み取りおよび書き込みレジスタ、例外処理の完全なプロセスなど、PHPでModbus TCP通信環境を構築する方法を示します。
Modbus関連の依存関係をインストールします
PHPでModbus TCPを使用するには、最初に必要なライブラリと拡張機能をインストールする必要があります。
ステップ1:Libmodbusライブラリをインストールします
[libmodbusの公式ウェブサイト](https://libmodbus.org/)にアクセスし、libmodbus圧縮パッケージの最新バージョンをダウンロードして解凍します。次に、端末に減圧ディレクトリを入力し、次のコマンドを順番に実行します。
ステップ2:PHP拡張機能をインストールします
[PECL公式Webサイト](https://pecl.php.net/)からphp_modbus拡張ソースコードをダウンロードします。減圧後、ディレクトリを入力し、次のコマンドを実行してインストールを完了します。
modbusサーバーに接続します
PHPを使用してModbus TCP接続を作成するためのサンプルコードを次に示します。
<?php
$ip = "192.168.1.1"; // ModbusサーバIP住所
$port = 502; // Modbusポート,デフォルトはです502
// 作成するModbus TCP接続する
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法接続する到Modbusサーバ");
}
// 接続する成功后,通信操作を実行できます
// 閉鎖Modbus接続する
modbus_close($connection);
?>
登録データをお読みください
接続が確立されると、Modbusサーバー上のレジスタを次のコードで読み取ることができます。
<?php
// 最初のレジスタの値をお読みください
$address = 0; // 寄存器住所
$quantity = 1; // 読み取られるレジスタの数
// 登録データをお読みください
$data = modbus_read_registers($connection, $address, $quantity);
// 読み取りデータを印刷します
print_r($data);
?>
登録データを書き込みます
ここに、指定されたレジスタにデータを書き込むためのコード例があります。
<?php
// 最初のレジスタに書かれた値はです100
$address = 0; // 寄存器住所
$value = 100; // 値を書き込みます
// 登録データを書き込みます
$result = modbus_write_register($connection, $address, $value);
if($result === FALSE) {
echo "登録するために書き込みに失敗しました";
} else {
echo "正常に登録するために書き込みます";
}
?>
例外処理メカニズム
modbus通信中、接続または操作の異常がより一般的です。エラーの検出と処理は、次のコードを使用して実行できます。
<?php
// 作成するModbus TCP接続する
$connection = modbus_new_tcp($ip, $port);
if(!$connection) {
die("无法接続する到Modbusサーバ");
}
// 例外処理
$exception = modbus_errno();
if($exception) {
die("Modbus操作例外:" . modbus_strerror($exception));
}
// 閉鎖接続する
modbus_close($connection);
?>
要約します
この記事で説明した方法により、PHP環境でModbus TCPデバイスと正常に通信できます。登録データの読み取りであろうと、制御手順を書くかどうかにかかわらず、これらの基本操作は、産業制御システムの構築に信頼できる技術サポートを提供します。これらのコンテンツを習得すると、産業用自動化関連の開発タスクをより効率的に完了するのに役立ちます。