Modbusスレーブシミュレーション
シミュレーション用の Modbus RTU、TCP、UDP、および ASCIIoverRTU プロトコルをサポートするスタンドアロン Windows アプリ。
Linux および Mac OS X 用の Mono バージョンも含まれています。これらは VB Net バージョンであるため、次のとおりです。
- Linux の場合は、
mono-complete
とmono-vbnc
パッケージをインストールする必要があります。 - Mac は OS X のバージョンによって異なる場合があります。おそらく、
mono
およびmono-basic
パッケージをインストールします。
ファイアウォールが有効になっている場合は、このアプリがネットワーク上で通信できるようにするよう求められる場合があります。
- 通常、プライベート ネットワークでの通信を許可する必要があります。そうしないと、正しく動作しない可能性があります。
- 自分が何をしているのかを理解していない限り、一般アクセスを許可しないでください
- テストが完了したら、ファイアウォールの許可されたアプリのリストからこのアプリを忘れずに削除してください。
このアプリは、アプリの複数のインスタンスを同時に実行できるように設計されています。次に例を示します。
- 次のように、各インスタンスに同じプロトコルを使用しますが、異なるポート番号を使用します。
- IP 127.0.0.1 TCP ポート 501 および IP 127.0.0.1 TCP ポート 502
- 他のツールを利用して、さまざまなプロトコルを組み合わせて使用します (Windows の RTU プロトコルの com0com など)。
アプリは、有効な Modbus スレーブ ID に対するリクエストを処理する必要があります。
これはすべて、修正された nModbus .NET 3.5 ライブラリに基づいています。著作権 (c) 2006 Scott Alexander:
- これらは Windows バージョンのリソースとして含まれていますが、Mono バージョンでは別個です。
クイックテストツールとして使用することを目的としています。
- 対応する ModbusMaster でテストできます (以下のビデオを確認してください)
- または、高機能で無料の AdvancedHMI ソフトウェアを代わりに使用することもできます。
スクリーンショット
機能性
- コイル、ディスクリート入力、入力レジスタ、保持レジスタなど、接続を確立する前にすべての値を設定できます。
- データ グリッド ビューは、最初は 20 行のアドレスを表示するように設定されていますが、必要に応じて
Row Count
ドロップダウン内で変更して、より多くの行またはすべての行を表示できます。 - データ グリッド ビューで、
I/O Address Range
ドロップダウンで選択した値をダブルクリックして変更します。- ブール値は 0 と 1 の間で反転します。
- Uint16 値には 0 ~ 65535 の符号なし整数値が必要です
- ディスクリート入力と入力レジスタは、マスター アプリケーションへの
read-only
アクセスを提供します。-
Master
として指定された MODBUS デバイスは、これらの値を読み取るためのリクエストのみを送信できます。 - これらの値はユーザーがシミュレーターで直接操作する必要があります。それ以外の場合は変更されません。
- コイルと保持レジスタは、マスター アプリケーションへの
read/write
アクセスを提供します。-
Master
として指定された MODBUS デバイスは、これらの値を読み取るリクエストを送信したり、これらの値を変更するリクエストを送信したりできます。 - これらの値は、必要に応じてユーザーがシミュレーターで直接操作することもできます。
-
RTU
およびASCIIoverRTU
プロトコルの場合、このシミュレータは 1 台の PC 上で次の機能を利用できます。- 仮想シリアル ポート ペアを提供する Windows 用の com0com プログラム
- 仮想シリアル ポート ペアを提供する Linux 用の tty0tty プログラム
- 追加の TextBox を使用すると、シリアル ポートを手動で入力できます。
- 主に Linux を対象としており、
/dev/tnt0
<=> /dev/tnt1
のようなtty0tty
仮想ポートのペアにアクセスできます。 - このボックスは Mac Mono バージョンでは削除されました
- このライブラリは、マスク ビット書き込み、機能コード 22 (0x16H または FC22) もサポートしています。
使用法
-> Windowsの場合
exe
フォルダーから Windows 実行可能ファイルを使用するか、次の手順に従って自分でビルドします。- Visual Studio コミュニティ エディション (理想的には 2019) をダウンロードしてインストールします。
- このプロジェクトの zip ファイルをダウンロードして解凍します。
- これを Visual Studio で既存のプロジェクトとして開き、メニューで次の操作を実行します。
- ビルド/ソリューションのビルド (または Ctrl-Shift-B を押します)。
- デバッグ/デバッグの開始 (または F5 キーを押して) アプリを実行します。
-
/bin/Debug
フォルダーで作成された EXE ファイルを見つけ、それを任意のフォルダーまたはデスクトップにコピーします。
- RTU プロトコルをテストするには、com0com を使用して仮想シリアル ポートを作成します
-> モノラルの場合
- Mono がコンピュータにインストールされていることを確認します。
- Linux 用の
mono-complete
パッケージとmono-vbnc
パッケージの両方 - Mac の場合は、
mono
およびmono-basic
パッケージなど、実験する必要があるかもしれません。
- このプロジェクトの zip ファイルをダウンロードして解凍し、
Mono
フォルダー内の Mono アーカイブを見つけます。 - 4 つのファイルを抽出し、必要に応じて、新しく作成したフォルダーや exe ファイルの名前を短いものに変更することもできます (ターミナルのナビゲーションを速くするため)。
- ターミナルを開き、フォルダーに移動して
sudo mono ModbusSlaveSimulation.exe
」と入力します。- Mac では、スーパーユーザー
su
アカウントに切り替える必要がある場合があります。
- RTU プロトコルをテストする場合、Linux では tty0tty 仮想ポートをインストールして使用できる可能性がありますが、Mac では、それ以降の OS X バージョンには疑似端末 (
/dev/ptyp3
や/dev/ttyp3
などのデバイスのペア) があるようです。
Mac ユーザー向けの注意: これは、Mono v2.10.2 を搭載した古い iMac G5 PowerPC コンピューターでテストされました。アプリがフォーカスを失い、継続的な TCP 通信が中断されるという意味で、いくつかの奇妙な動作が存在しました。赤い X の付いたテキスト ボックスがあり、これをクリックするとフォーカスを維持できます (後で別の操作を行う場合は、もう一度クリックします)。他の方法ではテストできないため、実験していただくことになります。
ビデオ
Modbus.TCP.通信.mp4
ライセンス
MIT ライセンスに基づいてライセンスされています。Resources フォルダー内の README.txt ファイルも参照してください。
商標
このプロジェクトで直接的または間接的に言及されているすべての商標は、それぞれの所有者に帰属します。
役立つリソース
AdvancedHMI Web サイト フォーラム。これもオープン ソース プロジェクトです。