通信の手順を、毎回自分で書いている。
フレームの組み立て、タイムアウト、切断からの復帰。LadderLink は SLMP / MCプロトコルと KV 上位リンクを内蔵し、自動再接続まで面倒を見ます。
Windows の C# アプリから、三菱電機 MELSEC・キーエンス KV を Ethernet で監視・読み書きする .NET ライブラリです。IP アドレスと監視したいデバイスを設定すれば、値の変化がイベントで届きます。通信の手順は、もう書かなくていい。
監視アプリや帳票アプリを作るとき、本当に作りたいのは画面とデータの扱いのはず。通信まわりの面倒は、ライブラリに任せてください。
通信の手順を、毎回自分で書いている。
フレームの組み立て、タイムアウト、切断からの復帰。LadderLink は SLMP / MCプロトコルと KV 上位リンクを内蔵し、自動再接続まで面倒を見ます。
監視する点数が増えたら、周期が間に合わない。
1 点ずつ読むと往復の回数だけ時間がかかります。LadderLink はまとめ読みのコマンドを自動で使い分け、1 周期の通信回数を減らします。
現場の PC に入れるものを、増やしたくない。
PLC との通信用に別のソフトをインストールする必要はありません。DLL をアプリと同じフォルダに置くだけで動き、インターネットに出られない PC でも使えます。
アプリから見えるのは、C# のクラスとイベントだけ。PLC との通信、型の変換、まとめ読みの最適化は、すべて LadderLink の中で行います。
MELSEC も KV も同じクラス・同じメソッドで扱えます。PLC の種類はプロパティで切り替えるだけです。
書込み保護やライセンスの判定は、通信処理と同じネイティブ DLL の中で行います。どこから呼んでも、同じルールが必ず効きます。
本体は NativeAOT で作ったネイティブ DLL で、C 形式の関数も公開しています。C/C++ から直接使えるほか、将来の Excel(VBA)対応の土台になります。
まとめ読みなしで 1 項目ずつ読むと約 86 ms。ランダム読出しとブロック読出しを使い分けることで、通信の往復を減らします。
当社実測:MELSEC iQ-F FX5S-30MT/ES、SLMP(TCP・バイナリ)、監視 30 項目。環境により異なります。
必要なのは LadderLink の DLL だけ。NuGet からの取得もしないので、インターネットにつながらない現場の PC へも、フォルダごとコピーして持ち込めます。
三菱電機 MELSEC とキーエンス KV を、PLC の種類のプロパティを切り替えるだけで扱えます。ラインごとにメーカーが違っても、監視アプリを作り分ける必要はありません。
「読めた」で終わらず、現場で何か月も動かし続けるための機能を入れています。
PlcMonitor は WinForms のデザイナーに対応。IP アドレス・監視周期・監視対象をプロパティウィンドウで設定できます。値の変化は UI スレッドのイベントで届くので、そのまま画面に表示できます。
小さい項目はランダム読出し、大きい項目はブロック読出しにまとめます。PLC が対応していなければ別の方式に切り替え、読めない項目は自動で切り分けて、ほかの項目の監視を止めません。
Int16・Int32・Float・Double・文字列・ビット、それぞれの配列に対応。iQ-F の X/Y の 8 進表記や KV のチャンネル表記など、機種ごとの決まりはライブラリが扱います。
読み取り専用モードと、書込みを許可するデバイスの範囲を指定できます。範囲外への書込みは PLC に一切送らずに拒否し、すべての書込みを記録に残せます。
通信が切れると接続状態のイベントで知らせ、PLC が戻れば自動でつなぎ直して監視を再開します。監視中の単発の読み書きも、同じ接続を共有して安全に行えます。
接続・通信断・書込みなどを、アプリのログに流したり日付ごとのファイルに出力したりできます。調査のときは、PLC との送受信データまで記録できます。
PLC の種類と IP アドレス、監視したいデバイスを書いて Start() するだけ。書込みも 1 行です。
LadderLink.dll を参照し、ネイティブ DLL をアプリと同じフォルダに置きます。MainForm.csvar monitor = new PlcMonitor { PlcType = PlcType.MelsecIQF, IpAddress = "192.168.3.250", PollingInterval = 100, // 監視周期 [ms] }; monitor.Items.Add("D100", PlcDataType.Int16, name: "ライン速度"); monitor.Items.Add("D200", PlcDataType.Float, name: "炉内温度"); monitor.Items.Add("M0", PlcDataType.Bit, count: 8, name: "ステータス"); // 書込みはこの範囲だけ monitor.AllowedWriteRanges = new[] { "D1000-D1099" }; monitor.ValueChanged += (s, e) => label1.Text = $"{e.Item.Name}: {e.NewValue}"; // UI スレッドで届く monitor.Start(); // 単発の書込み await monitor.WriteAsync("D1000", PlcDataType.Int16, 1500);
実機で確認した機種と、模擬サーバでの試験のみの機種を分けて記載しています。各機種での確認は順次進めています。
| 機種 | 通信方式 | 確認状況 |
|---|---|---|
| MELSEC iQ-F(FX5) | SLMP(3E / 4E バイナリ) | 実機確認済み FX5S-30MT/ES |
| MELSEC iQ-R | SLMP(3E / 4E バイナリ) | 模擬サーバで試験 |
| MELSEC Q / L | MCプロトコル(3E / 4E バイナリ) | 模擬サーバで試験 |
| KEYENCE KV | 上位リンク / MCプロトコル | 模擬サーバで試験 |
工場の PC はインターネットにつながっていないことがほとんど。ライセンスの確認も配布も、オフラインで完結するようにしています。
価格・ライセンスの種類・保守の条件は、リリースに向けて準備中です。評価のご相談や、導入をご検討中の方のご質問は、下のお問い合わせからお気軽にどうぞ。
開発中・検討中の内容で、時期や仕様は変わる可能性があります。
VBA からの呼び出しや、ワークシートで PLC の値を扱えるアドイン。
開発 PC へのセットアップと、ライセンスの登録をまとめて。
開発者 PC への紐付けや、生産ラインの PC 向けのライセンス。
必要ありません。LadderLink は SLMP / MCプロトコル、KV 上位リンクを自前で実装しており、PLC と直接通信します。アプリと LadderLink の DLL だけで動作します。
MELSEC iQ-R / iQ-F では、GX Works3 の Ethernet ポートの設定で「SLMP 接続機器」を追加し、プロトコルを TCP、交信データコードをバイナリにします。書込みを行う場合は「RUN 中書込み」の許可も必要です。KV の上位リンクは、ポート番号(既定 8501)を確認するだけで接続できる設計です(KV の実機での確認は順次進めています)。
FX5S の実機では、PLC 側の接続設定 1 件につき、同時に使える接続は 1 本でした(ほかの機種は確認中です)。複数のアプリから接続する場合は、PLC 側で接続設定を必要な数だけ追加し、別のポート番号を割り当ててください。1 つのアプリの中では、監視と単発の読み書きが同じ接続を共有するので問題ありません。
.NET のライブラリなので VB.NET からも参照できます。C/C++ からは、ネイティブ DLL が公開している C 形式の関数(ヘッダファイル付き)を直接呼び出せます。
制限モード(読み取り専用)で動作します。読出し・監視は、1 回 32 点まで、まとめ読み(監視 1 周期)10 件までの範囲で使えます。書込みはできません。読出しは時間の経過で止まらないので、監視の評価や小規模な確認にはそのまま使えます。書込みも含めて試したい場合は、期限付きでフル機能を使える体験版のキーを発行します。
MELSEC の SLMP / MCプロトコル(3E / 4E フレーム・バイナリ)、または KV の上位リンクに対応した機種であれば、つながる可能性があります。対応状況や機種の追加については、お問い合わせください。
評価から導入後のサポートまで、開発者本人が対応します。
使いたい PLC の機種と、作りたいアプリの概要をお知らせください。
体験版のライセンスキーで、読み書きや監視の速さを実際の PLC で確かめていただけます。
お客様名入りのライセンスキーをお送りします。アプリに組み込めばフル機能になります。
保守期間中に出た修正版・新しいバージョンを使える仕組みにしています(条件はご契約時にご案内します)。
評価のご相談、対応機種のご確認、導入のご相談など、お気軽にお問い合わせください。「この機種でつながる?」という段階のご質問も歓迎します。
お問い合わせは HungOver Technologies のフォームで受け付けています。
下のボタンから開くと、ご相談の分野に「LadderLink(製品)」が選ばれた状態になります。