LadderLink by HungOver
Technologies
PLC to C#, sober and simple.

PLC の値が、
C# に素直に届く。

Windows の C# アプリから、三菱電機 MELSEC・キーエンス KV を Ethernet で監視・読み書きする .NET ライブラリです。IP アドレスと監視したいデバイスを設定すれば、値の変化がイベントで届きます。通信の手順は、もう書かなくていい。

リリース準備中 VERSION 0.9.0 MELSEC · KEYENCE KV .NET Framework 4.6.2+ / .NET 8+
Sound familiar?

PLC とつなぐたびに、
同じところで頭が痛い。

監視アプリや帳票アプリを作るとき、本当に作りたいのは画面とデータの扱いのはず。通信まわりの面倒は、ライブラリに任せてください。

通信の手順を、毎回自分で書いている。

フレームの組み立て、タイムアウト、切断からの復帰。LadderLink は SLMP / MCプロトコルと KV 上位リンクを内蔵し、自動再接続まで面倒を見ます。

監視する点数が増えたら、周期が間に合わない。

1 点ずつ読むと往復の回数だけ時間がかかります。LadderLink はまとめ読みのコマンドを自動で使い分け、1 周期の通信回数を減らします。

現場の PC に入れるものを、増やしたくない。

PLC との通信用に別のソフトをインストールする必要はありません。DLL をアプリと同じフォルダに置くだけで動き、インターネットに出られない PC でも使えます。

How it works

アプリと PLC の間に、
薄く一枚はさむだけ。

アプリから見えるのは、C# のクラスとイベントだけ。PLC との通信、型の変換、まとめ読みの最適化は、すべて LadderLink の中で行います。

メーカーの違いを吸収

MELSEC も KV も同じクラス・同じメソッドで扱えます。PLC の種類はプロパティで切り替えるだけです。

大事な判定は DLL の中で

書込み保護やライセンスの判定は、通信処理と同じネイティブ DLL の中で行います。どこから呼んでも、同じルールが必ず効きます。

C/C++ からも同じ DLL

本体は NativeAOT で作ったネイティブ DLL で、C 形式の関数も公開しています。C/C++ から直接使えるほか、将来の Excel(VBA)対応の土台になります。

By the numbers

数字で見る LadderLink

5.5ms

30 項目を、1 周期 約 5.5 ms で監視

まとめ読みなしで 1 項目ずつ読むと約 86 ms。ランダム読出しとブロック読出しを使い分けることで、通信の往復を減らします。

まとめ読みあり5.5 ms
まとめ読みなし86 ms

当社実測:MELSEC iQ-F FX5S-30MT/ES、SLMP(TCP・バイナリ)、監視 30 項目。環境により異なります。

0個

外部パッケージへの依存なし

必要なのは LadderLink の DLL だけ。NuGet からの取得もしないので、インターネットにつながらない現場の PC へも、フォルダごとコピーして持ち込めます。

2社の PLC に対応

メーカーが混在しても、アプリのコードは一つ

三菱電機 MELSEC とキーエンス KV を、PLC の種類のプロパティを切り替えるだけで扱えます。ラインごとにメーカーが違っても、監視アプリを作り分ける必要はありません。

Features

監視アプリに必要なものを、
最初からひとそろい。

「読めた」で終わらず、現場で何か月も動かし続けるための機能を入れています。

01 · MONITOR周期監視

WinForms のデザイナーに対応

PlcMonitor は WinForms のデザイナーに対応。IP アドレス・監視周期・監視対象をプロパティウィンドウで設定できます。値の変化は UI スレッドのイベントで届くので、そのまま画面に表示できます。

  • ValueChanged
  • データバインド
  • 監視中に項目を追加
02 · FAST READまとめ読み

読み方を自動で選んで、通信回数を減らす

小さい項目はランダム読出し、大きい項目はブロック読出しにまとめます。PLC が対応していなければ別の方式に切り替え、読めない項目は自動で切り分けて、ほかの項目の監視を止めません。

  • 0403 / 0406
  • 自動切り替え
  • 異常項目の切り分け
03 · TYPES型と表記

ワードの並びを、C# の型で受け取る

Int16・Int32・Float・Double・文字列・ビット、それぞれの配列に対応。iQ-F の X/Y の 8 進表記や KV のチャンネル表記など、機種ごとの決まりはライブラリが扱います。

  • Int32 / Float / Double
  • String
  • 8 進・16 進の自動切替
04 · SAFETY書込み保護

書いてはいけない場所には、送らない

読み取り専用モードと、書込みを許可するデバイスの範囲を指定できます。範囲外への書込みは PLC に一切送らずに拒否し、すべての書込みを記録に残せます。

  • 読み取り専用
  • 許可範囲の指定
  • 書込みログ
05 · RECOVERY自動再接続

通信が切れても、戻れば再開

通信が切れると接続状態のイベントで知らせ、PLC が戻れば自動でつなぎ直して監視を再開します。監視中の単発の読み書きも、同じ接続を共有して安全に行えます。

  • ConnectionStateChanged
  • タイムアウト設定
  • 排他制御
06 · DIAGNOSTICSログ

現場で何が起きたかを、あとから追える

接続・通信断・書込みなどを、アプリのログに流したり日付ごとのファイルに出力したりできます。調査のときは、PLC との送受信データまで記録できます。

  • レベル別の出力
  • 日付ごとのファイル
  • 送受信データ
Quick start

監視を始めるまで、
コードはこれだけ。

PLC の種類と IP アドレス、監視したいデバイスを書いて Start() するだけ。書込みも 1 行です。

  1. DLL を参照に追加配布フォルダの LadderLink.dll を参照し、ネイティブ DLL をアプリと同じフォルダに置きます。
  2. 接続先と監視対象を設定コードでもプロパティウィンドウでも設定できます。
  3. イベントで値を受け取る値が変わったときだけ、UI スレッドで通知されます。
  4. 書込みできる範囲を決める許可した範囲の外への書込みは、PLC に送らずに拒否します。
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);
Supported PLCs

対応機種と動作環境

実機で確認した機種と、模擬サーバでの試験のみの機種を分けて記載しています。各機種での確認は順次進めています。

機種通信方式確認状況
MELSEC iQ-F(FX5)SLMP(3E / 4E バイナリ)実機確認済み
FX5S-30MT/ES
MELSEC iQ-RSLMP(3E / 4E バイナリ)模擬サーバで試験
MELSEC Q / LMCプロトコル(3E / 4E バイナリ)模擬サーバで試験
KEYENCE KV上位リンク / MCプロトコル模擬サーバで試験
OS
Windowsx64 / x86(プロセスに合わせて自動で選択)
.NET
.NET Framework 4.6.2 以降
.NET 8 以降
アプリ
WinForms / WPF / コンソール / Windows サービス
依存
なしPLC との通信用ソフトのインストールは不要
PLC 側
Ethernet ポートの設定のみMELSEC は SLMP 接続機器(TCP・バイナリ)を追加
License & delivery

オフラインの現場でも、
監視は止まらない。

工場の PC はインターネットにつながっていないことがほとんど。ライセンスの確認も配布も、オフラインで完結するようにしています。

LICENSE KEY

お客様名入りのキーで、オフライン判定

  • キーはお客様名の入った署名付きの文字列。アプリに埋め込むか、ファイルで置くだけです確認はすべて DLL の中で行い、サーバーへの問い合わせはありません
  • 期限が来ても、読出し(監視)は止まりません装置の監視が突然止まる事故を防ぐためです。書込みは、体験版は期限の翌日から、サブスクリプションは猶予期間の後に使えなくなります(読み取り専用)
  • 永続ライセンスは、保守期間中に出たバージョンを期限後も使い続けられます
  • サブスクリプションは、期限後 30 日間の猶予があります猶予期間中はフル機能のまま。期限の 30 日前から、PLC に接続するたびにログで期限をお知らせします
  • 受け取ったキーは、登録する前に中身を確認できます名義・期限・対象のメーカーを、いま使っているライセンスを変えずに確かめられます
DELIVERY

フォルダで届けて、コピーで導入

  • NuGet ではなく、配布フォルダ(今後はインストーラー)で提供しますオフラインの開発 PC・現場の PC にそのまま持ち込めます
  • キーがなくても、読み取り専用で動作を試せます読出しは 1 回 32 点まで、まとめ読み 10 件まで。書込みも含めて試せる、期限付きの体験版キーも発行できます(期限後は読み取り専用に戻ります)
  • MELSEC と KEYENCE、メーカーごとに有効にできます

価格・ライセンスの種類・保守の条件は、リリースに向けて準備中です。評価のご相談や、導入をご検討中の方のご質問は、下のお問い合わせからお気軽にどうぞ。

ROADMAPこれからの予定

開発中・検討中の内容で、時期や仕様は変わる可能性があります。

  • Planned · 予定Excel から使う

    VBA からの呼び出しや、ワークシートで PLC の値を扱えるアドイン。

  • Planned · 予定インストーラー

    開発 PC へのセットアップと、ライセンスの登録をまとめて。

  • Considering · 検討中ライセンス形態の拡充

    開発者 PC への紐付けや、生産ラインの PC 向けのライセンス。

FAQ

よくある質問

三菱電機の MX Component など、ほかのソフトは必要ですか?

必要ありません。LadderLink は SLMP / MCプロトコル、KV 上位リンクを自前で実装しており、PLC と直接通信します。アプリと LadderLink の DLL だけで動作します。

PLC 側ではどんな設定が必要ですか?

MELSEC iQ-R / iQ-F では、GX Works3 の Ethernet ポートの設定で「SLMP 接続機器」を追加し、プロトコルを TCP、交信データコードをバイナリにします。書込みを行う場合は「RUN 中書込み」の許可も必要です。KV の上位リンクは、ポート番号(既定 8501)を確認するだけで接続できる設計です(KV の実機での確認は順次進めています)。

1 台の PLC に、複数のアプリから同時に接続できますか?

FX5S の実機では、PLC 側の接続設定 1 件につき、同時に使える接続は 1 本でした(ほかの機種は確認中です)。複数のアプリから接続する場合は、PLC 側で接続設定を必要な数だけ追加し、別のポート番号を割り当ててください。1 つのアプリの中では、監視と単発の読み書きが同じ接続を共有するので問題ありません。

VB.NET や C++ からも使えますか?

.NET のライブラリなので VB.NET からも参照できます。C/C++ からは、ネイティブ DLL が公開している C 形式の関数(ヘッダファイル付き)を直接呼び出せます。

ライセンスキーがないとどうなりますか?

制限モード(読み取り専用)で動作します。読出し・監視は、1 回 32 点まで、まとめ読み(監視 1 周期)10 件までの範囲で使えます。書込みはできません。読出しは時間の経過で止まらないので、監視の評価や小規模な確認にはそのまま使えます。書込みも含めて試したい場合は、期限付きでフル機能を使える体験版のキーを発行します。

ここにない機種には対応していますか?

MELSEC の SLMP / MCプロトコル(3E / 4E フレーム・バイナリ)、または KV の上位リンクに対応した機種であれば、つながる可能性があります。対応状況や機種の追加については、お問い合わせください。

Getting started

導入までの流れ

評価から導入後のサポートまで、開発者本人が対応します。

  1. お問い合わせ

    使いたい PLC の機種と、作りたいアプリの概要をお知らせください。

  2. お手元の PLC で評価

    体験版のライセンスキーで、読み書きや監視の速さを実際の PLC で確かめていただけます。

  3. ご契約・キーの発行

    お客様名入りのライセンスキーをお送りします。アプリに組み込めばフル機能になります。

  4. 導入後のサポート

    保守期間中に出た修正版・新しいバージョンを使える仕組みにしています(条件はご契約時にご案内します)。

Contact

まずは、お手元の PLC で
試してみませんか。

評価のご相談、対応機種のご確認、導入のご相談など、お気軽にお問い合わせください。「この機種でつながる?」という段階のご質問も歓迎します。

お問い合わせは HungOver Technologies のフォームで受け付けています。
下のボタンから開くと、ご相談の分野に「LadderLink(製品)」が選ばれた状態になります。

開発・販売
ハングオーバー・テクノロジーズHungOver Technologies
代表者
澤口 正
所在地
東京都町田市
受付時間
平日 10:00〜17:00土・日・祝日は休業
事業
PLC プログラムと PC アプリの一貫開発ラダーも、それを監視する PC アプリも、同じ技術者が手がけています