banner

ブログ

Jun 30, 2023

Modbus over WLAN (パート 1): ハードウェアとプログラミング

Modbus プロトコルは、システムとコントローラー間の通信に産業分野で広く使用されています。 これは通常、実績のある RS485 インターフェイスと従来の銅線を使用して行われます。 ここでは、ワイヤレス ローカル エリア ネットワーク (WLAN) 上で Modbus プロトコルを使用できるようにするモジュールを紹介します。 このモジュールは、ESP8266 マイクロコントローラーを搭載した Espressif NodeMCU ボードを中心に構築されています。 補助的な Modbus ベースボードを使用すると、産業環境で一般的な電圧レベルである 24 V 信号を扱うことができます。 すべてがどのように機能するかを実証するために、著者らは単純なエレベーター ドア コントローラーを作成しました。 Elektor 読者のほとんどは、Espressif NodeMCU モジュールと Arduino IDE にすでに精通しているでしょう。 そのカテゴリに該当する場合は、この説明をスキップして、Modbus TCP ボードの説明に直接進んでください。 他の皆さんのために、知っておくべきことを簡単に説明します。このプロジェクトは、NodeMCU モジュール (Elektor ストアで入手可能) を中心に構築されています。 このモジュールには、Espressif ESP8266 マイクロコントローラーが搭載されています。これは切手ほどの大きさで、WLAN インターフェイスが付属しています。 小さいサイズにもかかわらず、多くの処理能力を備えています。 ESP8266 マイクロコントローラーの主な機能は次のとおりです。表1

NodeMCU ボードは、ESP8266 の電源電圧を生成し、マイクロコントローラーのプログラミング インターフェイスを管理します。図1に、Modbus 回路で使用される NodeMCU ボードのピン配置の概要を示します。

Arduino IDE は、NodeMCU ボードのプログラミングに非常に適しています。 お使いのコンピュータのオペレーティング システムに適したバージョンの Arduino IDE を Arduino Web サイトから無料でダウンロードし、サイトの指示に従ってインストールできます。 IDE を初めて実行すると、図 2 に示すようなウィンドウが表示されます。 。 プログラム コード ペインには 2 つの事前定義関数が含まれています。 上部には setup() 関数があり、これはプログラムの開始時に 1 回だけ実行され、マイクロコントローラー インターフェイスの初期化などを処理します。下部には、通常、プログラムのソース コードが含まれるloop() 関数があります。 。

setup() 関数が完了した後に、loop() 関数が実行されます。 プログラムがloop()関数の終わりに達すると、最初から再度開始されます。 ESP8266 は、loop() 関数の終了と再開の間の WLAN インターフェイスを管理します。 これは、loop() 関数で無限ループを作成しないようにする必要があることを意味します。そうしないと、ESP8266 がクラッシュすることは避けられません。 代わりに、loop() 関数内のコードは、周期的に実行できるように設計する必要があります。ESP8266 の一見不可解なクラッシュの多くは、プロセッサが処理を管理するのに十分な CPU 時間を取得できないという事実によって引き起こされます。無線LANインターフェース。 大規模なループなど、プログラム コードが長時間実行される可能性がある場合は、yield() 関数または Delay() 関数を使用して、ESP8266 に WLAN 管理に十分な時間を与えることができます。 NodeMCU モジュールを Modbus ボードに接続するには、それをコンピュータの USB ポートに接続する必要がありますが、その前に、すべての準備を整えるためにいくつかのことを行う必要があります。 ESP8266 は Arduino IDE では標準でサポートされていないため、まず IDE を更新する必要があります。 これを行うには、[ファイル] -> [設定] を選択し、[追加のボード マネージャー URL] ボックスに次の URL を入力します。http://arduino.esp8266.com/stable/package_esp8266com_index.json [OK] をクリックし、[ツール] -> [ボード ...] -> を選択します。 [ボード マネージャー] ウィンドウを開くには、ESP8266 を探して、ESP8266 コミュニティ ボードをインストールする必要があります。インストール後、[ツール] -> [ボード] -> にボード NodeMCU 1.0 (ESP-E12 モジュール) が表示され、[ツール -] の下にボードが表示されます。 > [ポート] > NodeMCU ボードが接続されているポート (Linux の場合は /dev/ttyUSBx、Windows の場合は COMx) が表示されます。これで、NodeMCU モジュールの最初の簡単なテスト プログラムを開始できます。 このためには、ファイル -> サンプル -> ESP8266 -> Blink で「Blink」サンプル プログラムを開きます。 で紹介されているプログラムは、

>1);/p>

共有