private void CreateSubscription() { IndexMethod(); _opc = OpcServer.GetInstance().GetOpc(_opcName); var alarmItem = new OpcMonitoredItem(_opc.cl.GetNode(AlarmPcy), OpcAttribute.Value); alarmItem.DataChangeReceived += HandleAlarmStatusChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(alarmItem); var onItem = new OpcMonitoredItem(_opc.cl.GetNode(KmPcy), OpcAttribute.Value); onItem.DataChangeReceived += HandleKmStatusChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(onItem); var modeAutomat = new OpcMonitoredItem(_opc.cl.GetNode(ModePcy), OpcAttribute.Value); modeAutomat.DataChangeReceived += HandleAutomatChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(modeAutomat); var modeManual = new OpcMonitoredItem(_opc.cl.GetNode(ManualPcy), OpcAttribute.Value); modeManual.DataChangeReceived += HandleManualChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(modeManual); if (FreqPcay == null) { VisFreq = Visibility.Collapsed; } else { VisFreq = Visibility.Visible; var freqItem = new OpcMonitoredItem(_opc.cl.GetNode(FreqPcay), OpcAttribute.Value); freqItem.DataChangeReceived += HandleFreqChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(freqItem); } }
/// <summary> /// Adds/selects the server in the combo box and connects to the server. /// </summary> public void Connect() { OpcUrl url = null; // get the url from the select or from the text. object selection = ServerUrlCB.SelectedItem; if (selection != null && selection.GetType() == typeof(OpcUrl)) { url = (OpcUrl)selection; } else { url = new OpcUrl(ServerUrlCB.Text); } // create an unconnected server object. OpcServer server = Factory.GetServerForURL(url); // invoke the connect server callback. if (server != null) { if (ConnectServer != null) { ConnectServer(server); } } }
public void ConnectMasterOPCServer() { if (IsConnect) { EventLogger.Log("OPC服务器已连接"); //NLogHelper.Error("生产线OPC服务器已连接"); } else { string errorMsg = string.Empty; this.MasterServer = OPCConnector.ConnectOPCServer(0, "localhost", "RSLinx OPC Server", ref errorMsg); if (!string.IsNullOrEmpty(errorMsg)) { EventLogger.Log(errorMsg); //NLogHelper.Error(errorMsg); return; } IsConnect = this.MasterServer != null; if (!IsConnect) { EventLogger.Log("OPC服务器通讯失败"); //NLogHelper.Error("OPC服务器通讯失败"); } EventLogger.Log("OPC服务器通讯成功。"); } }
public override void Stop() { try { this.timer.Stop(); this.timer = null; // 确保所有的Read线程都已经结束 //System.Threading.Thread.Sleep(2 * this.interval); if (this.group != null) { this.group.Remove(false); this.group = null; } if (this.server != null) { this.server.Disconnect(); this.server = null; } RecordManager.DoSystemEventRecord(this, string.Format("Close Device"), RecordType.Event, true); } catch (Exception e) { RecordManager.DoSystemEventRecord(this, string.Format("Close Device:{0}", e.Message), RecordType.Error); } }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var weightItem = new OpcMonitoredItem(_opc.cl.GetNode("WeightDiff_" + _tagWeight), OpcAttribute.Value); weightItem.DataChangeReceived += HandleWeightChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(weightItem); var percentRought = new OpcMonitoredItem(_opc.cl.GetNode(_tagPreciseDos + ".Percents"), OpcAttribute.Value); percentRought.DataChangeReceived += HandlePercentRoughtChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(percentRought); var weightPrecise = new OpcMonitoredItem(_opc.cl.GetNode(_tagPreciseDos + ".PreciseWeight"), OpcAttribute.Value); weightPrecise.DataChangeReceived += HandleWeightPreciseChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(weightPrecise); var byPercent = new OpcMonitoredItem(_opc.cl.GetNode(_tagPreciseDos + ".Work_ByPercent"), OpcAttribute.Value); byPercent.DataChangeReceived += HandleByPercentChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(byPercent); for (int i = 0; i < WorkMode.Length; i++) { WorkMode[i].Subscribe(); } OpcServer.GetInstance().GetSubscription(_opcName).ApplyChanges(); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); if (_isInertBunker) { var preciseModeItem = new OpcMonitoredItem(_opc.cl.GetNode("Precise." + TagGate), OpcAttribute.Value); preciseModeItem.DataChangeReceived += HandlePreciseModeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(preciseModeItem); var roughtModeItem = new OpcMonitoredItem(_opc.cl.GetNode("Rought." + TagGate), OpcAttribute.Value); roughtModeItem.DataChangeReceived += HandleRoughtModeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(roughtModeItem); } var preciseWorkItem = new OpcMonitoredItem(_opc.cl.GetNode(TagGate + ".Precise_Work"), OpcAttribute.Value); preciseWorkItem.DataChangeReceived += HandlePreciseWorkChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(preciseWorkItem); var precisePauseItem = new OpcMonitoredItem(_opc.cl.GetNode(TagGate + ".Precise_Pause"), OpcAttribute.Value); precisePauseItem.DataChangeReceived += HandlePrecisePauseChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(precisePauseItem); var roughtWorkItem = new OpcMonitoredItem(_opc.cl.GetNode(TagGate + ".Rought_Work"), OpcAttribute.Value); roughtWorkItem.DataChangeReceived += HandleRoughtWorkChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(roughtWorkItem); var roughtPauseItem = new OpcMonitoredItem(_opc.cl.GetNode(TagGate + ".Rought_Pause"), OpcAttribute.Value); roughtPauseItem.DataChangeReceived += HandleRoughtPauseChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(roughtPauseItem); }
public static void Main(string[] args) { var manager = new NodeManager(); using (var server = new OpcServer("opc.tcp://localhost:4840/", manager)) { server.Start(); Console.WriteLine("Press enter to exit or ..."); Console.WriteLine("... enter a node path like '/a/b/c' to create a folder node."); Console.WriteLine("... enter a path like '/a/b/.d' to create a numeric variable node."); Console.WriteLine(); while (true) { var path = Console.ReadLine().Trim().Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries); if (path.Length == 0) { break; } var node = manager.AddNode(path); Console.WriteLine("Created: '{0}'", node.Id.ToString(OpcNodeIdFormat.Foundation)); } } }
public bool IsCameraHealthy(string command) { bool result = false; //qualityBits machineQuality = qualityBits.bad; try { camOpcServer = OpcConnection.GetOPCServerConnection(); ItemProperties[] item = null; //get value of command. item = objOpcServer.GetProperties(new string[1] { command }, true, new int[] { 3 }); Property property = item[0].Properties[0]; result = ((OPCDA.OPCQuality)property.Value).QualityField == OPCDA.qualityBits.good; } catch (Exception errMsg) { result = false; Console.WriteLine(errMsg.Message); } finally { //Console.WriteLine(command); } return(result); }
public static int GetOpcServerAllItem(OpcServer opcSer, out List <DriveNodeEntity> driveNodes) { int rtc = -1; driveNodes = null; BrowseTree browseTress = new BrowseTree(opcSer); rtc = browseTress.CreateTree(); if (HRESULTS.Succeeded(rtc)) { TreeNode[] root = browseTress.Root(); if (root != null) { driveNodes = new List <DriveNodeEntity>(); // driveNotes 固定两层 ,没有使用递归 转换 foreach (TreeNode item in root) { DriveNodeEntity driveNodeTemp = CloneDriveNode(item, DriveNodeModel.OPCGroup); foreach (TreeNode itemChild in item.Nodes) { driveNodeTemp.childNode.Add(CloneDriveNode(itemChild, DriveNodeModel.OPCItem)); } driveNodes.Add(driveNodeTemp); } return(0); } } return(rtc); }
public static int GetOpcServerAllItem(string opcSerHostIp, Guid opcSerGuid, out List <DriveNodeEntity> driveNotes) { int rtc = -1; driveNotes = null; try { OpcServer opcSer = new OpcServer(); rtc = opcSer.Connect(new Host(opcSerHostIp), opcSerGuid); if (!HRESULTS.Succeeded(rtc)) { return(rtc); } //获取组 if (GetOPCServerStatus(opcSer, out rtc)) { return(GetOpcServerAllItem(opcSer, out driveNotes)); } } catch (Exception err) { NLogHelper.ExceptionInfo(err, "GetDriveNodes error :{0}", err.Message); } return(rtc); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var readVal = _readVal ?? ValuePcay; var valueItem = new OpcMonitoredItem(_opc.cl.GetNode(Prefix + readVal), OpcAttribute.Value); valueItem.DataChangeReceived += HandleValueChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(valueItem); if (VisValue != null) { var visItem = new OpcMonitoredItem(_opc.cl.GetNode(Prefix + VisValue), OpcAttribute.Value); visItem.DataChangeReceived += HandleVisChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(visItem); } if (VisErrorTag != null) { var visErrorItem = new OpcMonitoredItem(_opc.cl.GetNode(Prefix + VisErrorTag), OpcAttribute.Value); visErrorItem.DataChangeReceived += HandleVisErrorChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(visErrorItem); } if (!string.IsNullOrEmpty(PermitTag)) { _opc = OpcServer.GetInstance().GetOpc(_opcName); var permitDos = new OpcMonitoredItem(_opc.cl.GetNode(PermitTag), OpcAttribute.Value); permitDos.DataChangeReceived += HandlePermitDosChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(permitDos); } }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var addVolumeItem = new OpcMonitoredItem(_opc.cl.GetNode("Add_Volume[" + _contNumDictionary[_containerItem] + "]"), OpcAttribute.Value); addVolumeItem.DataChangeReceived += HandleAddVolumeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(addVolumeItem); var parVolumeItem = new OpcMonitoredItem(_opc.cl.GetNode("PAR_Volume[" + _contNumDictionary[_containerItem] + "]"), OpcAttribute.Value); parVolumeItem.DataChangeReceived += HandleParVolumeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(parVolumeItem); var currentVolumeItem = new OpcMonitoredItem(_opc.cl.GetNode("Volume[" + _contNumDictionary[_containerItem] + "]"), OpcAttribute.Value); currentVolumeItem.DataChangeReceived += HandleCurrentVolumeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(currentVolumeItem); var loadCement = new OpcMonitoredItem(_opc.cl.GetNode("LoadCement_Silos" + _numSilo), OpcAttribute.Value); loadCement.DataChangeReceived += HandleLoadCementChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(loadCement); OpcServer.GetInstance().GetSubscription(_opcName).ApplyChanges(); }
public static void Main(string[] args) { // If the server domain name does not match localhost just replace it // e.g. with the IP address or name of the server machine. var server = new OpcServer( "opc.tcp://localhost:4840/SampleServer", new SampleNodeManager()); // By default an OPC UA server uses the ACL for anonymous authentication. To // support user name and password based authentication the UserName ACL needs // to be enabled. server.Security.UserNameAcl.IsEnabled = true; // To register a specific user name and password pair add that entry to the // UserName ACL of the OPC UA server. var entry = server.Security.UserNameAcl.AddEntry("username", "password"); // Additionally it is possible to allow and deny specific operations on the entry. // By default all operations are enabled on the entry. entry.Deny(OpcRequestType.Write); server.Start(); Console.ReadKey(true); server.Stop(); }
public static void Main(string[] args) { var node = new OpcFolderNode("MyFolder"); node.DisplayName = new OpcText("MyFolder", "en-US", "MyFolder.DisplayName"); node.Description = new OpcText("MyFolder Description", "en-US", "MyFolder.Description"); using (var server = new OpcServer("opc.tcp://localhost:4840", node)) { server.Globalization.AddResources( "en-US", new KeyValuePair <string, string>("MyFolder.DisplayName", "MyFolder (en)"), new KeyValuePair <string, string>("MyFolder.Description", "MyFolder Description (en)")); server.Globalization.AddResources( "de-DE", new KeyValuePair <string, string>("MyFolder.DisplayName", "Mein Ordner (de)"), new KeyValuePair <string, string>("MyFolder.Description", "Meine Ordner Beschreibung (de)")); server.Globalization.AddResources( "fr-FR", new KeyValuePair <string, string>("MyFolder.DisplayName", "Mon dossier (fr)"), new KeyValuePair <string, string>("MyFolder.Description", "Description de mon dossier (fr)")); server.Start(); Console.WriteLine("Server started - press any key to exit."); Console.ReadKey(true); } }
public static void Main(string[] args) { var nodeManager = new SampleNodeManager(); // If the server domain name does not match localhost just replace it // e.g. with the IP address or name of the server machine. OpcServer server = new OpcServer( "opc.tcp://localhost:4840/SampleServer", nodeManager); server.Start(); //// NOTE: All AE specific code will be found in the SampleNodeManager.cs. using (var semaphore = new SemaphoreSlim(0)) { var thread = new Thread(() => nodeManager.Simulate(semaphore)); thread.Start(); Console.WriteLine("OPC UA Server is running..."); Console.ReadKey(true); semaphore.Release(); thread.Join(); server.Stop(); } }
public ServerController(ISoftwareController softwareController, AbstractViewFactory factory, string machineName, string serverId) { _softwareController = softwareController; _serverView = factory.CreateServerView(this, serverId); if (_serverView is ServerTabUserControl serverTabUserControl) { serverTabUserControl.OnUpdateRate += (sender, args) => { Console.WriteLine(@"The new update rage is {0} millisecond", args.StateUpdateRate); _group.UpdateRate = args.StateUpdateRate; } } ; _serverModel = new ServerModel(); _serverModel.ModelChanged += _serverView.ServerModelChange; _machineName = machineName; _serverId = serverId; _itemAccessMutex = new Mutex(); _server = null; _group = null; }
static void Main(string[] args) { string progID = args.Length > 0 ? args[0] : "HWHsc.OPCServer"; string itemID = args.Length > 1 ? args[1] : "/ASSETS.Guid"; string propID = args.Length > 2 ? args[2] : "2"; OpcServer opcServer = new OpcServer(); opcServer.Connect(progID); System.Threading.Thread.Sleep(1000); // we are faster than some servers! OpcProperty[] props = opcServer.QueryAvailableProperties(itemID); for (int i = 0; i < props.Length; i++) { Console.WriteLine($"{props[i].PropertyID} - {props[i].Description}"); } OpcPropertyData[] data = opcServer.GetItemProperties(itemID, new int[] { int.Parse(propID) }); for (int i = 0; i < data.Length; i++) { if (data[i].Error == HRESULTS.S_OK) { Console.WriteLine(data[i].Data); } else { Console.WriteLine("!ERROR:{0}", data[i].Error); } } opcServer.Disconnect(); }
public static void Main(string[] args) { var manager = new NodeManager(); using (var server = new OpcServer("opc.tcp://localhost:4840/", manager)) { var users = server.Security.UserNameAcl; // 1. Add the users to the UserName-ACL. var admin = users.AddEntry(new SystemIdentity("Admin", "admin")); var user = users.AddEntry(new SystemIdentity("User", "user")); var support = users.AddEntry(new SystemIdentity("Support", "support") .Deny("Machine/Shutdown") .Deny("Machine/Speed") .Deny("Machine/Tooling")); // 2. Setup the global user privileges accordingly. user.Deny(OpcRequestType.Write); // 3. Activate the UserName-ACL (this inline disables anonymous access). users.IsEnabled = true; // 4. Publish ACL to node manager. manager.AccessControl = users; server.Start(); Console.WriteLine("Server started - press any key to exit."); Console.ReadKey(true); } }
static void Main(string[] args) { string progID = args.Length > 0 ? args[0] : "Kepware.KEPServerEX.V5"; string itemID = args.Length > 1 ? args[1] : "Simulation Examples.Functions.Ramp1"; OpcServer opcServer = new OpcServer(); opcServer.Connect(progID); System.Threading.Thread.Sleep(500); // we are faster than some servers! OpcProperty[] props = opcServer.QueryAvailableProperties(itemID); int[] propIDs = new int[props.Length]; for (int i = 0; i < props.Length; i++) { propIDs[i] = props[i].PropertyID; } OpcPropertyData[] data = opcServer.GetItemProperties(itemID, propIDs); for (int i = 0; i < props.Length; i++) { Console.Write(" {0}: '{1}' ({2}) = ", props[i].PropertyID, props[i].Description, Extensions.VarEnumToString(props[i].DataType)); if (data[i].Error == HRESULTS.S_OK) { Console.WriteLine(data[i].Data); } else { Console.WriteLine("!ERROR:{0}", data[i].Error); } } opcServer.Disconnect(); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var runningItem = new OpcMonitoredItem(_opc.cl.GetNode("Work_ON"), OpcAttribute.Value); runningItem.DataChangeReceived += HandleRunningChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(runningItem); var pauseItem = new OpcMonitoredItem(_opc.cl.GetNode("Work_Pause"), OpcAttribute.Value); pauseItem.DataChangeReceived += HandlePauseChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(pauseItem); var rdyStartItem = new OpcMonitoredItem(_opc.cl.GetNode("rdy_btn_Start"), OpcAttribute.Value); rdyStartItem.DataChangeReceived += HandleRdyStartChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(rdyStartItem); var rdyStopItem = new OpcMonitoredItem(_opc.cl.GetNode("rdy_btn_Stop"), OpcAttribute.Value); rdyStopItem.DataChangeReceived += HandleRdyStopChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(rdyStopItem); var rdyPauseItem = new OpcMonitoredItem(_opc.cl.GetNode("rdy_btn_Pause"), OpcAttribute.Value); rdyPauseItem.DataChangeReceived += HandleRdyPauseChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(rdyPauseItem); }
/// <summary> /// Connects to the server and browses for top level nodes. /// </summary> private void Connect(TreeNode node) { try { if (!IsServerNode(node)) { return; } // get the server for the current node. OpcServer server = (OpcServer)node.Tag; // connect to server if not already connected. if (!server.IsConnected) { server.Connect(FindConnectData(node)); } // browse for top level elements. Browse(node); } catch (Exception e) { MessageBox.Show(e.Message); } }
/// <summary> /// Disconnects from the server and clear all children. /// </summary> private void Disconnect(TreeNode node) { try { if (!IsServerNode(node)) { return; } // get the server for the current node. OpcServer server = (OpcServer)node.Tag; // connect to server if not already connected. if (server.IsConnected) { server.Disconnect(); } node.Nodes.Clear(); } catch (Exception e) { MessageBox.Show(e.Message); } }
/// <summary> /// Called when a Session is picked in the browse control. /// </summary> private void OnServerPicked(OpcServer server) { if (server != null) { DialogResult = DialogResult.OK; } }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var activeVibroItem = new OpcMonitoredItem(_opc.cl.GetNode(_tagVibro + ".Active"), OpcAttribute.Value); activeVibroItem.DataChangeReceived += HandleActiveVibroChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(activeVibroItem); var onQuantityItem = new OpcMonitoredItem(_opc.cl.GetNode(_tagVibro + ".Work_Count"), OpcAttribute.Value); onQuantityItem.DataChangeReceived += HandleOnQuantityChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(onQuantityItem); var onTimeItem = new OpcMonitoredItem(_opc.cl.GetNode(_tagVibro + ".Work_Time"), OpcAttribute.Value); onTimeItem.DataChangeReceived += HandleOnTimeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(onTimeItem); var pauseTimeItem = new OpcMonitoredItem(_opc.cl.GetNode(_tagVibro + ".Pause_Time"), OpcAttribute.Value); pauseTimeItem.DataChangeReceived += HandlePauseTimeChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(pauseTimeItem); OpcServer.GetInstance().GetSubscription(_opcName).ApplyChanges(); }
static void Main(string[] args) { string progID = args.Length > 0 ? args[0] : "Kepware.KEPServerEX.V5"; OpcServer opcServer = new OpcServer(); opcServer.Connect(progID); System.Threading.Thread.Sleep(500); // we are faster than some servers! SERVERSTATUS serverStatus = opcServer.GetStatus(); Console.WriteLine("'{0}' vendor '{1}' version {2}.{3}.{4}", progID, serverStatus.szVendorInfo, serverStatus.wMajorVersion, serverStatus.wMinorVersion, serverStatus.wBuildNumber); Console.WriteLine("State : {0}", serverStatus.eServerState); Console.WriteLine("Start time : {0}", DateTime.FromFileTime(serverStatus.ftStartTime)); Console.WriteLine("Last update : {0}", DateTime.FromFileTime(serverStatus.ftLastUpdateTime)); Console.WriteLine("Current time: {0}", DateTime.FromFileTime(serverStatus.ftCurrentTime)); // Bandwith and group count valid only for this connection Console.WriteLine("Bandwidth : {0}", serverStatus.dwBandWidth); Console.WriteLine("Group count : {0}", serverStatus.dwGroupCount); opcServer.GetLocaleID(out int lcid); Console.WriteLine("Locale ID: {0}", lcid); opcServer.Disconnect(); }
/// <summary> /// 启动函数 /// </summary> /// <returns></returns> public IResult init() { OPCItemState rslt; OPCDATASOURCE dsrc = OPCDATASOURCE.OPC_DS_DEVICE; ILE.LEResult res = new LEResult(); ///将所有数据点放进RefreshGroup容器 foreach (ILE.IDataPoint po in this.ItemPoints) { if (po.business_code == "01" | po.business_code == "02") //如果是采集完成数与异常数,要把初始值拿到用于扣减 { int j = mySyncIOGroup.Read(dsrc, po.Item_name, out rslt); po.InitVal = rslt.DataValue.ToString(); } int i = myRefreshGroup.Add(po.Item_name); if (!HRESULTS.Succeeded(i)) { res.Result = false; res.ExtMessage = "新增监测点失败"; this.server.Disconnect(); this.server = null; return(res); } } //Action action = new Action(Monitor); //action.BeginInvoke(null, null); thread.Start(); res.Result = true; return(res); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(OpcServer.OpcList.Rbu); var idItem = new OpcMonitoredItem(_opc.cl.GetNode("TaskID"), OpcAttribute.Value); idItem.DataChangeReceived += HandleIdChanged; OpcServer.GetInstance().GetSubscription(OpcServer.OpcList.Rbu).AddMonitoredItem(idItem); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var visItem = new OpcMonitoredItem(_opc.cl.GetNode(TagContainer + ".Pause"), OpcAttribute.Value); visItem.DataChangeReceived += HandleVisChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(visItem); }
public bool testAsynchReadSettings() { OPCDA.NET.RefreshEventHandler dch = new OPCDA.NET.RefreshEventHandler(AsynchReadListenerForCM); OpcServer opcServer = OpcConnection.GetOPCServerConnection(); uGrp = new OPCDA.NET.RefreshGroup(opcServer, DAUpdateRate, dch); return(true); }
private void CreateSubscription() { _opc = OpcServer.GetInstance().GetOpc(_opcName); var paramItem = new OpcMonitoredItem(_opc.cl.GetNode(_opcTag), OpcAttribute.Value); paramItem.DataChangeReceived += HandleIdChanged; OpcServer.GetInstance().GetSubscription(_opcName).AddMonitoredItem(paramItem); }