ホームページ バックエンド開発 PHPチュートリアル PHP経由でModbus TCPの一括読み書きを実装する方法

PHP経由でModbus TCPの一括読み書きを実装する方法

Jul 17, 2023 pm 03:54 PM
php modbus tcp バッチ読み取り 書く

PHP を介して Modbus TCP のバッチ読み取りおよび書き込みを実現する方法

1. Modbus TCP の概要
Modbus TCP は、TCP/IP プロトコルに基づいた産業用通信プロトコルであり、一般的に使用されています。産業用制御機器通信分野。 Modbus TCPプロトコルを利用することで、機器間でのデータの読み書きを実現します。この記事では、PHP 言語を使用して Modbus TCP のバッチ読み取りおよび書き込みを実装する方法を紹介し、対応するコード例を添付します。

2. 環境の準備
PHP コードの作成を開始する前に、対応する PHP 拡張機能と環​​境をインストールする必要があります。 PHP および Modbus TCP 関連の拡張機能がサーバーにインストールされていることを確認してください。インストールが完了したら、phpinfo() 関数を使用して、PHP が正常に実行されているかどうか、および Modbus TCP 拡張機能がロードされているかどうかを確認できます。

3. Modbus TCP 接続と通信
PHP では、modbus_new_tcp() 関数を使用して Modbus TCP 接続を作成できます。この関数は 2 つのパラメーターを受け入れます。最初のパラメーターは Modbus TCP サーバーの IP アドレス、2 番目のパラメーターは Modbus TCP サーバーのポート番号です。以下はサンプル コードです:

$modbus = modbus_new_tcp("192.168.1.10", 502);
if (!$modbus) {
    die('Failed to create Modbus TCP connection');
}
ログイン後にコピー

作成が成功したら、modbus_read_input_registers() 関数を使用してデータを読み取ることができます。この関数は 4 つのパラメータ、つまり Modbus TCP 接続、スレーブ アドレス、レジスタ アドレス、およびその数を受け入れます。読みます。以下に入力レジスタを読み出すサンプルコードを示します。

$data = modbus_read_input_registers($modbus, 1, 0, 10);
if ($data === false) {
    die('Failed to read input registers');
}
print_r($data);
ログイン後にコピー

上記のコードにより、スレーブアドレス 1 のデバイスのレジスタ 0 から 10 個のレジスタのデータを読み出し、結果を出力することができます。

デバイスに書き込む必要がある場合は、modbus_write_single_register() 関数を使用できます。この関数は、Modbus TCP 接続、スレーブ アドレス、レジスタ アドレス、および書き込むデータの 4 つのパラメータを受け取ります。以下は、単一のレジスタに書き込むためのサンプル コードです。

$success = modbus_write_single_register($modbus, 1, 0, 100);
if (!$success) {
    die('Failed to write single register');
}
ログイン後にコピー

上記のコードでは、データ 100 をスレーブ アドレス 1 のデバイスのレジスタ 0 に書き込むことができます。

4. バッチ読み取りおよび一括書き込み
実際のプロジェクトでは、複数のデバイスに対して同時にデータを読み取りおよび書き込みする必要がある場合があります。 modbus_read_input_registers_batch() 関数と modbus_write_single_register_batch() 関数を使用して、バッチ操作を実装できます。

modbus_read_input_registers_batch() 関数は、Modbus TCP 接続、デバイス アドレス、およびレジスタ アドレスの配列の 3 つのパラメータを受け入れます。以下は、入力レジスタのバッチ読み取りのサンプル コードです。

$addresses = [0, 1, 2, 3, 4];
$data = modbus_read_input_registers_batch($modbus, 1, $addresses);
if (!$data) {
    die('Failed to read input registers batch');
}
print_r($data);
ログイン後にコピー

modbus_write_single_register_batch() 関数は、Modbus TCP 接続、デバイス アドレス、レジスタとデータの配列の 3 つのパラメータを受け取ります。以下は、単一レジスタへのバッチ書き込みのサンプル コードです。

$registersAndData = [
    [0, 100],
    [1, 200],
    [2, 300],
    [3, 400],
];
$success = modbus_write_single_register_batch($modbus, 1, $registersAndData);
if (!$success) {
    die('Failed to write single register batch');
}
ログイン後にコピー

上記のコードを使用すると、デバイスのグループのレジスタを同時に読み書きできます。

5. 概要
上記の紹介とサンプル コードを通じて、PHP 言語を使用して Modbus TCP のバッチ読み取りおよび書き込みを実装するのが比較的簡単であることがわかります。対応する環境を用意し、Modbus TCP関連のPHP拡張機能を利用するだけで、機器間の通信やデータ操作を簡単に実現できます。

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPでtxtファイルを書く際の中国語の文字化けを解決するためのヒント PHPでtxtファイルを書く際の中国語の文字化けを解決するためのヒント Mar 27, 2024 pm 01:18 PM

PHP で書かれた txt ファイルの中国語文字化けを解決するヒント. インターネットの急速な発展に伴い、PHP は広く使用されているプログラミング言語として、ますます多くの開発者に使用されています。 PHP 開発では、中国語のコンテンツを記述する txt ファイルなどのテキスト ファイルの読み取りと書き込みが必要になることがよくあります。ただし、エンコード形式の問題により、書かれた中国語が文字化けして表示されることがあります。この記事では、PHPでtxtファイルに書き込まれた中国語の文字化けを解決するテクニックと、具体的なコード例を紹介します。 PHP、テキストの問題分析

Java で OpenCSV を使用して CSV ファイルを読み書きする例 Java で OpenCSV を使用して CSV ファイルを読み書きする例 Dec 20, 2023 pm 01:39 PM

OpenCSV を使用して Java で CSV ファイルを読み書きする例 CSV (Comma-SeparatedValues) は、カンマ区切り値を指し、一般的なデータ ストレージ形式です。 Java では、OpenCSV は CSV ファイルの読み取りと書き込みによく使用されるツール ライブラリです。この記事では、OpenCSVを使用してCSVファイルの読み書き例を実装する方法を紹介します。 OpenCSV ライブラリの導入 まず、OpenCSV ライブラリを導入する必要があります。

PHP ファイル処理の開始: 読み取りと書き込みのステップバイステップ ガイド PHP ファイル処理の開始: 読み取りと書き込みのステップバイステップ ガイド Sep 06, 2023 am 09:58 AM

PHP ファイル処理の入門: 読み取りと書き込みのためのステップバイステップ ガイド Web 開発では、ユーザーがアップロードしたファイルを読み取る場合でも、後で使用するために結果をファイルに書き込む場合でも、ファイル処理は一般的なタスクです。 PHP ドキュメント処理は非常に重要です。この記事では、PHP でファイルの読み取りと書き込みの基本手順を紹介する簡単なガイドを提供し、参照用のコード例を添付します。 PHP でファイルを読み取る場合、fopen() 関数を使用してファイルを開いてファイル リソース (ファイル) を返すことができます。

PHP経由でModbus TCPの一括読み書きを実装する方法 PHP経由でModbus TCPの一括読み書きを実装する方法 Jul 17, 2023 pm 03:54 PM

PHP で ModbusTCP の一括読み書きを実現する方法 1. ModbusTCP の概要 ModbusTCP は、TCP/IP プロトコルをベースとした産業用通信プロトコルで、産業用制御分野の機器通信によく使われています。 ModbusTCPプロトコルを利用することで、機器間でのデータの読み書きを実現します。この記事では、PHP 言語を使用して ModbusTCP のバッチ読み取りおよび書き込みを実装する方法を紹介し、対応するコード例を添付します。 2. コンパイル開始時の環境準備

PHP と XML: XML 構成ファイルの読み取りと書き込み方法 PHP と XML: XML 構成ファイルの読み取りと書き込み方法 Aug 07, 2023 am 09:25 AM

PHP と XML: XML 構成ファイルの読み取りと書き込み方法 概要: XML (Extensible Markup Language) は、データの保存と送信に使用されるマークアップ言語です。 PHP は、XML ファイルの処理と操作に使用できる強力なサーバー側スクリプト言語です。この記事では、PHP を使用して XML 構成ファイルを読み書きする方法を学びます。 XML 構成ファイルを読み取る: まず、XML ファイルをロードする必要があります。 PHP は、XML ファイルを読み取り、それをオブジェクトまたは配列に解析するための単純な関数を提供します。以下は読み物です

pandas から Excel をエクスポートするためのわかりやすいガイド pandas から Excel をエクスポートするためのわかりやすいガイド Jan 24, 2024 am 08:22 AM

シンプルでわかりやすい Excel 用の pandas 作成チュートリアル (具体的なコード例が必要) [はじめに] Pandas は、データ分析と処理において非常に強力な Python ライブラリです。特に表形式データの操作に適した、使いやすいデータ構造とデータ分析ツールを提供します。その中でも、Excel ファイルへのデータの書き込みは非常に一般的な操作です。この記事では、Pandas を使用して Excel ファイルにデータを書き込む方法と、具体的なコード例を紹介します。 【準備】Pandasを使用する前に、

コンピュータがメモリに書き込むことができず、画面が真っ暗になります。 コンピュータがメモリに書き込むことができず、画面が真っ暗になります。 Feb 18, 2024 pm 08:07 PM

メモリに書き込むことができません: コンピューターの黒い画面 テクノロジーの進歩に伴い、コンピューターは私たちの日常生活に欠かせないツールになりました。オフィスでの仕事であれ、娯楽やレジャーであれ、私たちはコンピューターの助けなしにはやっていけません。しかし、場合によっては、突然画面が真っ黒になったり、クラッシュしたりするなど、コンピューターに問題が発生し、使用に多大な問題を引き起こすことがあります。よくある質問の 1 つは、「メモリに書き込めません」です。このエラー メッセージがコンピュータに表示されると、ユーザーは混乱して無力感を感じることがよくあります。したがって、このエラーの理由は次のとおりです。

Java 書き込みディスク例外 (DiskWriteException) の解決策 Java 書き込みディスク例外 (DiskWriteException) の解決策 Aug 17, 2023 am 10:01 AM

Java ディスク書き込み例外 (DiskWriteException) の解決策 はじめに: Java プログラムでは、永続化操作のためにデータをディスクに書き込む必要があることがよくあります。ただし、Java のディスク書き込み操作を使用すると、DiskWriteException 例外が発生することがあります。この例外は通常、データをディスクに正常に書き込むことができないことを示します。この記事では、この例外の考えられる原因をいくつか紹介し、解決策を示します。 1. 原因分析: ディスク容量が不足しています:

See all articles