/// <summary> /// 取得或创建变量表 /// </summary> /// <param name="cpu">控制器</param> /// <param name="Path">变量表路径</param> public static ICoreObject GetOrCreateTagTable( this ICoreObject cpu, string Path, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = cpu.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } return(TiaStarter.RunInSynchronizer(UsingSynchronizer, (Func <ICoreObject>) (() => { ICoreObject tagFolder = cpu.GetTagsFolder(); ICoreObject table = GetTagTableByName(tagFolder, Path); if (table == null) { table = CreateTagTable(tagFolder, Path); } return table; })) as ICoreObject); }
/// <summary> /// 取得默认变量表 /// </summary> public static ICoreObject GetDefaultTagTable(this ICoreObject cpu, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = cpu.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } ICoreObject tagFolder = cpu.GetTagsFolder(); IDictionary <string, ICoreObject> tagTables = tagFolder.GetTagTables(); ICoreObject defaultTagTable = null; tagTables.TryGetValue("默认变量表", out defaultTagTable); return(defaultTagTable); }