OpcLabs.BaseLib, Version=5.31.1446.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
OpcLabs.BaseLibExtensions, Version=5.31.1446.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
OpcLabs.EasyOpcClassic, Version=5.31.1446.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
OpcLabs.EasyOpcClassicExtensions, Version=5.31.1446.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
OpcLabs.EasyOpcClassicInternal, Version=5.31.1446.1, Culture=neutral, PublicKeyToken=6faddca41dacb409
OpcLabs.BaseLib.LiveMapping
OpcLabs.EasyOpc
OpcLabs.EasyOpc.DataAccess
OpcLabs.EasyOpc.DataAccess.Generic
OpcLabs.EasyOpc.DataAccess.LiveMapping
OpcLabs.EasyOpc.DataAccess.LiveMapping.Extensions
OpcLabs.EasyOpc.LiveMapping
System.Threading
[DAType]
public class Device
{
public string DeviceCode {get;set;}
[DANode()]
[DAItem()]
public bool IsRunning {get;set;}
[DANode()]
[DAItem()]
public int Speed {get;set;}
[DANode()]
[DAItem()]
public int Position {get;set;}
}
public class LineDef
{
public LineDef()
{
Devices = new List();
}
public List Devices {get;set;}
}
void Main()
{
var sd = "Kepware.KEPServerEX.V5";
//initialization object
var line = new LineDef();
line.Devices.Add(new Device() { DeviceCode="dev1"});
line.Devices.Add(new Device() { DeviceCode="dev2"});
line.Devices.Add(new Device() { DeviceCode="dev3"});
line.Devices.Add(new Device() { DeviceCode="dev4"});
line.Devices.Add(new Device() { DeviceCode="dev5"});
//preparing mapping
var mapper = new DAClientMapper();
foreach(var dev in line.Devices)
{
mapper.Map(dev, new DAMappingContext
{
ServerDescriptor = sd, // local OPC server
NodeDescriptor = new DANodeDescriptor { BrowsePath = "/TestChannel/MainGroup/Line1/" + dev.DeviceCode},
GroupParameters = 1000,
});
}
mapper.Read();
var i = 1;
foreach(var dev in line.Devices)
{
dev.IsRunning = true;
dev.Position = 10 * i;
dev.Speed = 1;
i++;
}
for(int x = 0; i < 20; i++)
{
mapper.Write();
Thread.Sleep(2000);
}
}