コード例 #1
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        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);
                    }
                }
            }
        }