Azure IoT Edge と PLCnext
Azure IoT Edge を使用すると、クラウド分析とコスト ロジックを "エッジ" (この場合は PLCnext デバイス) に移動できます。これには、使用帯域幅と遅延を減らすという利点があります。 Azure IoT Edge を使用すると、中央のクラウド アプリケーションから独自のアプリケーションを開発およびデプロイできます。このブログでは、Azure IoT Edge の設定方法とその基本原則の一部を学習します。
はじめに
Azure IoT Edge ソリューションの内外をすべて説明すると、Makersblog にとっては行き過ぎかもしれませんが、このブログを続ける前に必ず自分自身を読んでください。このポータルでは、このブログで行っていることを理解するために必要なすべての情報を見つけることができます。ランタイムをインストールしましょう。
インストール
Azure IoT Hub を作成し、デバイスを作成する
開始する前に、Azure ポータルで何かをセットアップする必要があります。既に Azure アカウントを設定していると思います。
最初に、リソース グループを作成し、わかりやすい名前を付けます。 [新しいリソース グループの作成] をクリックします。リストされていない場合は、「+」ボタンを押して、新しいリソース グループを検索できます。
新しい IoT Hub サービスを作成します。無料の IoT Hub サービスを 1 つ持つことができます。タイプを標準から無料に変更することをお勧めします。それ以外の場合は、すべてをデフォルト設定のままにして、サービスの展開に進みます。最後のステップは、IoT デバイスの作成です。サービスを開き、ウィンドウの左側のパネルで IoT Edge を検索します。それをクリックして、新しい IoT Edge デバイスを作成します。デバイスに ID を与えます。他のすべての設定はデフォルト値のままにできます。
新しく作成したデバイスをクリックし、「プライマリ接続文字列」をメモします。この文字列は、次のステップでデバイスをプロビジョニングするために必要になります。
Azure IoT Edge ランタイムのインストール
以下のコマンドを順番に実行してください。最新バージョンは常にここにあります。
git clone https://github.com/pxcbe/azure-iot-edge.git
cd azure-iot-edge/install
sudo passwd root
su
chmod +x SetupEdge.sh
./SetupEdge.sh
次のステップは、デバイスのプロビジョニングです。この半自動または完全自動化も可能です。詳細については、こちらのインフォポータルをご覧ください。シェルに次のコマンドを入力し、接続文字列を yaml ファイルの 55 行目に貼り付けます (ctrl +s ctrl +x で閉じます)。
nano /etc/iotedge/config.yaml
変更を有効にするためにコントローラーを再起動してください。
reboot
インストールの確認
root として次のコマンドを実行します:
iotedge check --verbose
エラーが発生しない場合は、続行できます。エラーが発生しましたか? GitHub リポジトリを確認してください。修正が利用できる可能性があります。それ以外の場合は、問題を自由に作成してください!
モジュールの導入
ランタイムだけでは何の役にも立ちません。いくつかのモジュールのデプロイを始めましょう! 「モジュールの設定」をクリックし、ランタイム設定をクリックします。ここでは、PLCnext で実行されている NGINX サーバーからクリアするために、「ホストポート」を変更する必要があります。最後に、「Simulated Temperature Sensor」という名前のマーケット プレイス モジュールを追加します。 「レビュー + 作成」を押して、モジュールを PLCnext デバイスにデプロイします。
設定は次のようになります:
{
"HostConfig": {
"PortBindings": {
"443/tcp": [
{
"HostPort": "444"
}
],
"5671/tcp": [
{
"HostPort": "5671"
}
],
"8883/tcp": [
{
"HostPort": "8883"
}
]
}
}
}
テレメトリ メッセージの監視
To verify if the messages are being received. この手順に従って、Azure IoT Tools を Visual Studio Code にインストールしてください。 (Azure にサインインする必要があるため、証明書を使用している場合は、それらが開発中のマシンにもあることを確認してください)。
PLCnext データを IoT Hub に取得
次のステップは、PLCnext Engineer のデータをクラウドに移行することです。これを行うにはいくつかの方法があります。 Modbus モジュールを使用して、PLCnext プロジェクトで Modbus サーバーを作成できます。カスタム モジュールで REST サービスと GET 要求を使用できます。Marketplace でお客様のニーズに合ったものを見つけてください。 OPC Publisher の設定方法を説明します PLCnext の組み込み OPC UA サーバーからデータを公開することから始めましょう。
更新:現在、OPC Publisher モジュールでエラーが発生しているようです。今のところ、別の方法を試してください。
免責事項:このブログでは、PLCnext セキュリティ機能を無効にします。本番環境では使用しないでください!
続行する前に、PLCnext デバイスの WBM でユーザー認証を無効にしてください。
「Simulated Temperature sensor」で行ったのと同じ方法で、Marketplace から OPCPublisher を追加します。モジュールをクリックして、コンテナ作成オプションに移動します。コンテナー作成オプションの下のウィンドウに次の設定をコピーして貼り付けます。
{
"Hostname": "publisher",
"Cmd": [
"publisher",
"--pf=/appdata/publishednodes.json",
"--di=60",
"--to",
"--aa",
"--si=10",
"--ms=262144"
],
"HostConfig": {
"Binds": [
"/iiotedge:/appdata"
],
"PortBindings": {
"62222/tcp": [
{
"HostPort": "62222"
}
]
},
"ExtraHosts": [
"localhost:127.0.0.1"
]
}
}
ノード ID に合わせて次の構成を変更し、フォルダー /appdata を作成して、新しい構成を含む「publishednodes.json」という名前のファイルを作成します。
[
{
"EndpointUrl": "opc.tcp://192.168.10.10:4840",
"UseSecurity": false,
"OpcNodes": [
{
"Id": "ns=3;s=Counter",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
},
{
"Id": "ns=3;s=Sinusoid",
"OpcSamplingInterval": 2000,
"OpcPublishingInterval": 5000
}
]
}
]
すべてがうまくいけば、Azure IoT Tools for Visual Studio にデータが表示されるはずです!
まだ問題がありますか?
次のコマンドを使用して、何が起こっているかを確認できます。
iotedge logs -f "namemode"
クレジット
Oliver Warneke には、私が構築することができた彼の仕事と、私をスピードアップするために時間を割いてくれたことに特に感謝します!
お問い合わせ
問題が発生していますか、それとももっと知りたいですか? [email protected]までご連絡ください。
参考文献
https://docs.microsoft.com/en-us/azure/iot-edge/about-iot-edge?view=iotedge-2018-06産業技術