フレキシブルにお客様のご要望にあわせ提供します.

Use “Simple MC” | How to use C# on MELSEC Q PLC ?

.NET DLL to access MELSEC Q Series PLC . You can make communicate with one via the C#, VB.NET by using this.  Function e.g : WriteDeviceBlock2, ReadDeviceBlock2 ( Like MX Component)

 

  • 非同期利用はやめてください(複数のPLCに同時にアクセスするような非同期的な使い方はしないでください。)

 

( ver.1.0, 20240409 , zip ,   更新履歴 )    v1.0  に差し替え(v1.1を公開しましたがバグがあったので差し戻しました)

更新履歴を参照ください

 

iQ-Rでも一応動作確認できてます。

動作環境

【 動作 SDK 】Visual Studio 2013,  2019 【動作環境】 Windows 10 (64bit) 【必要な環境※】.NET 4.5.1 互換Runtime (.NET)

上記のリンク先は Microsoft のダウンロードファイルの直リンです。ファイルサイズが大きいので携帯回線ではおすすめしません。お使いのWindows パソコンの環境によっては既に入っている場合もあります。

機能( SimpleMC.dll)

三菱MELSEC PLC Q にVB.NET, C# でアクセスできる MCプロトコル通信ライブラリです。

  • Ethernet(3E),  シリアルは RS-232C(形式2-5) の通信が可能
  • Ethernet においてはバイナリ/ASCII 選択可 ( シリアルはプロトコル仕様上、固定)
  • タイムアウト設定ができる
  • ランダム読み書き、ビット単位読み書き、ダブルワード単位読み書きも可能 (※1)
  • MELSECNET や シリアルユニットを介したネットワーク構成にも対応 (※2)
  • 非同期利用はやめてください(複数のPLCに同時にアクセスするような非同期的な使い方はしないでください。)

※1.  WriteDeviceBlock2, ReadDeviceBlock2,WriteDeviceBlock2DWord, ReadDeviceBlock2DWord,WriteDeviceBlock2BIT, ReadDeviceBlock2BIT,WriteDeviceBlock2ArrayBit, ReadDeviceBlock2ArrayBit,WriteDeviceRandom2, ReadDeviceRandom2,WriteRandomBlock2,の関数を実装

 

※2. プロパティのうち, MX Component のそれに相当するのは, ActHostAddress,ActPortNumber,ActSourceUnitNumber,ActCOMPort,ActBaudRate,ActDatabits,ActStopbits,ActParity, ActDtrEnable,ActRtsEnable,ActHandShake,ActSourceStation,ActSourceUnitNumber,ActNetworkNumber,ActUnitNumber,ActIONumber,ActConnectUnitNumber,ActCPUTimeOut

 

内容物

  1. SimpleMC.DLL (64KB.)
  2. サンプルアプリケーション( デバイスモニタなど)

 

VB.NET, C# のサンプルプロジェクトを含むソリューションファイルです。

サンプルアプリの一つとして、デバイスモニタ(ただしEthernet) も同梱しています。  このモニタはソースコードも含まれてます

(DLLのソースコードは非開示)

 

 

マニュアル

SimpleMC-Man_1.0

 

 

雰囲気としては以下のような感じです。インスタンスを生成し、関数を実行するだけです。読み込み関数の場合は、Return系データ型を宣言し、それに結果を格納します。

C# から呼び出す


//using SimpleMC; でインポート

       SimpleMC.SimpleMC ins = new SimpleMC.SimpleMC();
            SimpleMC.SimpleMC.RetrunRandomWORD insRandomRec = new SimpleMC.SimpleMC.RetrunRandomWORD();
          // ins= ComInit(ins);  // コンストラクタで初期化するか、このような関数でセットするか
            insRandomRec = ins.ReadDeviceRandom2("D0", "D100", "D200");
            MessageBox.Show(insRandomRec.Finished.ToString());

            while (!insRandomRec.Finished) { }

            MessageBox.Show(insRandomRec.Finished.ToString());

            if (insRandomRec.DataOK) { MessageBox.Show(insRandomRec.UShortArray[2].ToString()); }
            else { MessageBox.Show("Write Fault"); }

 

VB.NET から呼び出す


'Imports SimpleMC.SimpleMC でDLLを読み込んでください

        Dim a As New SimpleMC.SimpleMC
        Dim data(200) As UShort
        data(0) = &HABCD
        data(1) = &HFFFF

        a.WriteDeviceBlock2BIT("M100", data, 16)

 

免責

「研究・趣味用途」となっています。業務で用いた場合の、一切の損害は負いません。

 

プロトコル

プロトコルは MCプロトコルです。うち、Ethernet (3E),  RS-232C( 形式2-5, Frame選択可) に対応。

 

Q and A

ランダム関数の使い方が、ちょっとわかりません。