/// <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; }
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); } }
/// <summary> /// 获取硬件选择情况 /// </summary> public void GetHardwareStatus() { if (a320_Glare == null) { a320_Glare = new HardwareObject(); a320_Glare.HardwareName = HardwareObject.HardwareID.Glare; a320_Glare.HardwareCreate(); } a320_Glare.HardwareChecked = checkBox_Glare.Checked; if (a320_Glare.HardwareChecked) { a320_Glare.m_portID = textBox_Glare.Text; bool ret = a320_Glare.Connect(ref connection); if (!ret) { WriteLine("打开Glare错误"); } } if (a320_TQ == null) { a320_TQ = new HardwareObject(); a320_TQ.HardwareName = HardwareObject.HardwareID.TQ; a320_TQ.HardwareCreate(); } a320_TQ.HardwareChecked = checkBox_Glare.Checked; if (a320_TQ.HardwareChecked) { a320_TQ.m_portID = textBox_TQ.Text; bool ret = a320_TQ.Connect(ref connection); if (!ret) { WriteLine("打开TQ错误"); } } if (a320_YokeL == null) { a320_YokeL = new HardwareObject(); a320_YokeL.HardwareName = HardwareObject.HardwareID.YokeL; a320_YokeL.HardwareCreate(); } a320_YokeL.HardwareChecked = checkBox_YokeL.Checked; if (a320_YokeL.HardwareChecked) { a320_YokeL.m_portID = textBox_YokeL.Text; bool ret = a320_YokeL.Connect(ref connection); if (!ret) { WriteLine("打开YokeL错误"); } } if (a320_YokeR == null) { a320_YokeR = new HardwareObject(); a320_YokeR.HardwareName = HardwareObject.HardwareID.YokeR; a320_YokeR.HardwareCreate(); } a320_YokeR.HardwareChecked = checkBox_YokeR.Checked; if (a320_YokeR.HardwareChecked) { a320_YokeR.m_portID = textBox_YokeR.Text; bool ret = a320_YokeR.Connect(ref connection); if (!ret) { WriteLine("打开YokeR错误"); } } }