示例#1
0
 private bool m_IsOpcStarted     = false;                // opc服务是否启动
 private void OpcUaServerStart()
 {
     if (!m_IsOpcStarted)
     {
         m_IsOpcStarted = true;
         opcUaServer    = new OpcUaServer(Util.SharpSettings.OpcUaStringUrl);//"opc.tcp://localhost:34561/DataTransferServer"
     }
 }
示例#2
0
 public void Stop()
 {
     using (OpcUaServer _server = server)
     {
         // Stop status thread
         server = null;
         status.Wait();
         // Stop server and dispose
         _server.Stop();
         exitCode = ExitCode.Ok;
     }
 }
示例#3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // 配置opc ua的日志输出
            Opc.Ua.Utils.SetTraceLog(Application.StartupPath + @"\Logs\Opc.Ua.Huibo.txt", true);
            Opc.Ua.Utils.SetTraceMask(515);
            // http://117.48.203.204:62547/DataAccessServer
            // opc.tcp://localhost:62547/DataAccessServer
            server = new OpcUaServer("opc.tcp://localhost:62547/DataAccessServer", new DataAccessServer());//117.48.203.204
            StandardServer server2 = server.AppInstance.Server as StandardServer;

            dataAccessServer = server.AppInstance.Server as DataAccessServer;

            serverDiagnosticsCtrl1.Initialize(server2, server.AppConfig);
        }
示例#4
0
        private void BtnConnect_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;

            if (btn.Content.ToString() == "连接")
            {
                if (_SelectedEndpointDes == null)
                {
                    Msg("请选择要连接的终结点");
                    return;
                }

                if (sender == BtnConnect)
                {
                    if (_OpcClient.Connect(_OpcServer))
                    {
                        Msg("连接成功!");
                        btn.Content = "断开连接";
                    }
                    else
                    {
                        Msg("连接失败!");
                    }
                }
                else
                {
                    OpcUaServer uaServer = _OpcServer as OpcUaServer;
                    if (RbNoneLogin.IsChecked == true)
                    {
                        //匿名登录

                        uaServer.UserAuth = false;
                    }
                    else
                    {
                        //使用用户名密码登录
                        uaServer.UserAuth = true;
                        uaServer.UserName = TbUser.Text.Trim();
                        uaServer.Password = TbPass.Password;
                    }

                    if (_OpcClient.Connect(uaServer))
                    {
                        btn.Content = "断开连接";
                        Msg("连接成功!");
                    }
                    else
                    {
                        Msg("连接失败!");
                    }
                }
            }

            else if (btn.Content.ToString() == "断开连接")
            {
                _OpcClient.Disconnect();
                btn.Content = "连接";
                ClearUi();
            }
            else
            {
                Msg("未知情况");
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            #region PortTest
            var port    = new ComponentPort();
            var feature = new MechanicalElectricalFeature();
            port.Mechanical = new Mechanical();
            //port.Mechanical.Feature.Add(feature);
            #endregion

            #region Device


            ((SkillParameter <CartesianCoSy>)robot.Skills.GetSkill <SkillMoveBase>().GetParameter("TargetPose", Direction.Input)).Value = new CartesianCoSy()
            {
                Unit = "mm"
            };

            IDevice             retainer             = new DeviceBase();
            IDeviceCompletement retainerCompletement = new RetainingCylinder._384252240Completement();
            retainer = retainerCompletement.CompleteDeviceDriver(ref retainer);
            retainer.Identification.SerialNumber = "1";
            retainer.PresentationData.BrowseName = "Retainer";
            IDevice             robot             = new DeviceBase();
            IDeviceCompletement robotCompletement = new Mh5FCompletement();
            robot = robotCompletement.CompleteDeviceDriver(ref robot);
            robot.Identification.SerialNumber = "R145455863";

            #endregion

            #region opc
            OpcUaServer            server      = new OpcUaServer();
            OpcUaStartupParameters opcUaParams = new OpcUaStartupParameters()
            {
                RootNodeName = robot.PresentationData.BrowseName,
            };

            OpcUaServer            server2      = new OpcUaServer();
            OpcUaStartupParameters opcUaParams2 = new OpcUaStartupParameters()
            {
                RootNodeName      = retainer.PresentationData.BrowseName,
                IgnoreNullPointer = false
            };
            var physDescr = new PhysicalDescription()
            {
                Pose = new CartesianCoSy()
            };
            ((SkillParameter <IComponent>)retainer.Skills.FirstOrDefault().Parameters.First(x => x.Name == "Material" && x.Direction == Direction.Input)).Value = new Akomi.InformationModel.Product.ProductBase()
            {
                PhysicalDescription = physDescr
            };
            ((SkillParameter <IComponent>)robot.Skills.FirstOrDefault().Parameters.First(x => x.Name == "Material" && x.Direction == Direction.Input)).Value = new Akomi.InformationModel.Product.ProductBase()
            {
                PhysicalDescription = physDescr
            };
            //opcUaParams.CurrentDepth = 0;
            //opcUaParams.MaximumDepth = 3000;

            // It's more comfortable to use only OpcUaStartupParameters for server configuration and try to add missing options in it on demand
            //opcUaParams.TryUseAppConfigFile = false; // If this is true "AkomiServer.dll.config" properties will be used for server specifications
            //opcUaParams.UserCanSearchForConfigurationFile = false;
            opcUaParams.Ports  = new[] { 48060 };
            opcUaParams2.Ports = new[] { 48061 };
            #endregion
            //opcUaParams.InheritedObjectSimplification = new List<Type>() { typeof(IDevice) };
            server.StartServer(robot, opcUaParams);
            server2.StartServer(retainer, opcUaParams2);

            Console.WriteLine("press any Key to exit ...");
            Console.ReadKey();
        }