public OpcController(OpcConfig config) { timer.Interval = 5 * 1000; timer.Elapsed += Timer_Elapsed; Config = config; opcClient = new OpcDaClient(x => { x.ProgId = config.ProgId; x.Tags = config.Items.Select(xx => new OpcTagItem() { Id = xx.Id, ItemId = xx.ItemId, Misc = xx.Misc }).ToArray(); x.DefaultGroupUpdateRate = 100; }) { Shutdown = (s, client) => { if (NetStatus) { NetStatus = false; NetChangedAction?.Invoke(this, false); } Log.Warning("OPC Shutdown,{s}", s); }, DataChange = OpcDataChanged }; }
// 测试OPC public static void Test_CityOPCDataService() { OpcDaClient client = new OpcDaClient("Kepware.KepServerEX.V6"); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); client.Start(); Console.WriteLine("已启动, 耗时: {0} ms", stopWatch.ElapsedMilliseconds); stopWatch.Restart(); client.Write("OPCUA.设备 1.翻身河泵站翻身河泵站.泵站.设备数据.开关型测试点", true, out string message1); client.Write("OPCUA.设备 1.翻身河泵站翻身河泵站.泵站.设备数据.实数型测试点", 88, out string message2); // OPCUA.设备 1.故障通道测试 client.Write("OPCUA.设备 1.故障通道测试.故障设备.400001", 1, out string message3); client.Write("OPCUA.设备 1.故障通道测试.故障设备.400002", 2, out string message4); client.Write("OPCUA.设备 1.故障通道测试.故障设备.400003", 3, out string message5); Console.WriteLine("写入耗时: {0} ms", stopWatch.ElapsedMilliseconds); stopWatch.Restart(); Console.ReadLine(); client.Stop(); }
public MainForm() { InitializeComponent(); //System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; ListViewHelper.EnableDoubleBuffer(MainView); UpdateList(); //Подключаемся к ОРС opcServer = new OPCServer(); var OPCName = "MIR.OPCServerOm3"; opcServer.Guid = OpcDaClient.GetServerGuid(OPCName); //if (!offline) if (OpcDaClient.GetServerGuid(OPCName).ToString() == "00000000-0000-0000-0000-000000000000") { //MessageBox.Show("Не могу найти указанный сервер"); //this.Close(); //Application.ExitThread(); //Application.Exit(); offline = true; } LoadPrefs(); if (!offline) { OPCInit(); } }
public static void TestOPC() { OpcDaClient oPC = new OpcDaClient("Kepware.KepServerEX.V6"); oPC.Start(); //oPC.TestOPCALL(); }