public List <ProjectBlockInfo> readPlcBlocksList() { if (blockList == null) { blockList = new List <ProjectBlockInfo>(); foreach (XmlNode subNode in SubNodes) { string id = subNode.Attributes["id"].Value; string tiaType = TiaProject.importTypeInfos[id]; if (tiaType == "Siemens.Simatic.PlcLanguages.Model.DataBlockData") { //BlockInterfaceBaseDataSourceId+"-"+ var nm = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Name']").InnerText; var link = subNode.SelectSingleNode("relation[@id='" + BlockInterfaceBaseDataSourceId + "']/link").InnerText; var payloadNode = ((Step7ProjectV11)this.Project).xmlDoc.SelectSingleNode("root/objects/StorageObject[@instId='" + link.Split('-')[1] + "']"); var payload = payloadNode.SelectSingleNode("attribSet[@id='" + IXmlPartDataId + "']/attrib[@name='PayLoad']").InnerText; var bytes = StringToByteArrayFastest(payload); var txt = Encoding.ASCII.GetString(bytes); var blk = new TIAProjectBlockInfo(subNode) { Name = nm, BlockType = PLCBlockType.DB }; blockList.Add(blk); } else if (tiaType == "Siemens.Simatic.PlcLanguages.Model.CodeBlockData") { var nm = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Name']").InnerText; var tp = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Subtype']").InnerText; var typ = PLCBlockType.FC; if (tp == "FB") { typ = PLCBlockType.FB; } var blk = new TIAProjectBlockInfo(subNode) { Name = nm, BlockType = typ }; blockList.Add(blk); } } } return(blockList); }
public List <ProjectBlockInfo> readPlcBlocksList() { if (blockList == null) { blockList = new List <ProjectBlockInfo>(); foreach (XmlNode subNode in SubNodes) { string id = subNode.Attributes["id"].Value; string tiaType = TiaProject.importTypeInfos[id]; if (tiaType == "Siemens.Simatic.PlcLanguages.Model.DataBlockData") { var nm = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Name']").InnerText; var blk = new TIAProjectBlockInfo(subNode) { Name = nm, BlockType = PLCBlockType.DB }; blockList.Add(blk); } else if (tiaType == "Siemens.Simatic.PlcLanguages.Model.CodeBlockData") { var nm = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Name']").InnerText; var tp = subNode.SelectSingleNode("attribSet[@id='" + TiaProject.CoreAttributesId + "']/attrib[@name='Subtype']").InnerText; var typ = PLCBlockType.FC; if (tp == "FB") { typ = PLCBlockType.FB; } var blk = new TIAProjectBlockInfo(subNode) { Name = nm, BlockType = typ }; blockList.Add(blk); } } } return(blockList); }