static void Main(string[] args) { string file = ""; string exportPath = ""; if (args.Count() < 1) { OpenFileDialog op = new OpenFileDialog(); op.Filter = "TIA-Portal Project|*.ap13"; op.CheckFileExists = false; op.ValidateNames = false; var ret = op.ShowDialog(); if (ret == DialogResult.OK) { file = op.FileName; } else { Console.WriteLine("Bitte S7 projekt als Parameter angeben!"); return; } exportPath = Path.GetDirectoryName(file); exportPath = Path.GetFullPath(Path.Combine(exportPath, "..\\Export")); if (Directory.Exists(exportPath)) { if ( MessageBox.Show(exportPath + " wird gelöscht. Möchten Sie fortfahren?", "Sicherheitsabfrage", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { Directory.Delete(exportPath, true); } else { Environment.Exit(-1); } } Directory.CreateDirectory(exportPath); } else { file = args[0]; } Step7ProjectV11 prj = Projects.LoadProject(file, false) as Step7ProjectV11; ParseFolder(prj.ProjectStructure, exportPath); }
public TIADataRow(XmlNode Node, Step7ProjectV11 Project, TIABlock Block) { this.node = Node; this.tiaProject = Project; this.block = Block; var id = this.node.Attributes["id"].Value; string instId = this.node.Attributes["instId"].Value; var arrayLowerBounds = this.node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='LowerBounds']/array"); if (arrayLowerBounds != null && (arrayLowerBounds.Attributes["nil"] == null || arrayLowerBounds.Attributes["nil"].Value != "1")) { ArrayStart = new List <int>(); ArrayStop = new List <int>(); var arrayUpperBounds = node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.DomainServices.CommonTypeSystem.IStructureItem").Key + "']/attrib[@name='UpperBounds']/array"); this.IsArray = true; foreach (var low in arrayLowerBounds.InnerText.Split(',')) { ArrayStart.Add(int.Parse(low)); } foreach (var high in arrayUpperBounds.InnerText.Split(',')) { ArrayStop.Add(int.Parse(high)); } this.node = Project.xmlDoc.SelectSingleNode("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]"); id = this.node.Attributes["id"].Value; instId = this.node.Attributes["instId"].Value; } var idChildRow = Project.importTypeInfos.First(itm => itm.Value == "Siemens.Simatic.PlcLanguages.Model.StructureItemData").Key; var subNodes = Project.xmlDoc.SelectNodes("root/objects/StorageObject[parentlink[@link='" + id + "-" + instId + "']]"); this.Children = new List <IDataRow>(); foreach (XmlNode subNode in subNodes) { if (subNode.Attributes["id"].Value == idChildRow) { var row = new TIADataRow(subNode, Project, Block); row.Parent = this; this.Children.Add(row); } } }
public TIABlocksFolder(Step7ProjectV11 Project, XmlNode Node) : base(Project, Node) { if (IXmlPartDataId == null) { IXmlPartDataId = Project.asId2Names.FirstOrDefault(itm => itm.Value == "Siemens.Simatic.PlcLanguages.Model.IXmlPartData").Key; } if (BlockInterfaceBaseDataSourceId == null) { BlockInterfaceBaseDataSourceId = Project.relationId2Names.FirstOrDefault(itm => itm.Value == "Siemens.Simatic.PlcLanguages.Model.BlockInterfaceBaseData.Source").Key; } //"Siemens.Simatic.PlcLanguages.Model.StructureItemData" }
public string GetText(CultureInfo cultureInfo, Step7ProjectV11 tiaProject) { var xmlnode = node.SelectSingleNode("coreText/cultures/culture[@id='" + cultureInfo.LCID + "']"); if (xmlnode != null) { var val = xmlnode.Attributes["value"]; if (val != null) { return(val.Value); } } var lidNode = node.SelectSingleNode("attribSet[@id='" + tiaProject.asId2Names.First(itm => itm.Value == "Siemens.Automation.ObjectFrame.ICoreTextExtendedData").Key + "']/attrib[@name='DefaultText']"); return(lidNode.InnerText); }
private void cmdExport_Click(object sender, RoutedEventArgs e) { Step7ProjectV11 prj = null; try { prj = new Step7ProjectV11(Properties.Settings.Default.TiaProject, CultureInfo.CurrentCulture); ExportStructureItem(prj.ProjectStructure, ""); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (prj != null) { prj.Dispose(); } } }
public TIACPUFolder(Step7ProjectV11 Project, XmlNode Node) : base(Project, Node) { }
public TIADataBlock(Step7ProjectV11 TIAProject, XmlNode Node) : base(TIAProject, Node) { }
public TIASymTabFolder(Step7ProjectV11 Project, XmlNode Node) : base(Project, Node) { //SymbolTableEntrys = new List<SymbolTableEntry>(); }
public TIABlocksFolder(Step7ProjectV11 Project, XmlNode Node) : base(Project, Node) { //"Siemens.Simatic.PlcLanguages.Model.StructureItemData" }
private void button4_Click(object sender, EventArgs e) { var a = getBytes(-1); var wra = getInt(a, 0); var b = getBytes(-2); var wrb = getInt(b, 0); var z = getBytes(127); var wrz = getInt(z, 0); var c = getBytes(123456789); var wrc = getInt(c, 0); var d = getBytes(254); var wrd = getInt(d, 0); var ee = getBytes(255); var wree = getInt(ee, 0); var f = getBytes(256); var wrff = getInt(f, 0); var g = getBytes(-127); var wrg = getInt(g, 0); var h = getBytes(-128); var wrh = getInt(h, 0); var i = getBytes(-129); var wri = getInt(i, 0); //myConn = new PLCConnection("SimpleCSharpDemonstrationConnection"); //myConn.Connect(); //List<PLCTag> listTag = new List<PLCTag>(); //for (int ii = 0; ii < 300; ii++) // listTag.Add(new PLCTag() { DataBlockNumber = 100, ByteAddress = ii * 2, TagDataType = TagDataType.Word }); //myConn.ReadValues(listTag); //var _tags = new List<PLCTag>(); //var j = 0; //for (var i = 0; i < 96; i++) //{ // Console.WriteLine("DB1.DBD" + j.ToString(CultureInfo.InvariantCulture)); // _tags.Add(new PLCTag("DB1.DBD" + j.ToString(CultureInfo.InvariantCulture)) // { // TagDataType = TagDataType.Float // }); // j += 4; //} //myConn.ReadValues(_tags, false); //var tag = new PLCTag(); //tag.TagDataType = TagDataType.Word; //tag.SymbolicAccessKey = "8a0e000124134d054000000a"; //myConn.ReadValue(tag); /*tag.Controlvalue = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 88, 1, 2, 3, 4, 5, 6, 7, 8, 9, 77 }; * myConn.WriteValue(tag); * var db = myConn.PLCGetBlockInMC7("DB99"); * MessageBox.Show("DB:" + Encoding.ASCII.GetString(db)); * myConn.PLCPutBlockFromMC7toPLC("DB98", db);*/ var prj = new Step7ProjectV11("C:\\Users\\jkuehner\\Documents\\Automatisierung\\Projekt2\\Projekt2.ap13"); var fld = prj.ProjectStructure as TIAProjectFolder; var allFolders = fld.SubItems.Flatten(x => x.SubItems).Cast <TIAProjectFolder>(); var blockFolders = allFolders.Where(x => x is TIABlocksFolder).Cast <TIABlocksFolder>(); foreach (var ffld in blockFolders) { var blocks = ffld.readPlcBlocksList(); } }
public TIAProjectFolder(Step7ProjectV11 Project, XmlNode Node) { this.Project = Project; this.TiaProject = Project; this.Node = Node; }
public TIACPUFolder(Step7ProjectV11 Project) : base(Project) { }
public TIABlock(Step7ProjectV11 TIAProject, XmlNode Node) { this.node = Node; this.tiaProject = TIAProject; }
public TIAFunctionBlock(Step7ProjectV11 TIAProject, XmlNode Node) : base(TIAProject, Node) { }
public TIAProjectFolder(Step7ProjectV11 Project) { this.Project = Project; }