LoginSignup
2
2

GX Works2 & C# connection without MX Component

Last updated at Posted at 2023-03-25

MELSEC PLC用の統合開発環境 GX Works2 には GX Simulator 2 という仮想PLC環境の機能が付いています。この機能を使うとラダープログラムのデバクが可能です。

データベースなど、パソコンとPLCを連携しているシステムの場合、GX Simulator 2 を用いたデバグにおいては、パソコンからこれに対してアクセスする必要があります。

PLCベンダーである同社から MX Component という通信ライブラリや、パートナー向けに販売なさっているEZSokect というミドルウェアを用いることで、これにアクセスすることが推奨されています。
( recommended to use Official Library)

Free Library

今回はこれらを用いずに、C言語や .NET の機能のみによって、これにアクセスすることを試み、DLLにしてみました。

使用するDLL 「Simple GX」

マルウェアが怖い方は、 vector からインストールください。

GX Simulator2 に対して 960ワードの書き込みを、インクリメントしながら100回おこなっている様子です。

C#から呼び出し

//using SimpleGXSimu でDLLを読み込んでください

            GXSim ins = new GXSim();
            ins.CPU =(int)enumCPU._Non;

            ReturnUS rtn = ins.ReadDeviceBlock2("D0",10);
            MessageBox.Show(ins.UShortDis(rtn.dat,"/"));

           ushort[] dat = new ushort[960];
           ushort i;
           for (i = 0; i < 959; i++) { dat[i] =(ushort)(i+1) ; }

           ins.WriteDeviceBlock2("D0",960,dat);

外部機器との通信ではなく、プロセスとのTCP通信なので設定すべきパラメータは 仮想PLC (プロパティ名 CPU) だけでよろしいです。

なお TCP Address は self で 127.0.0.1 なので内部でやってるので指定する必要はありません。TCP Port に関しても、内部で GX Simulator2 の プロセス名から疎通TCP Port を得ているため、これも指定する必要ありません。
指定する必要がないものはパラメータとしても用意していません。

enumCPU. と入力すると、インテリセンス機能により選択肢が表示されます。

Qシリーズ PLCは数十種類ありますが、GX Simulator2 との通信では実質的にパターンは数種類しかありません(いわゆる、高速とかユニバーサルとか、そんな区分で、ちょうどプロセスも分かれてます。)

ただし C言語コントローラや Q173のようなモーションコントローラCPU などのシミュレーションは試していませんのであしからず

VB.NETから呼び出し

        Dim ins As New GXSim
        ins.CPU = enumCPU._Non  'CPUの型番. 列挙体がある(e.g. Q00なら _Non, Q00U なら U )

        Dim rtn As ReturnUS = ins.ReadDeviceBlock2("D0", 10)
        MsgBox(ins.UShortDis(rtn.dat, "/"))
        Dim dat(960) As UShort : For i = 0 To 959 : dat(i) = i + 1 : Next
        ins.WriteDeviceBlock2("D0", 960, dat)

gxaccwss1.png

実用においては

以上は遊びです。遊びではない、実用においては PLCベンダーが販売なさっておられる 公式ソフト MX Component を用いてください。

MCプロトコルは, MCやSLMPコミュニケーションプロトコルリファレンスという形で公開されていますが、GX Simulator のプロトコルは公開されておりません。そういう理由です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2