iPhoneで動くModbus TCPサーバーとシミュレータ
編集可能なレジスタマップ付きのサーバーを起動し、手元にPLCがなくても、SCADA、HMI、クライアントのコードをWi-Fi経由で試験できます。
仕組み
- サーバーを開き、ポート
1502のまま開始をタップします。 - 同じWi-Fiネットワーク上の外部のModbus TCPクライアントを、iPhoneのアドレスに向けます。
- アクティブな Client、カウンタ、リクエストログを確認します。
- 終わったら停止をタップします。開いているセッションは閉じます。
編集可能なレジスタマップ
コイルと保持レジスタは書き込み可能で、画面上での操作でも、クライアントからの 05、06、15、16 でも変更できます。ディスクリート入力と入力レジスタは、クライアントからは読み取り専用です。
クライアントが書き込んだ値は、画面を開いている間、1秒に約2回マップへ反映され、停止と開始をまたいで保持されます。指示すれば、保存済みプロファイルでマップに初期値を入れられます。
実際の例外応答
サーバーは、未対応のファンクションには 01、マップ外のアドレスには 02、不正な数量やバイト数には 03、内部エラーには 04 で応答します。PLCに影響を与えずに、クライアントが各エラーをどう扱うかを試せます。
計画に入れておくべき制約
- フォアグラウンドで動作します。試験中は、アプリを画面に開いたままにしてください。
- 既定のポートは
1502です。ポート502は、iOSでは保証されません。 - 対応はModbus TCPのみで、RTU over TCPには対応しません。
- 試験用のツールであり、本番トラフィック用のゲートウェイではありません。
よくある質問
購入前に
PCからiPhoneに接続できますか?
はい。両方が同じネットワーク上にあり、iOSがアプリのローカルネットワークへのアクセスを許可していれば接続できます。サーバー画面に表示されるアドレスと、ポート 1502 を使ってください。
なぜポート502ではないのですか?
ポート 502 はModbusの標準ポートですが、iOSではアプリがこのポートで待ち受けられることを保証していません。クライアントが 502 にこだわる場合は、代わりにノートPCでシミュレータを動かしてください。
同じアプリでクライアントとサーバーの両方になれますか?
両方のモードがあります。2台の端末間で試験するときは、一方でサーバー、もう一方でクライアントを動かします。