PLCデバイスモニタ用のツールを作ってみた

このカテゴリではPLCとの通信をはじめ、ツールを作ることを記事にしてきました。
が、ただ語るだけでは説得力に欠けるので作ったツールを公開してみます。

ツールはココからダウンロードできます。
ソースコードが気になる方はこちらを参照ください。

目次

開発・動作環境

Visual Studio 2022、言語はC#で作りました。
ターゲットフレームワークは.NET 6.0です。
⇒.NET 6.0がインストールされているWindowsで動作します。
※ランタイムはココからダウンロード出来ます。
必要なものは「.NET デスクトップ ランタイム 6.*.* 」のランタイムで、使用パソコンの環境に合わせたものをインストールして下さい。

対応しているPLCはEthernet通信が可能な機種のみで、
 三菱 (MCプロトコル、SLMP)
 OMRON (FINS)
 KEYENCE (上位リンク、MCプロトコル)
 横河 (パソコンリンク)
で使える、、予定です。
※三菱とKEYECEはプロトコルによってアクセス可能なデバイスが異なります

注意事項

多分動くと思いますが、、実PLCとの接続確認はしていないので予期せぬ不具合が発生する可能性があります。また本ツールを使用したことによる如何なる損害についても一切責任を負いません。ご使用については全て自己責任でお願いします。

心の声

とりあえずコレだけは言っておかんとな。。
テンプレとして。

主な機能

デバイス値を一覧形式で表示出来ます。
データの型はBIT表示、シングルワード(符号付、符号無、16進数)、ダブルワード(符号付、符号無、16進数)、ASCII文字、浮動小数から選択可能です。
※左側でデバイスと表示点数(ワード単位)を指定、表示したいデータ型を選択


タイマ、カウンタ表示の場合は少し異なります。
※左側の表示設定にかかわらず、接点と現在値表示となります。(画像はサンプルなので値はウソです。)


グリッドの対象部分をダブルクリック又はEnterキー(ビットはShift+Enterキー)操作で書込も可能です。ビットはダイアログを出さずにビット反転となります。


またメニューの編集→ワードデータ転送の機能では、三菱でいうところのBMOV/FMOV相当の書込が可能です。

使い方

ダウンロードしたファイルを解凍してDeviceMonitor.exeを起動します。
(多重起動の禁止はしていないので、必要に応じて複数起動できます)

通信設定

最初に通信設定が必要です。
メニューの編集→通信設定 又は
画面下部ステータスバーの通信設定表示部分をダブルクリック
で通信設定が可能です。

※通信中は通信設定出来ません。通信を停止させてから設定してください。
※PLC側でも設定が必要となります。不明な場合は以前の記事を参考に設定してください。
三菱はココOMRONはココKEYENCEはココです。

通信開始・停止

メニューの編集→通信開始(F3)、通信停止(F2)で可能です。
画面下部ステータスバーの通信状態表示部分をダブルクリックでも操作可能です。

※値の書込は通信中のみ可能です

通信時間の設定

画面下部ステータスバーのモニタ間隔設定表示部分をダブルクリックすると時間が変更出来ます。
※初期値は500msです。最短の設定は100msです。

その他の機能

あまりなくても良い機能でもありますが、、時と場合によって活躍することがあるヤツです。

・メニューの編集→値の書込みを禁止
グリッドでダブルクリック/Enterキーの書込みを禁止する機能です。
※ツール上からは割と簡単に値を書き替えられるため、実機でついうっかりの書込み防止目的です

・メニューの表示→常に手前に表示
ツールが非アクティブになってもフォームが前面に表示され他のアプリで隠れなくなります。

・メニューの表示→不透明度の変更
ツールのフォームが半透明になり背面側にあるアプリの画面が透けて見えるようになります。
※実機を前にしたデバッグでは高確率でノートパソコンでの作業となり画面サイズが限られます。PLC開発環境でラダーをモニタしながら、常に手前に表示と組み合わせて他のデバイス値も同時にチェックするような想定です。

感想?

自分で言うのもアレですが、、
作ったものの、ツールとしてはたいして有用なものではありませんw
(PLC開発環境上でのデバイスモニタ的なものと大して変わらないので。。)
※ツールで汎用性を求めると効果が薄くなりがち、専用性を求めれば使える範囲が限られとても公開出来るようなものではなくなってしまう。

そして作るのに結構な時間がかかる。。
計ってないけど平日0~3時間、休日2~8時間くらいで期間は1~1.5カ月ほど。
(大半の時間は通信処理やダイアログ等のライブラリ作りですが。)

まあ、、このツールの目的はハッキリ言うと単純に表に見えにくい部分の仕組み≒ライブラリを作ることで、これによって容易にPLCと通信する土台が出来たことがポイントです。(次に何かツールを作るときに楽できる!)
ただ公開するにあたり”何かしら目に見えるもの”がないとツールとして公開しにくいので、、
可もなく不可もなく的なデバイスのモニタ機能を作ってみた、というところです。

そのうち気が向いたら別のツールを作って公開するかもしれません。
(要望があったら内容と時間次第で作ってみるのも面白いかも??)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (2件)

  • PLC PCの通信だけでなく、タッチパネル PCの通信もやってほしい。
    メモリリンク希望。

    • コメントありがとうございます。
      メモリリンクというのは初耳ですが、、
      ちょっと調べたところデジタル社のタッチパネルと通信する方法でしょうか?
      (特定のメーカーというより、要求コマンドを送信して応答データを受信する方式のことを指すのか、、?)

      なかなかタッチパネルのデータを作る機会が無いので断言はできませんが、ネットでサクッと見つけたデジタル社の資料を見るとなんとなく作れそうな気もします。(PC-PLC間でデバイスを読み書きするのと似ている感じがしたので。)
      ただ、もし作れたとしても機材が無い=確認できないのでどうにもなりませんが。。orz
      (そして資料内の説明が分かりにくい。。)

コメントする

CAPTCHA

目次