예제 #1
0
        /// <summary>
        /// AddDeviceItem fügt DeviceItem an ausgewähltem Device (TreeView) hinzu
        /// </summary>
        /// <param name="nodes">Einstieg mit Angabe des Device Knotens -> nodes[Projektknoten].Nodes[Device]</param>
        /// <param name="project"></param>
        void AddDeviceItem(TreeNodeCollection nodes, Project project)
        {
            btn_AddHW.Enabled = false;
            string MLFB    = "OrderNumber:" + txt_OrderNo.Text + "/" + txt_Version.Text;
            string name    = txt_AddDevice.Text;
            string devname = "station" + txt_AddDevice.Text;

            //In TreeView nach checked Nodes suchen
            foreach (TreeNode node1 in nodes) // Achtung Einstieg schon mit nodes[Projektknoten].Nodes[Device] => Device
            {
                if (node1 != null)
                {
                    if (node1.Checked)             //Deviceknoten
                    {
                        AddDeviceItem1.Add(node1); //Schreibe in Liste
                    }
                }
                else
                {
                    txt_Status.Text = "No node is checked!";
                }
            }
            foreach (TreeNode checkedNode in AddDeviceItem1) //Für jeden TreeView checked Node wird ein passender Device im Projekt zugeordnet
            {
                if (checkedNode != null)
                {
                    string _devname = checkedNode.Text;        //Device Name von TreeView Auswahl
                    foreach (Device device in project.Devices) // Zuordnung der Devices in neuer Liste
                    {
                        if (device.Name == _devname)
                        {
                            DeviceToAddItem.Add(device);
                        }
                    }
                }
            }//Jetzt stehen alle gewählten Devices als Typ Device in einer Liste
            try
            {
                foreach (Device device in DeviceToAddItem) //jetzt wird für jeden Device das gewünschte DeviceItem hinzugefügt
                {
                    HardwareObject hwObject       = device;
                    string         name_braeak    = hwObject.Name;
                    string         typeIdentifier = MLFB;
                    int            positionNumber = int.Parse(txt_rackPosition.Text); //String zu Int aus Textbox
                    if (hwObject.CanPlugNew(typeIdentifier, name, positionNumber))    //Gibt als Wert True oder False zurück (prüfen ob überhaupt möglich)
                    {
                        DeviceItem newPluggedDeviceItem = hwObject.PlugNew(typeIdentifier, name, positionNumber);
                    }
                }
                GenerateTreeView();
            }
            catch (Exception e)
            {
                MessageBox.Show("Error generating new DeviceItem: " + e.Message);
            }
            btn_AddHW.Enabled = true;
        }
예제 #2
0
        private void button8_Click(object sender, EventArgs e)
        {
            Device PLC_1 = MyProject.Devices.CreateWithItem("OrderNumber:6ES7 517-3FP00-0AB0/V2.1", "PLC_1", "PLC_1_station");
            //DeviceItemComposition deviceItems = PLC_1.DeviceItems;
            HardwareObject hwObject = PLC_1.DeviceItems[0];

            if (hwObject.CanPlugNew("OrderNumber:6ES7 521-1BH10-0AA0/V1.0", "DI 16x24VDC BA_1", 3))
            {
                DeviceItem newPluggedDeviceItem = hwObject.PlugNew("OrderNumber:6ES7 521-1BH10-0AA0/V1.0", "DI 16x24VDC BA_1", 3);
                SetTextInRichTextBox(Color.Black, "Bingo!");
            }
            else
            {
                SetTextInRichTextBox(Color.Black, PLC_1.DeviceItems[0].Name);
            }
        }