/// <summary> /// Delete provided tag table from plc code /// </summary> /// <param name="tagTableName"></param> /// <param name="tagGroup"></param> /// <param name="log"></param> public static void DeleteTagTable(string tagTableName, PlcTagTableGroup tagGroup, TextBox log) { PlcTagTable tagTableToDelete = null; foreach (PlcTagTable tagTable in tagGroup.TagTables) { if (tagTableName.Equals(tagTable.Name)) { tagTableToDelete = tagTable; } } if (tagTableToDelete != null) { tagTableToDelete.Delete(); log.AppendText("Tag table " + tagTableName + " to be deleted found in " + tagGroup.Name + " tag table folder"); log.AppendText(Environment.NewLine); } else { log.AppendText("Tag table " + tagTableName + " not found in " + tagGroup.Name + " tag table folder"); log.AppendText(Environment.NewLine); // if tag table was not found in current group check subfolders foreach (PlcTagTableGroup group in tagGroup.Groups) { DeleteTagTable(tagTableName, group, log); } } }
/// <summary> /// Copy provided tag table from project library to provided destination folder in plc /// </summary> public static bool CopyTagTableToFolder(string tagTableName, MasterCopyFolder libraryFolder, PlcTagTableGroup tagGroup, string destFolder, TextBox log) { // check if it's already on the right folder to proceed with the copy if (tagGroup.Name.Equals(destFolder)) { log.AppendText("Destination folder found"); log.AppendText(Environment.NewLine); // delete existing tag table if already exists DeleteTagTable(tagTableName, tagGroup, log); // create new tag table from project library tagGroup.TagTables.CreateFrom(GetMasterCopy(libraryFolder, tagTableName, log)); return(true); } // if it's not in the right folder, recursively check subfolders foreach (PlcTagTableGroup group in tagGroup.Groups) { log.AppendText("Checking " + group.Name + " subfolders"); log.AppendText(Environment.NewLine); if (CopyTagTableToFolder(tagTableName, libraryFolder, group, destFolder, log)) { return(true); } } return(false); }