ThingsGateway(一) ModbusTcpプロトコルデバイスの収集

ThingsGateway(一) ModbusTcpプロトコルデバイスの収集

ThingsGatewayは国内の新しいオープンソースプロジェクトで、産業用データ収集ゲートウェイに属しています。約4ヶ月の洗礼を経て、ほぼ安定しています。

最終更新 2023/07/16 15:55
Diego
読了目安 2 分
カテゴリ
Blazor
タグ
.NET C# Blazor オープンソースプロジェクト オープンソース

この記事はユーザーからの投稿です。ぜひ多くの方に共有してください。

著者:Diego

リポジトリURL:https://gitee.com/diego2098/ThingsGateway

原文リンク:https://www.cnblogs.com/ThingsGateway/articles/17557709.html

Gitee ソースコードリポジトリ:https://gitee.com/diego2098/ThingsGateway

GitHub ソースコードリポジトリ:https://github.com/kimdiego2098/ThingsGateway

ドキュメント:https://diego2098.gitee.io/thingsgateway-docs/

一. はじめに

NuGet(ThingsGateway) License star star star

ThingsGatewayは国内の新しいオープンソースプロジェクトで、産業用データ収集ゲートウェイに属し、約4ヶ月の試練を経て、安定化しつつあります。

この記事では、ThingsGatewayを使用してModbusTcpプロトコル機器を実際に収集し、動画でデモを提供して理解を助けます。

二. テスト環境の準備

  1. ThingsGateway
  2. ModbusSlave

ThingsGatewayを実行する方法はソースドキュメントをご参照ください。

三. 通信テスト

3.1. 収集デバイスの作成

収集デバイスを作成し、ModbusTcpプラグインを選択して、デバイスの拡張プロパティを確認します。ModbusTcpの設定可能項目が表示されます。

現在のテストでは、ローカルマシンの502ポートを使用しているため、デフォルトのまま変更しません。

3.2 変数の作成

変数を作成し、変数名、変数アドレス、データ型を入力します。

変数アドレスは40001で、Modbusプロトコルの保持レジスタ0です。詳細なアドレスルールはソースドキュメントをご参照ください。

3.3. 収集スレッドの再起動

実行状態の右上にあるフロートアイコンから全スレッドを再起動します。再起動が完了すると、デバイス情報が表示されます。

図ではデバイスがオフラインで、最後のエラーメッセージが表示されています。まだModbusSlaveを起動してテストしていないことが明らかです。

3.4. Modbusサーバーの起動

ModbusSlaveを起動し、ModbusTcpプロトコル、ポート502を選択します。

起動後、ゲートウェイにデバイスがオンラインで表示され、読み書きのパケットが降順に表示されます。

3.5. リアルタイムデータの確認

実行状態→収集デバイス→関連変数へジャンプするか、メニューの「リアルタイムデータ」ページを直接クリックすると、関連する変数のリアルタイムデータが表示されます。

ModbusSlaveの自動増加シミュレーション機能を使用すると、ゲートウェイが収集したデータの変化が確認できます(ゲートウェイ表示ページは1秒の更新頻度です)。

これで簡単な通信テストは終了です。

四. 発展的な使い方

4.1. データ変換

次のようなシナリオを考えてみてください。ガス計器の通信値が「実測値×100」または他の複雑な変換を規定している場合、ゲートウェイを使えば複雑な式変換を完璧に解決できます。

変数の読み取り式を raw/100.0 に編集し、スレッドを再起動すると、リアルタイム値と元の値の違いが確認できます。

4.2. 複数変数のパケット分割解析

ModbusTcpに数万の変数がある場合、一つずつ読み取ると効率が極めて低くなります。ゲートウェイのパケット分割制限を使えば、簡単に問題を解決できます。

今回テストしたModbusTcpプラグインでは、最大パケット長(デフォルト100)を変更するか、そのままデフォルトを使用します。

実際の通信パケットを見ると、読み取り時にリクエストを一度だけ送信すればよいことがわかります。

4.3. 収集の冗長化

冗長化の概念は皆さんご存知かと思います。ゲートウェイの収集冗長化も同様です。

冗長デバイスを設定すると、収集デバイスが3回以上オフラインになった場合、予備のデバイスに切り替わります。

五. .NETについて

以下の図は.NET公式サイト(https://dotnet.microsoft.com/zh-cn/)からの引用です。核となる考え:.NETは無料、オープンソース、高速かつクロスプラットフォーム、新しく効率的です。

5.1. .NETの無料とオープンソース

.NETは無料のオープンソースプロジェクトであり、GitHub上で開発・管理されています。GitHubは、優れたコンテンツを共に作り上げたい何百万もの開発者の拠点です。

5.2. .NETの高速性とクロスプラットフォーム

TechEmpowerによれば、.NETは他の一般的なフレームワークよりも高速に実行されます。Windows、Linux、macOSなど、複数のプラットフォームでアプリケーションの作成、実行、ビルドが可能です。

5.3. .NETの新しさと効率性

.NETはWeb、モバイル、デスクトップ、クラウドなど向けのアプリケーション構築を支援します。強力なサポートエコシステムと堅牢なツールを備えており、開発者にとって最も効率的なプラットフォームです。

さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2024/02/29

Winformでもこんなデータ表示ができる

winform開発の過程で、データ表示機能が必要になることがよくあります。これまではgridcontrolコントロールを使用していましたが、今日は例を通して、winform blazor hybridでant design blazorのtableコンポーネントを使ってデータ表示を行う方法を紹介します。

続きを読む
同じカテゴリ / 同じタグ 2024/02/29

Winformの画面も綺麗にできる?

先日、winformでblazor hybridを使用することを紹介しました。また、blazorのUIを組み合わせることでwinformプログラムのデザインをより美しくできると言いました。今回はwinform blazor hybridで描画する例を挙げて説明します。参考になれば幸いです。

続きを読む