Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        /// <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);
                }
            }
        }
Beispiel #3
0
        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服务器通讯成功。");
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
            }
        }
Beispiel #12
0
        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();
        }
Beispiel #14
0
        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;
        }
Beispiel #17
0
        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);
            }
        }
Beispiel #19
0
        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();
        }
Beispiel #20
0
        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;
     }
 }
Beispiel #24
0
        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();
        }
Beispiel #25
0
        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();
        }
Beispiel #26
0
        /// <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);
        }
Beispiel #27
0
        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);
        }
Beispiel #28
0
        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);
        }
Beispiel #30
0
        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);
        }