internal void OpenViaOpennessDlls()
        {
            for (int i = 0; i < 10; i++)
            {
                try
                {
                    if (tiaPortal != null)
                    {
                        tiaPortal.Dispose();
                        tiaPortal = null;
                    }

                    tiaPortal   = new Siemens.Engineering.TiaPortal(Siemens.Engineering.TiaPortalMode.WithoutUserInterface);
                    tiapProject = tiaPortal.Projects.Open(new FileInfo(ProjectFile));
                }
                catch (Siemens.Engineering.EngineeringSecurityException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (i == 9)
                    {
                        throw;
                    }
                }

                if (tiapProject != null)
                {
                    break;
                }
            }

            LoadViaOpennessDlls();
        }
        internal void LoadViaOpennessDlls()
        {
            tiaPortal   = new TiaPortal(TiaPortalMode.WithoutUserInterface);
            tiapProject = tiaPortal.Projects.Open(ProjectFile);

            var main = new TIAOpennessProjectFolder(this)
            {
                Name = "Main"
            };

            ProjectStructure = main;

            foreach (var d in tiapProject.Devices)
            {
                if (d.Subtype.StartsWith("S7300") || d.Subtype.StartsWith("S7400"))
                {
                    var fld = new TIAOpennessProjectFolder(this)
                    {
                        Name    = d.Name,
                        Comment = d.Comment != null?d.Comment.GetText(CultureInfo.CurrentCulture) : null
                    };
                    main.SubItems.Add(fld);
                    LoadSubDevicesViaOpennessDlls(fld, d);
                }
            }

            //    switch (tiaType)
            //{
            //    case "Siemens.Automation.DomainModel.ProjectData":
            //        fld = new TIAProjectFolder(this, Node);
            //        break;
            //    case "Siemens.Automation.DomainModel.FolderData":
            //        {
            //            var subType = Node.SelectSingleNode("attribSet[@id='" + CoreAttributesId + "']/attrib[@name='Subtype']").InnerText;
            //            if (subType == "ProgramBlocksFolder" || subType == "ProgramBlocksFolder.Subfolder")
            //            {
            //                fld = new TIABlocksFolder(this, Node);
            //            }
            //            else
            //            {
            //                fld = new TIAProjectFolder(this, Node);
            //            }
            //            break;
            //        }
            //    case "Siemens.Simatic.HwConfiguration.Model.DeviceData":
            //        fld = new TIAProjectFolder(this, Node);
            //        break;
            //    case "Siemens.Simatic.HwConfiguration.Model.S7ControllerTargetData":
            //        fld = new TIACPUFolder(this, Node);
            //        break;
            //    case "Siemens.Automation.DomainModel.EAMTZTagTableData":
            //        fld = new TIASymTabFolder(this, Node);
            //        break;
            //    //case "Siemens.Simatic.PlcLanguages.Model.DataBlockData":
            //    //    fld = new TIAProjectFolder(this, Node);
            //    //    break;
            //    default:
            //        break;
            //}
        }
        internal void OpenViaOpennessDlls(Credentials credentials)
        {
            for (int i = 0; i < 10; i++)
            {
                try
                {
                    if (tiaPortal != null)
                    {
                        tiaPortal.Dispose();
                        tiaPortal = null;
                    }

                    tiaPortal = new Siemens.Engineering.TiaPortal(
                        Siemens.Engineering.TiaPortalMode.WithoutUserInterface);
                    if (credentials != null)
                    {
                        tiapProject = tiaPortal.Projects.Open(new FileInfo(ProjectFile), c =>
                        {
                            c.Type = UmacUserType.Project;
                            c.Name = credentials.Username;
                            c.SetPassword(credentials.Password);
                        });
                    }
                    else
                    {
                        tiapProject = tiaPortal.Projects.Open(new FileInfo(ProjectFile));
                    }
                }
                catch (Siemens.Engineering.EngineeringSecurityException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (i == 9)
                    {
                        throw;
                    }
                }

                if (tiapProject != null)
                {
                    break;
                }
            }

            LoadViaOpennessDlls();
        }
Пример #4
0
        internal void LoadViaOpennessDlls()
        {
            for (int i = 0; i < 10; i++)
            {
                try
                {
                    if (tiaPortal != null)
                    {
                        tiaPortal.Dispose();
                        tiaPortal = null;
                    }
                    tiaPortal   = new Siemens.Engineering.TiaPortal(Siemens.Engineering.TiaPortalMode.WithoutUserInterface);
                    tiapProject = tiaPortal.Projects.Open(new FileInfo(ProjectFile));
                }
                catch (Siemens.Engineering.EngineeringSecurityException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (i == 9)
                    {
                        throw;
                    }
                }
                if (tiapProject != null)
                {
                    break;
                }
            }


            var main = new TIAOpennessProjectFolder(this)
            {
                Name = "Main"
            };

            ProjectStructure = main;

            //var frm = new sliver.Windows.Forms.StateBrowserForm();
            //frm.ObjectToBrowse = tiapProject;
            //frm.Show();

            foreach (var d in tiapProject.Devices)
            {
                if (d.TypeIdentifier != null && d.TypeIdentifier.EndsWith(".S71500"))
                {
                    foreach (DeviceItem deviceItem in d.DeviceItems)
                    {
                        var target = ((IEngineeringServiceProvider)deviceItem).GetService <SoftwareContainer>();
                        if (target != null && target.Software is PlcSoftware)
                        {
                            var software = (PlcSoftware)target.Software;
                            var fld      = new TIAOpennessControllerFolder(this, software)
                            {
                                Name = software.Name,
                                //TiaPortalItem = software,
                                //Comment = d.Comment != null ? d.Comment.GetText(CultureInfo.CurrentCulture) : null
                            };
                            main.SubItems.Add(fld);

                            LoadControlerFolderViaOpennessDlls(fld, software);
                        }
                    }

                    //var controller = d.DeviceItems.OfType<Siemens.Engineering.HW.ControllerTarget>().FirstOrDefault();
                    //if (controller == null)
                    //{
                    //    var fld = new TIAOpennessProjectFolder(this)
                    //    {
                    //        Name = d.Name,
                    //        TiaPortalItem = d,
                    //        Comment = d.Comment != null ? d.Comment.GetText(CultureInfo.CurrentCulture) : null
                    //    };
                    //    main.SubItems.Add(fld);

                    //    //LoadSubDevicesViaOpennessDlls(fld, d);
                    //}
                    //else
                    //{
                    //    var fld = new TIAOpennessControllerFolder(this)
                    //    {
                    //        Name = d.Name,
                    //        TiaPortalItem = d,
                    //        Comment = d.Comment != null ? d.Comment.GetText(CultureInfo.CurrentCulture) : null
                    //    };
                    //    main.SubItems.Add(fld);

                    //    //LoadControlerFolderViaOpennessDlls(fld, controller);
                    //}
                }
            }
        }
Пример #5
0
        internal void LoadViaOpennessDlls()
        {
            for (int i = 0; i < 10; i++)
            {
                try
                {
                    if (tiaPortal != null)
                    {
                        tiaPortal.Dispose();
                        tiaPortal = null;
                    }
                    tiaPortal   = new TiaPortal(TiaPortalMode.WithoutUserInterface);
                    tiapProject = tiaPortal.Projects.Open(ProjectFile);
                }
                catch (Siemens.Engineering.EngineeringSecurityException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (i == 9)
                    {
                        throw;
                    }
                }
                if (tiapProject != null)
                {
                    break;
                }
            }


            var main = new TIAOpennessProjectFolder(this)
            {
                Name = "Main"
            };

            ProjectStructure = main;

            //var frm = new sliver.Windows.Forms.StateBrowserForm();
            //frm.ObjectToBrowse = tiapProject;
            //frm.Show();

            foreach (var d in tiapProject.Devices)
            {
                Console.WriteLine(d.Subtype);
                if (d.Subtype.EndsWith(".Device") && !d.Subtype.StartsWith("GSD.") && !d.Subtype.StartsWith("ET200eco.")) //d.Subtype.StartsWith("S7300") || d.Subtype.StartsWith("S7400") || d.Subtype.StartsWith("S71200") || d.Subtype.StartsWith("S71500"))
                {
                    var controller = d.DeviceItems.OfType <ControllerTarget>().FirstOrDefault();
                    if (controller == null)
                    {
                        var fld = new TIAOpennessProjectFolder(this)
                        {
                            Name          = d.Name,
                            TiaPortalItem = d,
                            Comment       = d.Comment != null?d.Comment.GetText(CultureInfo.CurrentCulture) : null
                        };
                        main.SubItems.Add(fld);

                        LoadSubDevicesViaOpennessDlls(fld, d);
                    }
                    else
                    {
                        var fld = new TIAOpennessControllerFolder(this)
                        {
                            Name          = d.Name,
                            TiaPortalItem = d,
                            Comment       = d.Comment != null?d.Comment.GetText(CultureInfo.CurrentCulture) : null
                        };
                        main.SubItems.Add(fld);

                        LoadControlerFolderViaOpennessDlls(fld, controller);
                    }
                }
            }
        }
        internal void LoadViaOpennessDlls()
        {
            for (int i = 0; i < 10; i++)
            {
                try
                {
                    if (tiaPortal != null)
                    {
                        tiaPortal.Dispose();
                        tiaPortal = null;
                    }
                    tiaPortal = new TiaPortal(TiaPortalMode.WithoutUserInterface);
                    tiapProject = tiaPortal.Projects.Open(ProjectFile);
                }
                catch (Siemens.Engineering.EngineeringSecurityException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (i == 9)
                        throw;
                }
                if (tiapProject != null)
                    break;
            }


            var main = new TIAOpennessProjectFolder(this) { Name = "Main" };
            ProjectStructure = main;
            
            //var frm = new sliver.Windows.Forms.StateBrowserForm();
            //frm.ObjectToBrowse = tiapProject;
            //frm.Show();

            foreach (var d in tiapProject.Devices)
            {
                Console.WriteLine(d.Subtype);                
                if (d.Subtype.EndsWith(".Device") && !d.Subtype.StartsWith("GSD.") && !d.Subtype.StartsWith("ET200eco.")) //d.Subtype.StartsWith("S7300") || d.Subtype.StartsWith("S7400") || d.Subtype.StartsWith("S71200") || d.Subtype.StartsWith("S71500"))
                {
                    

                    var controller = d.DeviceItems.OfType<ControllerTarget>().FirstOrDefault();
                    if (controller == null)
                    {
                        var fld = new TIAOpennessProjectFolder(this)
                        {
                            Name = d.Name,
                            TiaPortalItem = d,
                            Comment = d.Comment != null ? d.Comment.GetText(CultureInfo.CurrentCulture) : null
                        };
                        main.SubItems.Add(fld);

                        LoadSubDevicesViaOpennessDlls(fld, d);
                    }
                    else
                    {
                        var fld = new TIAOpennessControllerFolder(this)
                        {
                            Name = d.Name,
                            TiaPortalItem = d,
                            Comment = d.Comment != null ? d.Comment.GetText(CultureInfo.CurrentCulture) : null
                        };
                        main.SubItems.Add(fld);

                        LoadControlerFolderViaOpennessDlls(fld, controller);
                    }
                }
            }
        }