FastwelインターフェースモジュールとCoDeSysソフトウェアを使用したMODBUS RTUサーバーの実装

この記事では、MODBUS TCPプロトコルに基づくFastwelのCPM713プログラマブルロジックコントローラーと、NIM742インターフェイスモジュールおよびFastwel用の既製CoDeSys適合ライブラリを使用したMODBUS RTU / ASCIIプロトコルのシリアルバージョンをサポートするWeintekオペレーターパネルとの統合について説明します。



イーサネットベースの産業用プロトコルの人気が高まっています。 産業用システムでこの技術を使用すると、たとえば、システムを柔軟にアップグレードおよび拡張できること、アーキテクチャが簡単で、ネットワークを作成するコストが低いなどの利点があります[1]。 ただし、プロセス制御の分野での新技術の導入はかなり遅いため、多くのデバイスは依然としてシリアルバスに基づく従来の産業用ネットワークを使用しています。



自動化システムを作成する場合、異なるデータ交換プロトコルまたは同じプロトコルのさまざまな変更をサポートするデバイス間でデータ交換を確立することがしばしば必要です。



そのため、Fastwel CPM713コントローラーは、データ伝送にイーサネットネットワークに基づいたMODBUS TCPプロトコルを使用します[2]。 このコントローラーを使用して作業を行うと、MODBUS RTU / ASCIIシリアルプロトコルをサポートするWeintek MT6100iオペレーターパネルからデータを送受信するタスクが発生しました(図1)。





図1. Fastwel I / OコントローラーとWeintek操作パネルの統合



シームレスな統合を使用することは、常にサードパーティのゲートウェイを使用するよりも優先されます。 そのため、この問題を解決するために、Fastwel NIM742インターフェースモジュールを採用しました。これにより、RS-232Cインターフェースでデバイスを接続し、CPM713コントローラーのユーザープログラムを介してデバイスを操作できます。



NIM742モジュールは、CPM713コントローラーのユーザープログラムとともに、Modbus RTUスレーブの動作を実装します。 NIM742はモジュールの共通ラインに接続され、FBUSを介してCPM713コントローラーと通信します(図2)。 MODBUS RTUプロトコルでのNIM742の動作を保証するために、Fastwel適応パッケージに含まれているCoDeSys FastwelModbusServer.libライブラリが使用されます。





図2.モジュールが接続されたCPM71xコントローラー



デバイス接続



次のコンポーネントとアクセサリを使用して、CPM713コントローラーとNIM742インターフェイスモジュールを構成およびプログラムしました。



•コントローラに付属の構成ACS00019のケーブル、

•Fastwelを使用するためのFastwel CoDeSys Adaptation適応パッケージを備えた無料の3DスマートソフトウェアソリューションCoDeSysソフトウェアパッケージ。



Weintek MT6100i操作パネルを使用するには、次のものが必要です。



•構成にケーブルを接続します。これも納入品に含まれています。

•無料のEasyBuilder 8000構成ソフトウェア。



インターフェイスモジュールは、接続ケーブルを使用して操作パネルに接続されます。 このケーブルは、Weintekパネルのユーザーガイドで提供されているピン割り当て情報を使用して独立して作成できます(図3)。 NIM742モジュールとの通信には、データ転送に3つの接点接続を使用する、TxD(送信)、RxD(受信)、GND(グランド)の操作パネルCOM3 [RS-232]ポートが使用されました。





図3. Weintek 6100iパネルのメスコネクタSUB-D COM3 [RS-232]のピン割り当て



図4は、NIM742モジュールの接点と操作パネルのCOM3ポート[3、4]の接続図を示しています。 接続するときは、インターフェイスモジュールのTxDデータ転送ピンを操作パネルのRxDデータ受信ピンに、RxD接点をTxDパネルにそれぞれ接続する必要があることに留意する必要があります。





図4. NIM742モジュールを操作パネルのCOM3ポートに接続します。



したがって、操作パネルとNIM742モジュール間の通信のために、TxDおよびRxD接点をSUB-Dコネクタの8番目と7番目の接点に接続し、モジュールのアースを5番目の接点に接続する必要があります(図5)。





図5. NIM742とWeintek MT6100i操作パネルの接続図。



操作パネルの設定



操作パネルの画面形式は、無料のEasyBuilder8000ソフトウェアを使用して作成および構成されます。 新しいプロジェクトを作成するときは、使用するWeintekパネルのモデルを指定する必要があります(図6)。





図6. EasyBuilder8000で新しいプロジェクトを作成する



さらに、プロジェクトを作成するときは、システム設定を編集し、操作パネルが通信するデバイスのリストを示す必要があります(図7)。 私たちの場合、それはModbus RTUスレーブになります[5]。





図7.プロジェクトのシステム設定



使用するクライアントには、PLCの場所、通信タイプ、COMポート、速度、動作モードのパラメーターが設定されています(図8)。 これらのデータは、PLC作業プログラムでも示されます。





図8.新しいデバイスの設定



すべての通信パラメータを入力した後、画面フォームに制御および表示要素を追加する必要があります:ビットインジケータ、スイッチ、デジタルインジケータなど。 図9は、完成したテストプロジェクトの外観を示しています。





図9.パネル画面のテスト設計



これらの表示および制御要素は、MODBUS変数に関連付けられています。 Modbus RTU変数のアドレス指定は、WeintekパネルをPLCに接続するためのマニュアルに示されています(図10)。





図10. Modbus変数アドレスの表



MODBUSプロトコルは、4種類の変数をサポートしています。



•離散入力(離散入力、1ビット);

•ディスクリート出力(コイル、1ビット)。

•アナログ入力(入力レジスタ、16ビット)。

•アナログ出力(保持レジスタ、16ビット)。



特定の変数にアクセスするには、MODBUSネットワーク上のアドレスも指定する必要があります。



変数のタイプに応じて、コード0x、1x、3x、4xの関数を使用してデータにアクセスします。 0xコードは、コイルタイプに対応します。これは、ビット変数に値を書き込むための出力変数です。 1xアドレスは、離散入力ビット変数のステータスを読み取ります。 3xアドレスは入力レジスタに対応し、アナログ変数のステータスを読み取るために使用されます。 4xアドレスは、アナログ変数保持レジスタに書き込みます。



したがって、最初のスイッチのアドレスは0x1(図11)、2番目のスイッチのアドレスは0x2などになります。 模倣画面のすべての要素のアドレスを表1に示します。





11.作業ニーモニック図の要素へのアドレスの割り当て



表1.作業スキームの画面の要素のアドレス:







PLC用プログラム



CPM713のテストプロジェクトは、FastwelのCoDeSys適応の一部であるFastwelModbusServer.libの既製のサンプルに基づいています。 このライブラリは、高速で汎用的で実装が容易なので、Modbus RTUプロトコルを使用してデータ交換を整理する場合は、使用することをお勧めします。 FastwelModbusServer.libは、ユーザープログラムで使用可能なコントローラーポートを介してMODBUS RTU / ASCIIスレーブの機能を実装します。 NIM742モジュールのポートを介したMODBUS RTUネットワークへのアクセスの整理を含みます。



ユーザーアプリケーションとI / Oモジュール間のデータ交換を整理するには、コントローラーへの物理的な接続に応じてI / Oシステムの構成を追加する必要があります。 テストプロジェクトでは、NIM742モジュールのみを使用し、コントローラー構成を図12に示します。





12.使用されているモジュールのリスト



FastwelModbusServerライブラリには、サーバーを初期化および構成するように設計された単一の関数FwModbusServerInit()があります。 この関数を呼び出すとき、ユーザーはネットワークノードの通信パラメーターを設定し、MODBUSサーバーのアドレス空間に表示されるデータ領域を記述します。 サーバーの初期化は、電源投入後、メインユーザープログラムが起動する前に、Modbusサーバーを1回初期化するOnInitシステムイベントハンドラーからのみ発生します。



COMポートを介したデータ交換パラメーターは、関数自体のローカル変数の設定領域で指定されます(図13)。 ここで、Portはポート番号、BaudRateはデータ転送速度、StopBitはストップビットの長さ、Parityは制御ビットモード、ByteSizeはフレーム内のビット数、NodeAddressはModbusネットワーク内のデバイスのアドレスです。





13. COMポートパラメータの設定



メインプログラムと操作パネル間で交換されるデータは、ユーザーデータタイプPLC_PRG_IN(ネットワーク経由で受信するもの)およびPLC_PRG_OUT(ネットワークに送信するもの)に設定されます。 これらの変数は、WORDタイプ、ダブルワードDWORD、および実数REALの4つの変数の配列です(図14)。





14. Modbus通信の変数



画面フォームとプログラムが適切なデバイスにダウンロードされた後、ウィザードモードの操作パネルがCPM713コントローラーをポーリングします。 実行時の操作パネルの操作画面を図15に示します。





15.ランタイムの操作パネルの操作画面



さらに、必要に応じて、CoDeSysツールを使用して、MODBUS TCPネットワーク経由でCPM713コントローラーが受信したデータを収集し、MODBUS RTUプロトコルを使用して操作パネルにリダイレクトできます。 したがって、CoDeSysおよびNIM742インターフェイスモジュールを使用して、MODBUS RTUおよびMODBUS TCPプロトコルのシームレスな統合を作成できます。



文学



1. Orlov、S。イーサネットおよび産業用ネットワーク/ Sergey Orlov //ネットワークソリューションのジャーナル/ LAN。 -2013。-No. 9-S. 24-31

2. FASTWEL I / O分散型I / Oシステム。 操作マニュアル。 ftp.prosoft.ru/pub/Hardware/Fastwel/Fastwel_IO/Version2/Doc/FIO_UM.pdf

3. Fastwel I / O I /O。I/ Oモジュール。 プログラマーズガイド。 ftp.prosoft.ru/pub/Hardware/Fastwel/Fastwel_IO/Version2/Doc/FIO_Modules_CoDeSys_Adaptation_UM.pdf

4. Weintek MT-600 / 8000シリーズMT-607i、MT-8070iH / MT-6070iH。 インストール手順

5. EasyBuilder8000ユーザーガイド。



All Articles