1. TOP
  2. OMRON
  3. 上位アプリケーション
  4. Compolet
  5. FINS通信

概要

Ethernetで接続されているPLCの変数をFins通信を使って読み書きします
フォームにはSysmacCJをsysmacCJ1というインスタンス名で貼って置きます
SysmacCJ

以下サンプルコードはC#で書いてあります
フォームの作成(ボタンの配置など)は省略しているので適宜ボタンなどは配置してください

sysmacCJ1をアクティブにする

通信をするには通信相手のPLCのFinsアドレス(ネットワーク番号、ノード番号、号機番号)をセットして、ActiveプロパティをTrueにします
サンプルではフォームロード時にセットします

private void Form1_Load(object sender, EventArgs e)
{
	sysmacCJ1.NetworkAddress = 0;
	sysmacCJ1.NodeAddress = 1;
	sysmacCJ1.UnitAddress = 0;
	sysmacCJ1.Active = true;
}
	

解説

3-4行目


sysmacCJ1.NetworkAddress = 0;
sysmacCJ1.NodeAddress = 1;
sysmacCJ1.UnitAddress = 0;
sysmacCJ1.Active = true;
	

送信先のPLCのFINSアドレスを設定してActiveをTrueにします
ActiveをTrueにすることで送信先FINSアドレスのPLCと接続します

DMの読出し

button1をクリックするとReadMemoryメソッドを実行してDM0~9の値を読み出します

private void button1_Click(object sender, EventArgs e)
{
	try
	{
		int[] value = (int[])sysmacCJ1.ReadMemory(OMRON.Compolet.SYSMAC.SysmacCSBase.MemoryTypes.DM, 0, 10, false);
		Console.WriteLine(value[0]);
	}
	catch(Exception ex)
	{
		Console.WriteLine(ex.Message);
	}
}
	

解説

5行目


int[] value = (int[])sysmacCJ1.ReadMemory(OMRON.Compolet.SYSMAC.SysmacCSBase.MemoryTypes.DM, 0, 10, false);
	

ReadMemoryを使ってDM0から10CH分の値を読み出します
戻り値はObject型のためint[]にキャストしてvalueに格納します

DMの書込み

button2をクリックするとWriteMemoryメソッドを実行してDM0~2に値を書込みます

private void button2_Click(object sender, EventArgs e)
{
	try
	{
		int[] value = new int[3];
		value[0] = 1;
		value[1] = 2;
		value[2] = 3;

		sysmacCJ1.WriteMemory(OMRON.Compolet.SYSMAC.SysmacCSBase.MemoryTypes.DM, 0, value);
	}
	catch(Exception ex)
	{
		Console.WriteLine(ex.Message);
	}
}
	

解説

5-8行目


int[] value = new int[3];
value[0] = 1;
value[1] = 2;
value[2] = 3;
	

書き込む値をセットします

10行目


sysmacCJ1.WriteMemory(OMRON.Compolet.SYSMAC.SysmacCSBase.MemoryTypes.DM, 0, value);
	

WriteMemoryを使ってDM0からValueの値を書き込みます

この記事へのコメント