記事に含まれるMQTTサーバーとMQTTクライアントのソースコードについては、上記の公式アカウントをクリックして、注意を払った後にキーワードを送信できます:MQTT通信ソースコード。
5G時代の到来とともに、物事のインターネットは加速し始め、徐々に私たちの生活に統合されてきました。すべての相互接続はもはや単なる紙の問題ではありません。
今日、主要なIoTプラットフォームは、私たちから遠く離れているように見える無限の流れの中で出現しています。実際、私たちがあえて調査し、発見する限り、すべての相互接続に簡単にアクセスできます。
今日は、通常の.NET開発者としてサードパーティのIoTプラットフォームを使用せずに、シンプルで実用的なIoTプラットフォームフレームワークを構築する方法を説明します。
1.モノのインターネットフレームワーク
このInternetof Thingsフレームワークは、上位のコンピューターフレームワークに基づいており、Internet ofThings通信プロトコルMQTTと組み合わされています。ホストコンピュータ自体は、収集、アーカイブ、ロギングなどの機能を統合します。これに基づいて、MQTTサーバーに接続し、指定されたトピックトピックに関連データを公開するだけで済みます。関連するWEBおよびAPPは、対応するトピックにサブスクライブするだけで済みます。データを取得できます。
全体的なソフトウェアフレームワークを以下に示します。
図1ソフトウェアフレームワーク全体の実現
上の図からわかるように、ソフトウェア全体はMQTTプロトコルに基づいて構築されており、このソフトウェアフレームワークに従って構築されたMQTTIoTトポロジ図を次の図に示します。
図2MQTTIoTプラットフォームのトポロジ図
2.フレームワークの実装
テストの便宜上、シーメンスS7-1200 PLCを下部コンピューターとして選択し、シーメンスS7を通信に使用します。上部コンピューターは、最初にPLCと通信すると同時に、MQTTサーバーに接続し、指定されたトピックにデータを公開します。
(1)最初に新しいWindowsフォームアプリケーションを作成し、NuGetからxktComm.dllをダウンロードします。
チャート3xktCommダウンロード
(2)次の図に示すような関数設計に従って、UIインターフェイスの開発を開発します。
図4MQTTクライアントUIインターフェイス
(3)UIインターフェイスの設計が完了したら、コードを記述します。ここではオープンソースのmqttライブラリmqttnetを使用し、NuGetを介してダウンロードおよびインストールします。ここで選択したバージョンは2.8.2です。別のバージョンを選択してください。使用方法にはいくつかの違いがあります。
チャート5MQTTnetダウンロード
(4)最初に、基本的なMQTT接続サーバーと切断を実現します。
(5)コミッションに基づいてログ処理オブジェクトとメソッド本体を作成します。
(6)通信変数エンティティのクラスとコレクションを決定して作成します。
実際の開発プロセスでは、これはCMSProに基づいています。このケースはテストに使用されます。次の図に示すように、例として次の4つの変数を読んでください(変数のデータと構造は実際のアプリケーションではこれよりも複雑になる場合があります)。
表1通信変数のリスト
シリアルナンバー |
変数名 |
可変アドレス |
可変型 |
1 |
出口圧力 |
DB100.DBD0 |
浮く |
2 |
入口圧力 |
DB100.DBD4 |
浮く |
3 |
出力温度 |
DB100.DBD8 |
浮く |
4 |
入口温度 |
DB100.DBD12 |
浮く |
この構造に従って、次の図に示すように、エンティティクラスを作成します。
(7)NugetはNewtonsoft.Jsonを追加し、JSON変換クラスを導入して、送信のためにオブジェクトをJSON形式の文字列に変換しやすくしました。
(8)xktComm.dllとSiemensPLC間の接続を確立します。
(9)タイマーを介して、指定されたサブジェクトにリアルタイムデータをタイムリーにリリースします。
(10)クラウドサーバーでMQTTサーバーを開きます。
図6MQTTサーバーの起動
(11)MQTTクライアントを実行し、サーバーに接続し、クリックしてタイミングを開始します。
図7MQTTクライアントの実行
(12)接続が成功すると、MQTTサーバーがMQTTクライアントから情報を受信したことを確認できます。
図8メッセージを受信するMQTTサーバー
3、フレームワークアプリケーション
データがMQTTサーバーにアップロードされた後、データを取得する必要がある場合は、MQTTを開発してそのトピックにサブスクライブするだけで済みます。このようにして、MQTTサーバーは関連情報をクライアントソフトウェアに自動的にプッシュします。最初にMQTTを使用できます。 Testfx。MQTT.fxは、Eclipse Pahoに基づいてJava言語で記述されたMQTTクライアントツールであり、トピックを介したメッセージのサブスクリプションと公開をサポートします。MQTT.fxを開き、正しいサーバーアドレス、ポート番号、ユーザー、およびパスワードを入力し、トピックthingerをサブスクライブすると、次の図に示すように、サーバーから送信されたデータをリアルタイムで受信できます。
チャート9MQTT.fxアプリケーション
同時に、関連するWEBページやAPPを開発してデータを取得することもできます。簡単なAPPのデータ表示は次のとおりです。
図10TIAポータルデータ
チャート11APPデータ表示
4、全体的な要約
この記事は、ローカルPLCコントローラーからデータをアップロードするプロセスを実現するためのMQTTプロトコルに主に基づいています。アリババクラウドサーバーをベースに、どこからでもローカルPLCのリアルタイムデータにアクセスし、データのリモートアップロードを実現できます。この記事は主に電気および産業の制御担当者を対象としています。InternetofThingsは将来の開発トレンドになるはずです。すべてのPLCエンジニアと電気エンジニアは、現在は使用されないかもしれませんが、将来は常に使用されるプログラミング言語を習得することをお勧めします。
記事に含まれるMQTTサーバーとMQTTクライアントのソースコードについては、上記の公式アカウントをクリックして、注意を払った後にキーワードを送信できます:MQTT通信ソースコード。
● WinFormユニバーサル自動更新AutoUpdaterプロジェクトの実際の戦闘
● 上位コンピュータによって開発されたSiemensPLC-S7通信プラクティス
● GDI +テクノロジーに基づく産業用ダッシュボードコントロールを開発する
● 上位のコンピューターC#はOPCUAを介してSiemensPLCと通信します
● S7-PLCSIMAdvancedに基づいてS7通信シミュレーション環境を構築します
● ローカルデータをクラウドサーバーにアップロードするためのC#に基づく
● OPCUA + MQTTは、Internet ofThingsの一般的なフレームワークを構築します
● アッパーコンピューターが開発した三菱QシリーズPLC通信練習
Douyinをフォローすることを歓迎します