Use “Simple GX”| How to use C#, VB,NET on GX Simulator2 ?
.NET DLL to access GX Simulator 2 (MELSEC Q Official Simulator). You can make communicate with one via the C#, VB.NET by using this. Function e.g : WriteDeviceBlock2, ReadDeviceBlock2 ( Like MX Component)
WriteDeviceBlock2, ReadDeviceBlock2 の関数がある. 設定必須パラメータは一つだけで, 起動中のGX Simulator2 の (仮想)CPUを指定するだけ!
Simulator に対して書き込んだり, またはそのデータを VB.NET (や C# )から読み込むことができる。
( ver.1.1, 20230325 , zip , 更新履歴)
但し書きをすると, これは joke soft です(最下部の注意参照)
機能
ありていにいいますと、
▲このようなコードだけで・・、
▲ こんな感じに、GX Simulator2 (GX-Works2 付属のシミュレータ) に書き込んだり、そのデータを読み込んだりできるわけです。
動作環境
【 動作 SDK 】Visual Studio 2013, 2019
【動作環境】 Windows 10 (64bit)
【必要な環境※】 VC++2013 互換Runtime , .NET 4.5.1 互換Runtime (.NET)
リンク先は Microsoft のダウンロードファイルの直リンです。ファイルサイズが大きいので携帯回線ではおすすめしません。いづれもお使いのWindows パソコンの環境によっては既に入っている場合もあります。このDLLは、.NET, C++ 併用したDLLなので、上記2つ両方導入されている必要があります。
内容物
- SimpleGXSimu.dll (要 .NET4.5互換 Runtime. .NET DLL)
- .KumaNetCLI_x86.dll (要 VCpp2013 互換 Runtime. C++/CLI DLL)
- KumaNet_x86.dll (要 VCpp2013 互換Runtime. C++ DLL)
ダウンロードされたサンプルプロジェクトでは既に参照設定しています。新規にプロジェクトを作成される場合は, 1. をご参照ください。
ただし実行の際は 1. ~ 3. をすべて同一ディレクトリ内に配置してください。
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);
VB.NET から呼び出す
'Imports SimpleGXSimu でDLLを読み込んでください
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)
免責
「研究・趣味用途」となっています。業務で用いた場合の、一切の損害は負いません。また、これは Joke soft なので有料版や、それに関するサービスはありません。。
もし 「GX Simulator2 と連携するアプリを作成したい」というご要望がありましたら、その場合は MX-Component を購入し、それを利用した対応になりますので、あらかじめご了承ください。
プロトコル
プロトコルは MCプロトコルではありません。 GX Simulator 2 のプロトコルです。それが免責の理由です。
GX Simulator 3 対応 と SimpleGXSimu.dll の C++ での再実装
そのうち対応予定。