private void CreateAndConnectIOSystem() { Subnet mySubnet = null; foreach (var subnet in MyProject.Subnets) { mySubnet = subnet; SetTextInRichTextBox(Color.Black, $"[{subnet.Name}] is founded"); } foreach (IoSystem ioSystem1 in mySubnet.IoSystems) { SetTextInRichTextBox(Color.Black, $"[{ioSystem1.Name}] is founded"); } NetworkInterface networkInterface = null; IoSystem ioSystem = null; foreach (Device device in MyProject.Devices) { foreach (DeviceItem Dev1 in device.DeviceItems) { foreach (DeviceItem Dev2 in Dev1.DeviceItems) { if (Dev2.Name == "PROFINET interface_1" || Dev2.Name == "PROFINET interface" || Dev2.Name == "PROFINET Interface_1" || Dev2.Name == "SCALANCE interface_1") { networkInterface = ((IEngineeringServiceProvider)Dev2).GetService <NetworkInterface>(); if ((networkInterface.InterfaceOperatingMode & InterfaceOperatingModes.IoController) != 0) { SetTextInRichTextBox(Color.Black, "Bingo IO Controller"); IoControllerComposition ioControllers = networkInterface.IoControllers; IoController ioController = ioControllers.First(); if (ioController.IoSystem != null) { SetTextInRichTextBox(Color.Blue, $"{ioController.IoSystem.Name} IO system is already connected"); } if ((ioController != null) && (ioController.IoSystem == null)) { ioSystem = ioController.CreateIoSystem(""); } } if ((networkInterface.InterfaceOperatingMode & InterfaceOperatingModes.IoDevice) != 0) { SetTextInRichTextBox(Color.Black, "Bingo IO Device"); IoConnectorComposition ioConnectors = networkInterface.IoConnectors; IoConnector ioConnector = ioConnectors.First(); if (ioConnector != null) { ioConnector.ConnectToIoSystem(ioSystem); } } } } } } }
private void SetNetwork(Device device, Subnet subnet, IoSystem ioSystem, string ipAddress, string pnDeviceNameAuto, string pnDeviceName, int PnDeviceNumber) { foreach (DeviceItem deviceItem in device.DeviceItems[1].DeviceItems) { if (deviceItem.Name.Contains("PROFINET")) { IoConnector ioConnector = deviceItem.GetService <NetworkInterface>().IoConnectors[0]; Node node = deviceItem.GetService <NetworkInterface>().Nodes[0]; node.ConnectToSubnet(subnet); ioConnector.ConnectToIoSystem(ioSystem); node.SetAttribute("Address", ipAddress); ioConnector.SetAttribute("PnDeviceNumber", PnDeviceNumber); if (pnDeviceNameAuto.Equals("False")) { node.SetAttribute("PnDeviceNameAutoGeneration", false); node.SetAttribute("PnDeviceName", pnDeviceName); } } } }