public ICoreObject CreateTagTable( ICoreObject folder, IObjectTypeInfo tagTableType, bool defaultTagTable = false, string name = "") { using (new ObjectFrameBulkOperationMode(folder)) { return(Reflector.RunInstanceMethodByName( TSC, "CreateTagTable", ReflectionWays.SystemReflection, folder, tagTableType, defaultTagTable, name) as ICoreObject); } }
/// <summary> /// 创建变量 /// </summary> /// <param name="cpu">控制器</param> /// <param name="tagTable">变量表</param> /// <param name="properties">变量数据</param> /// <param name="isConstant">是否静态变量</param> public static IBLTag CreateRootTagInTagTable( this ICoreObject cpu, ICoreObject tagTable, Dictionary <string, string> properties, bool isConstant = false, ISynchronizeInvoke synchronizer = null ) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = cpu.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } return(TiaStarter.RunInSynchronizer(UsingSynchronizer, () => { IObjectTypeInfo iot = null; if (isConstant) { iot = tagTable.GetConstantType(); } else { iot = tagTable.GetTagType(); } ITagService tagService = cpu.GetTagService(); using (new ObjectFrameBulkOperationMode(tagTable)) { return tagService.CreateRootTag( cpu, iot, Enumerable.ToDictionary(properties, kvp => kvp.Key, (Func <KeyValuePair <string, string>, object>)(kvp => kvp.Value))) as IBLTag; } }) as IBLTag); }
/// <summary> /// 取得变量表文件夹 /// </summary> /// <param name="cpu">控制器</param> public static ICoreObject GetTagsFolder(this ICoreObject cpu, ISynchronizeInvoke synchronizer = null) { ISynchronizeInvoke UsingSynchronizer; if (synchronizer == null) { UsingSynchronizer = cpu.GetSynchronizer(); } else { UsingSynchronizer = synchronizer; } return(TiaStarter.RunInSynchronizer(UsingSynchronizer, (c) => { IFolderService folderService = cpu.GetFolderService(); IObjectTypeInfo tagTableType = GetTagTableType(cpu); return folderService.GetAppropriateFolder(cpu, tagTableType, false); }, cpu) as ICoreObject); }
public IOnlineFunctionProvider GetOnlineProvider(IObjectTypeInfo targetType, string onlineFunction) { return(OnlineServiceManager.GetOnlineProvider(targetType, onlineFunction)); }