Beispiel #1
0
        /// <summary>
        /// 获取所有节点,包括变量
        /// </summary>
        private void GetAllNode()
        {
            _Nav = new NavModal();
            ReferenceDescriptionCollection referenceDescriptionCollection = uAClient.BrowseRoot();

            GetNodes(referenceDescriptionCollection, _Nav);
        }
Beispiel #2
0
        private ushort GetRfidNamespaceIndex()
        {
            ushort nameSpaceIndex = 0;

            ReferenceDescriptionCollection refDescCol = new ReferenceDescriptionCollection();

            refDescCol = myHelperApi.BrowseRoot();

            //Browse to variable "AutoIdModelVersion" (mandatory in AutoID) in RfidReaderDeviceType object to find out namespace
            foreach (ReferenceDescription refDescA in refDescCol)
            {
                if (refDescA.BrowseName.Name == "Objects")
                {
                    refDescCol = myHelperApi.BrowseNode(refDescA);
                    foreach (ReferenceDescription refDescB in refDescCol)
                    {
                        if (refDescB.BrowseName.Name == "DeviceSet")
                        {
                            refDescCol = myHelperApi.BrowseNode(refDescB);
                            foreach (ReferenceDescription refDescC in refDescCol)
                            {
                                if (refDescC.TypeDefinition == new ExpandedNodeId(RfidOpcUaForm.AutoID.ObjectTypes.RfidReaderDeviceType, (ushort)myHelperApi.GetNamespaceIndex(RfidOpcUaForm.AutoID.Namespaces.AutoID)))
                                {
                                    refDescCol = myHelperApi.BrowseNode(refDescC);
                                    foreach (ReferenceDescription refDescD in refDescCol)
                                    {
                                        if (refDescD.BrowseName.Name == "AutoIdModelVersion")
                                        {
                                            nameSpaceIndex = refDescD.NodeId.NamespaceIndex;
                                            break;
                                        }
                                    }
                                    break;
                                }
                            }
                            break;
                        }
                    }
                    break;
                }
            }

            return(nameSpaceIndex);
        }
Beispiel #3
0
 private void BrowsePage_Enter(object sender, EventArgs e)
 {
     this.Size = new Size(750, 521);
     if (myReferenceDescriptionCollection == null)
     {
         try
         {
             myReferenceDescriptionCollection = myClientHelperAPI.BrowseRoot();
             foreach (ReferenceDescription refDesc in myReferenceDescriptionCollection)
             {
                 nodeTreeView.Nodes.Add(refDesc.DisplayName.ToString()).Tag = refDesc;
                 foreach (TreeNode node in nodeTreeView.Nodes)
                 {
                     node.Nodes.Add("");
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message, "Error");
         }
     }
 }
Beispiel #4
0
        private void GetIDsAtConstruction()
        {
            ReferenceDescriptionCollection refDescCol      = new ReferenceDescriptionCollection();
            ReferenceDescriptionCollection foundRefDescCol = new ReferenceDescriptionCollection();

            refDescCol = myHelperApi.BrowseRoot();

            foreach (ReferenceDescription refDescA in refDescCol)
            {
                if (refDescA.BrowseName.Name == "Objects")
                {
                    refDescCol = myHelperApi.BrowseNode(refDescA);
                    foreach (ReferenceDescription refDescB in refDescCol)
                    {
                        if (refDescB.BrowseName.Name == "DeviceSet")
                        {
                            refDescCol = myHelperApi.BrowseNode(refDescB);
                            foreach (ReferenceDescription refDescC in refDescCol)
                            {
                                if (refDescC.TypeDefinition == new ExpandedNodeId(AutoID.ObjectTypes.RfidReaderDeviceType, (ushort)myHelperApi.GetNamespaceIndex(AutoID.Namespaces.AutoID)))
                                {
                                    foundRefDescCol.Add(refDescC);
                                }
                            }
                        }
                    }
                }
            }

            MethodIds methodIds;

            for (int i = 0; i < foundRefDescCol.Count; i++)
            {
                refDescCol = myHelperApi.BrowseNode(foundRefDescCol[i]);

                foreach (ReferenceDescription refDescD in refDescCol)
                {
                    if (refDescD.BrowseName.Name == "Scan")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.Scan;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ScanStart")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ScanStart;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ScanStop")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ScanStop;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "ReadTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.ReadTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "WriteTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.WriteTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "KillTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.KillTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "LockTag")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.LockTag;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                    else if (refDescD.BrowseName.Name == "SetTagPassword")
                    {
                        objectIdentifier       = (uint)foundRefDescCol[i].NodeId.Identifier;
                        methodIdentifier       = (uint)refDescD.NodeId.Identifier;
                        methodIds.method       = MethodToCall.SetTagPw;
                        methodIds.readpoint    = i;
                        methodIds.methodNodeId = methodIdentifier;
                        methodIds.objectNodeId = objectIdentifier;
                        methodIdList[i].Add(methodIds);
                    }
                }
            }
        }
Beispiel #5
0
        private void EpConnectServerButton_Click(object sender, EventArgs e)
        {
            var classOPCUA = new OPCUA();

            //Check if sessions exists; If yes > delete subscriptions and disconnect
            if (mySession != null && !mySession.Disposed)
            {
                myClientHelperAPI.Disconnect();
                mySession = myClientHelperAPI.Session;
                ResetUI();
            }
            else
            {
                try
                {
                    //Register mandatory events (cert and keep alive)
                    myClientHelperAPI.KeepAliveNotification             += new KeepAliveEventHandler(classOPCUA.Notification_KeepAlive);
                    myClientHelperAPI.CertificateValidationNotification += new CertificateValidationEventHandler(classOPCUA.Notification_ServerCertificate);

                    //Check for a selected endpoint
                    if (mySelectedEndpoint != null)
                    {
                        //Call connect
                        myClientHelperAPI.Connect(mySelectedEndpoint, userPwButton.Checked, userTextBox.Text, pwTextBox.Text);
                        //Extract the session object for further direct session interactions
                        mySession = myClientHelperAPI.Session;

                        //UI settings
                        epConnectServerButton.Text = "Disconnect from server";
                        //myCertForm = null;

                        if (descriptionGridView.Enabled == false)
                        {
                            descriptionGridView.Enabled         = true;
                            descriptionGridView.BackgroundColor = SystemColors.Window;
                            nodeTreeView.Enabled            = true;
                            nodeTreeView.BackColor          = SystemColors.Window;
                            numericS7RecordsCount.Enabled   = true;
                            numericS7RecordsCount.BackColor = SystemColors.Window;
                            textBoxSQLTableName.Enabled     = true;
                            textBoxSQLTableName.BackColor   = SystemColors.Window;

                            textBoxSQLIDColName.BackColor  = SystemColors.Window;
                            textBoxSQLIDColName.Enabled    = true;
                            textBoxSQLValColName.BackColor = SystemColors.Window;
                            textBoxSQLValColName.Enabled   = true;
                            textBoxSQLDATColName.BackColor = SystemColors.Window;
                            textBoxSQLDATColName.Enabled   = true;
                        }

                        if (Config.Sets.Primary_ODBC_DSN != "")
                        {
                            connStringBuilder.Dsn = Config.Sets.Primary_ODBC_DSN;
                            connStringBuilder.Add("Uid", Config.Sets.Primary_ODBC_User);
                            connStringBuilder.Add("Pwd", Config.Sets.Primary_ODBC_Pass);
                        }
                        if (Config.Sets.Primary_OPCUA_Node != "")
                        {
                            //discoveryTextBox.Text = Config.Sets.Primary_OPCUA_Node;
                            textBoxS7DBName.Text            = Config.Sets.Primary_S7_DBName;
                            textBoxS7RecArrayName.Text      = Config.Sets.Primary_OPCUA_RecArray;
                            textBoxS7RecResetCountName.Text = Config.Sets.Primary_OPCUA_RecResetCount;
                        }
                        if (Config.Sets.Primary_SQL_NumberOfRec != 0)
                        {
                            numericS7RecordsCount.Value = Config.Sets.Primary_SQL_NumberOfRec;
                            textBoxSQLTableName.Text    = Config.Sets.Primary_SQL_TableName;
                            textBoxSQLIDColName.Text    = Config.Sets.Primary_SQL_IDColName;
                            textBoxSQLValColName.Text   = Config.Sets.Primary_SQL_ValColName;
                            textBoxSQLDATColName.Text   = Config.Sets.Primary_SQL_DATColName;

                            buttonSaveConfig.Enabled   = true;
                            buttonSaveConfig.BackColor = Color.Transparent;
                        }

                        if (myReferenceDescriptionCollection == null)
                        {
                            try
                            {
                                myReferenceDescriptionCollection = myClientHelperAPI.BrowseRoot();
                                foreach (ReferenceDescription refDesc in myReferenceDescriptionCollection)
                                {
                                    nodeTreeView.Nodes.Add(refDesc.DisplayName.ToString()).Tag = refDesc;
                                    foreach (TreeNode node in nodeTreeView.Nodes)
                                    {
                                        node.Nodes.Add("");
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                if (BGW_OPCUA.IsBusy)
                                {
                                    BGW_OPCUA.CancelAsync();
                                }
                                MessageBox.Show(ex.Message, "Error");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Please select an endpoint before connecting", "Error");
                        return;
                    }
                }
                catch (Exception ex)
                {
                    if (BGW_OPCUA.IsBusy)
                    {
                        BGW_OPCUA.CancelAsync();
                    }
                    //myCertForm = null;
                    MessageBox.Show(ex.Message, "Error");
                }
            }
        }