MCプロトコルとは

MCプロトコルとは「MELSEC コミュニケーションプロトコル」のことで、 Ethernetポートを介してデバイスデータ読み出し/書き込みをおこなうための 三菱電機叶サPLC専用の通信方式です。

IOTのイメージ

よくテレビ等でIOT(モノのインターネット:Internet of Things)が叫ばれ、今や工場システムでも サーバーやスマフォとの通信は必須になってきています。

PCとPLCの通信は PLCとITの連携技術でも紹介している通り、 各メーカーで販売されているライブラリを使用する方法もあります。

メリットとして大幅な工数削減ができますが、当然各メーカーのDLLに左右され、64bitアプリでは使えないとか、 そもそもスマフォやハンディアプリからは使えないといったデメリットがあります。

三菱電機鰍ナは、PLCやタッチパネルから直接データベースにデータ操作できるMESインターフェースを 用意しており、筆者は最初その技術を使おうと考え三菱電機鰍ノ問い合わせました。

しかしながら数十万円のサーバーライセンスや特殊ユニットが必要で、 しかも柔軟な通信システムが構築できないことが判明し、

「もうええわ」(和牛のギャグ)

となってしまいました。

※和牛のギャグ「もうええわ」が分からない方はこちらの動画をどうぞ。
【和牛】「漫才の いろんな もうええわw」

。。。ということで、MCプロトコルを使用します

MCプロトコルの内容は Perlで三菱シーケンサーとSocket通信 に詳しく記載されています。Perl言語のプログラムですが、プログラム内容は他言語のソケット通信でも流用可能です。

VB.NETのプログラムは (MX Component を使わない) MCプロトコル によるPLC Ether通信(VB.NET) にもあります。

MCプロトコル による通信は三菱PLCのみならず、キーエンスPLCとも接続可能です。 筆者もハンディアプリとPLCの通信システムで使用しています。

自作で、MCプロトコル通信クラス作成してみました!!

VB.NETアプリ用のクラスにまとめたMCプロトコル通信プログラムを自作しました。
※三菱PLCと接続確認済みです。

GitHubで公開しています。
https://github.com/sugimoto0614/MCProtocol.git

GitHubを使わない方はこちらからもダウンロードできます。
PLCDataReaderクラスのダウンロード


※連続領域のデータメモリからデータ取得をしたいときは、 MakeContinueData()関数を使用してください。 離散領域はMakeDiscreteData()関数を使用して下さい。

※連続領域のデータメモリは112行目でD300に固定していますので、 書き換えてください。 離散領域のデータメモリ番号は34行目のmDeviceNameArray配列の中身を変更下さい。

※通信先PLCのIPアドレスは、42行目を変更下さい。

通常のソケット通信機能を使っていますので、AndroidやiPhoneアプリからも ソケット通信クラスでコマンドを送受信すればMCプロトコルは使えます。 通信ソフトを作りたいと考えている方は試してみてはいかがでしょうか。