internal void LoadControlerFolderViaOpennessDlls(TIAOpennessControllerFolder parent, Siemens.Engineering.HW.ControllerTarget controller) { var fld = new TIAOpennessProgramFolder(this, parent) { TiaPortalItem = controller.ProgramblockFolder, Name = controller.ProgramblockFolder.Name, Parent = parent, }; parent.ProgramFolder = fld; parent.SubItems.Add(fld); LoadSubProgramBlocksFoldersViaOpennessDlls(fld, controller.ProgramblockFolder); var fld2 = new TIAOpennessPlcDatatypeFolder(this, parent) { TiaPortalItem = controller.ControllerDatatypeFolder, Name = "PLC data types", Parent = parent, }; parent.PlcDatatypeFolder = fld2; parent.SubItems.Add(fld2); LoadSubPlcDatatypeFoldersViaOpennessDlls(fld2, controller.ControllerDatatypeFolder); }
//internal void LoadSubDevicesViaOpennessDlls(TIAOpennessProjectFolder parent, Siemens.Engineering.HW.IHardwareObject device) //{ // foreach (var e in device.DeviceItems) // { // var fld = new TIAOpennessProjectFolder(this) // { // TiaPortalItem = e, // Name = e.Name, // Parent = parent, // }; // var d = e as Siemens.Engineering.HW.DeviceItem; // //d.Elements.ToList() // parent.SubItems.Add(fld); // LoadSubDevicesViaOpennessDlls(fld, e); // } //} internal void LoadControlerFolderViaOpennessDlls(TIAOpennessControllerFolder parent, PlcSoftware software) { var fld = new TIAOpennessProgramFolder(this, parent, software.BlockGroup.Blocks) { //TiaPortalItem = controller.ProgramblockFolder, Name = "software", Parent = parent, }; parent.ProgramFolder = fld; parent.SubItems.Add(fld); LoadSubProgramBlocksFoldersViaOpennessDlls(fld, software.BlockGroup); var fld2 = new TIAOpennessPlcDatatypeFolder(this, parent, null) { //TiaPortalItem = controller.ControllerDatatypeFolder, Name = "data types", Parent = parent, }; parent.PlcDatatypeFolder = fld2; parent.SubItems.Add(fld2); LoadSubPlcDatatypeFoldersViaOpennessDlls(fld2, software.TypeGroup); }
public TIAOpennessPlcDatatypeFolder(Step7ProjectV11 Project, TIAOpennessControllerFolder ControllerFolder) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; }
public TIAOpennessProgramFolder(Step7ProjectV13 Project, TIAOpennessControllerFolder ControllerFolder) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; }
public TIAOpennessProgramFolder(Step7ProjectV15 Project, TIAOpennessControllerFolder ControllerFolder, PlcBlockComposition blocks) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; this.blocks = blocks; }
public TIAOpennessPlcDatatypeFolder(Step7ProjectV15 Project, TIAOpennessControllerFolder ControllerFolder, PlcTypeComposition composition) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; this.composition = composition; }
internal static Block ParseTiaDbUdtXml(string xml, ProjectBlockInfo projectBlockInfo, TIAOpennessControllerFolder controllerFolder, ParseType parseType) { XElement xelement = XElement.Parse(xml); var structure = xelement.Elements().FirstOrDefault(x => x.Name.LocalName.StartsWith("SW.")); var sections = structure.Element("AttributeList").Element("Interface").Elements().First(); var block = new TIADataBlock(); block.Name = projectBlockInfo.Name; if (projectBlockInfo is TIAOpennessProjectBlockInfo) { block.BlockNumber = ((TIAOpennessProjectBlockInfo)projectBlockInfo).BlockNumber; } if (parseType == ParseType.DataType) { block.BlockType = DataTypes.PLCBlockType.UDT; } else if (parseType == ParseType.Programm) { block.BlockType = DataTypes.PLCBlockType.DB; } var parameterRoot = ParseTiaDbUdtSections(sections, block, controllerFolder); block.BlockType = DataTypes.PLCBlockType.DB; block.Structure = parameterRoot; return(block); }
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); //} } } }
public TIAVarTabFolder(Step7ProjectV15_1 Project, TIAOpennessControllerFolder ControllerFolder) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; }
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(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.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 <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); } } } }
public TIAOpennessProgramFolder(Step7ProjectV11 Project, TIAOpennessControllerFolder ControllerFolder) : base(Project) { this.ControllerFolder = ControllerFolder; this.Project = Project; this.TiaProject = Project; }
internal static TIADataRow ParseTiaDbUdtSections(XElement sections, TIADataBlock block, TIAOpennessControllerFolder controllerFolder) { var parameterRoot = new TIADataRow("ROOTNODE", S7DataRowType.STRUCT, block); var parameterIN = new TIADataRow("IN", S7DataRowType.STRUCT, block); parameterIN.Parent = parameterRoot; var parameterOUT = new TIADataRow("OUT", S7DataRowType.STRUCT, block); parameterOUT.Parent = parameterRoot; var parameterINOUT = new TIADataRow("IN_OUT", S7DataRowType.STRUCT, block); parameterINOUT.Parent = parameterRoot; var parameterSTAT = new TIADataRow("STATIC", S7DataRowType.STRUCT, block); parameterSTAT.Parent = parameterRoot; var parameterTEMP = new TIADataRow("TEMP", S7DataRowType.STRUCT, block); parameterTEMP.Parent = parameterRoot; foreach (var xElement in sections.Elements()) { TIADataRow useRow = parameterRoot; //var sectionName = xElement.Attribute("Name").Value; //if (sectionName == "None" || sectionName == "Static") //{ // useRow = parameterSTAT; // parameterRoot.Add(useRow); //} //else if (sectionName == "In") //{ // useRow = parameterIN; // parameterRoot.Add(useRow); //} parseChildren(useRow, xElement, controllerFolder); } return(parameterRoot); }
internal static void parseChildren(TIADataRow parentRow, XElement parentElement, TIAOpennessControllerFolder controllerFolder) { foreach (var xElement in parentElement.Elements()) { if (xElement.Name.LocalName == "Comment") { var text = xElement.Elements().FirstOrDefault(x => x.Attribute("Lang").Value == "de-DE"); if (text == null) text = xElement.Elements().FirstOrDefault(); if (text != null) parentRow.Comment = text.Value; } else if (xElement.Name.LocalName == "StartValue") { parentRow.StartValue = xElement.Value; } else if (xElement.Name.LocalName == "Sections") { var row = ParseTiaDbUdtSections(xElement, (TIADataBlock) parentRow.CurrentBlock, controllerFolder); parentRow.AddRange(row.Children); } else if (xElement.Name.LocalName == "Member") { var name = xElement.Attribute("Name").Value; var datatype = xElement.Attribute("Datatype").Value; var row = new TIADataRow(name, S7DataRowType.STRUCT, (TIABlock) parentRow.PlcBlock); row.Parent = parentRow; if (datatype.Contains("Array[")) { List<int> arrayStart = new List<int>(); List<int> arrayStop = new List<int>(); int pos1 = datatype.IndexOf("["); int pos2 = datatype.IndexOf("]", pos1); string[] arrays = datatype.Substring(pos1 + 1, pos2 - pos1 - 1).Split(','); foreach (string array in arrays) { string[] akar = array.Split(new string[] {".."}, StringSplitOptions.RemoveEmptyEntries); arrayStart.Add(Convert.ToInt32(akar[0].Trim())); arrayStop.Add(Convert.ToInt32(akar[1].Trim())); } row.ArrayStart = arrayStart; row.ArrayStop = arrayStop; row.IsArray = true; datatype = datatype.Substring(pos2 + 5); } parentRow.Add(row); parseChildren(row, xElement, controllerFolder); if (datatype.StartsWith("\"")) { var udt = controllerFolder.PlcDatatypeFolder.GetBlock(datatype.Substring(1, datatype.Length - 2)); if (udt != null) { var tiaUdt = udt as TIADataBlock; row.AddRange(((TIADataRow) tiaUdt.Structure).DeepCopy().Children); row.DataTypeBlock = udt; } row.DataType = S7DataRowType.UDT; } else if (datatype == "Struct") { } else if (datatype.StartsWith("String[")) { row.DataType = S7DataRowType.STRING; row.StringSize = int.Parse(datatype.Substring(7, datatype.Length - 8)); } else { switch (datatype.ToLower()) { case "byte": row.DataType = S7DataRowType.BYTE; break; case "bool": row.DataType = S7DataRowType.BOOL; break; case "int": row.DataType = S7DataRowType.INT; break; case "uint": row.DataType = S7DataRowType.DWORD; break; case "dint": row.DataType = S7DataRowType.DINT; break; case "word": row.DataType = S7DataRowType.WORD; break; case "dword": row.DataType = S7DataRowType.DWORD; break; case "char": row.DataType = S7DataRowType.CHAR; break; case "any": row.DataType = S7DataRowType.ANY; break; case "date": row.DataType = S7DataRowType.DATE; break; case "date_and_time": row.DataType = S7DataRowType.DATE_AND_TIME; break; case "real": row.DataType = S7DataRowType.REAL; break; case "s5time": row.DataType = S7DataRowType.S5TIME; break; case "time_of_day": row.DataType = S7DataRowType.TIME_OF_DAY; break; case "time": row.DataType = S7DataRowType.TIME; break; default: row.DataType = S7DataRowType.UNKNOWN; Console.WriteLine("unkown Datatype: " + datatype); break; } } } else { Console.WriteLine("unkown XML Element"); } } }
internal static TIADataRow ParseTiaDbUdtSections(XElement sections, TIADataBlock block, TIAOpennessControllerFolder controllerFolder) { var parameterRoot = new TIADataRow("ROOTNODE", S7DataRowType.STRUCT, block); var parameterIN = new TIADataRow("IN", S7DataRowType.STRUCT, block); parameterIN.Parent = parameterRoot; var parameterOUT = new TIADataRow("OUT", S7DataRowType.STRUCT, block); parameterOUT.Parent = parameterRoot; var parameterINOUT = new TIADataRow("IN_OUT", S7DataRowType.STRUCT, block); parameterINOUT.Parent = parameterRoot; var parameterSTAT = new TIADataRow("STATIC", S7DataRowType.STRUCT, block); parameterSTAT.Parent = parameterRoot; var parameterTEMP = new TIADataRow("TEMP", S7DataRowType.STRUCT, block); parameterTEMP.Parent = parameterRoot; foreach (var xElement in sections.Elements()) { TIADataRow useRow = parameterRoot; //var sectionName = xElement.Attribute("Name").Value; //if (sectionName == "None" || sectionName == "Static") //{ // useRow = parameterSTAT; // parameterRoot.Add(useRow); //} //else if (sectionName == "In") //{ // useRow = parameterIN; // parameterRoot.Add(useRow); //} parseChildren(useRow, xElement, controllerFolder); } return parameterRoot; }
internal static Block ParseTiaDbUdtXml(string xml, ProjectBlockInfo projectBlockInfo, TIAOpennessControllerFolder controllerFolder, ParseType parseType) { XElement xelement = XElement.Parse(xml); var structure = xelement.Elements().FirstOrDefault(x => x.Name.LocalName.StartsWith("SW.")); var sections = structure.Element("AttributeList").Element("Interface").Elements().First(); var block = new TIADataBlock(); block.Name = projectBlockInfo.Name; if (projectBlockInfo is TIAOpennessProjectBlockInfo) block.BlockNumber = ((TIAOpennessProjectBlockInfo) projectBlockInfo).BlockNumber; if (parseType == ParseType.DataType) block.BlockType = DataTypes.PLCBlockType.UDT; else if (parseType == ParseType.Programm) block.BlockType = DataTypes.PLCBlockType.DB; var parameterRoot = ParseTiaDbUdtSections(sections, block, controllerFolder); block.BlockType = DataTypes.PLCBlockType.DB; block.Structure = parameterRoot; return block; }
internal void LoadControlerFolderViaOpennessDlls(TIAOpennessControllerFolder parent, ControllerTarget controller) { var fld = new TIAOpennessProgramFolder(this, parent) { TiaPortalItem = controller.ProgramblockFolder, Name = controller.ProgramblockFolder.Name, Parent = parent, }; parent.ProgramFolder = fld; parent.SubItems.Add(fld); LoadSubProgramBlocksFoldersViaOpennessDlls(fld, controller.ProgramblockFolder); var fld2 = new TIAOpennessPlcDatatypeFolder(this, parent) { TiaPortalItem = controller.ControllerDatatypeFolder, Name = "PLC data types", Parent = parent, }; parent.PlcDatatypeFolder = fld2; parent.SubItems.Add(fld2); LoadSubPlcDatatypeFoldersViaOpennessDlls(fld2, controller.ControllerDatatypeFolder); }
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 static void parseChildren(TIADataRow parentRow, XElement parentElement, TIAOpennessControllerFolder controllerFolder) { foreach (var xElement in parentElement.Elements()) { if (xElement.Name.LocalName == "Comment") { var text = xElement.Elements().FirstOrDefault(x => x.Attribute("Lang").Value == "de-DE"); if (text == null) { text = xElement.Elements().FirstOrDefault(); } if (text != null) { parentRow.Comment = text.Value; } } else if (xElement.Name.LocalName == "StartValue") { parentRow.StartValue = xElement.Value; } else if (xElement.Name.LocalName == "Sections") { var row = ParseTiaDbUdtSections(xElement, (TIADataBlock)parentRow.CurrentBlock, controllerFolder); parentRow.AddRange(row.Children); } else if (xElement.Name.LocalName == "Member") { var name = xElement.Attribute("Name").Value; var datatype = xElement.Attribute("Datatype").Value; var row = new TIADataRow(name, S7DataRowType.STRUCT, (TIABlock)parentRow.PlcBlock); row.Parent = parentRow; if (datatype.Contains("Array[")) { List <int> arrayStart = new List <int>(); List <int> arrayStop = new List <int>(); int pos1 = datatype.IndexOf("["); int pos2 = datatype.IndexOf("]", pos1); string[] arrays = datatype.Substring(pos1 + 1, pos2 - pos1 - 1).Split(','); foreach (string array in arrays) { string[] akar = array.Split(new string[] { ".." }, StringSplitOptions.RemoveEmptyEntries); int start = 0; if (akar[0].StartsWith("\"")) { start = (int)controllerFolder.VarTabFolder.FindConstant(akar[0].Substring(1, akar[0].Length - 2)).Value; } else { start = Convert.ToInt32(akar[0].Trim()); } int stop = 0; if (akar[1].StartsWith("\"")) { stop = (int)controllerFolder.VarTabFolder.FindConstant(akar[1].Substring(1, akar[1].Length - 2)).Value; } else { stop = Convert.ToInt32(akar[1].Trim()); } arrayStart.Add(start); arrayStop.Add(stop); } row.ArrayStart = arrayStart; row.ArrayStop = arrayStop; row.IsArray = true; datatype = datatype.Substring(pos2 + 5); } parentRow.Add(row); parseChildren(row, xElement, controllerFolder); if (datatype.StartsWith("\"")) { var udt = controllerFolder.PlcDatatypeFolder.GetBlock(datatype.Substring(1, datatype.Length - 2)); if (udt != null) { var tiaUdt = udt as TIADataBlock; row.AddRange(((TIADataRow)tiaUdt.Structure).DeepCopy().Children); row.DataTypeBlock = udt; } row.DataType = S7DataRowType.UDT; } else if (datatype == "Struct") { } else if (datatype.StartsWith("String[")) { row.DataType = S7DataRowType.STRING; row.StringSize = int.Parse(datatype.Substring(7, datatype.Length - 8)); } else { switch (datatype.ToLower()) { case "byte": row.DataType = S7DataRowType.BYTE; break; case "bool": row.DataType = S7DataRowType.BOOL; break; case "int": row.DataType = S7DataRowType.INT; break; case "uint": row.DataType = S7DataRowType.WORD; break; case "dint": row.DataType = S7DataRowType.DINT; break; case "udint": row.DataType = S7DataRowType.DWORD; break; case "word": row.DataType = S7DataRowType.WORD; break; case "dword": row.DataType = S7DataRowType.DWORD; break; case "char": row.DataType = S7DataRowType.CHAR; break; case "any": row.DataType = S7DataRowType.ANY; break; case "date": row.DataType = S7DataRowType.DATE; break; case "date_and_time": row.DataType = S7DataRowType.DATE_AND_TIME; break; case "real": row.DataType = S7DataRowType.REAL; break; case "s5time": row.DataType = S7DataRowType.S5TIME; break; case "time_of_day": row.DataType = S7DataRowType.TIME_OF_DAY; break; case "time": row.DataType = S7DataRowType.TIME; break; default: row.DataType = S7DataRowType.UNKNOWN; var udt = controllerFolder.PlcDatatypeFolder.GetBlock(datatype); if (udt != null) { var tiaUdt = udt as TIADataBlock; row.AddRange(((TIADataRow)tiaUdt.Structure).DeepCopy().Children); row.DataTypeBlock = udt; row.DataType = S7DataRowType.UDT; } //Console.WriteLine("unkown Datatype: " + datatype); break; } } } else if (xElement.Name.LocalName == "AttributeList") { } else if (xElement.Name.LocalName == "Subelement") //todo -> startwerte von arrays von UDTs { } else { //Console.WriteLine("unkown XML Element"); } } }
internal void LoadViaOpennessDlls() { 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); //} } } }