西门子编程模块经销授权代理商
国际化工业自动化科技产品供应商,西门子G120、G120C V20 变频器; S120 V90 伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。其产品范围包括西门子S7-SMART200、 S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP 等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
与此同时,我们还提供。
西门子中国授权代理商—— 浔之漫智控技术(上海)有限公司,本公司坐落于松江工业区西部科技园,西边和全球zhuming芯片制造商台积电毗邻,
东边是松江大学城,向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
目前,浔之漫智控技术(上海)有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110 G120变频器、直流调速器、电线电缆
修改以下程序代码以更新类型文件夹内所选类型的实例:
private static void UpdateInstances(ILibrary myLibrary, LibraryTypeFolder
singleFolderContainingTypes, LibraryType singleType, PlcSoftware plcSoftware, HmiTarget
hmiTarget)
{
//Update Instances of multiple types (subset of types and folders)
IUpdateProjectScope[] updateProjectScopes =
{
plcSoftware as IUpdateProjectScope, hmiTarget as IUpdateProjectScope
};
myLibrary.UpdateProject(new ILibraryTypeOrFolderSelection[] {singleType,
singleFolderContainingTypes}, updateProjectScopes);
//Update Instances of multiple types (all types in library)
myLibrary.UpdateProject(new[] {myLibrary.TypeFolder}, updateProjectScopes);
}
5.6.20 更新库
要求
• TIA Portal Openness 应用程序已连接到 TIA Portal。
请参见连接到 TIA Portal (页 82)
• 已通过 TIA Portal Openness 应用程序打开一个项目。
请参见打开项目 (页 122)
• 您具有所需库的访问权限。
请参见访问全局库 (页 200)。
• 您具有类型文件夹的访问权限。
请参见在库中访问文件夹 (页 212)。
应用
TIA Portal Openness API 接口支持在项目库中进行以下更新:不可在执行同步时修改文件夹结构。待更新的类型通过 GUID 进行识别,然后进行更新:
• 如果库中的类型包含待更新的库中所缺少的类型版本,则复制该类型版本。
• 如果库中的类型包含具有不同 GUID 的类型版本,将中止更新过程,并会发生 Exception。
签名
使用 UpdateLibrary 方法可同步类型版本。
针对实现 LibraryTypes 接口的类使用以下调用:
void UpdateLibrary(ILibrary targetLibrary)
针对实现 ILibrary 接口的类使用以下调用:
void UpdateLibrary(IEnumerableselectedTypesOrFolders, ILibrary targetLibrary)
参数 功能
IEnumerableselectedTypesOrFolders
指定要同步的文件夹或类型或者项目中待更
新的相应实例。
ILibrary targetLibrary 指定将与库进行内容同步的库。
如果源库和目标库完全相同,则将发生异常。
程序代码
修改以下程序代码以同步项目库与全局库的类型:
sourceType.UpdateLibrary(projectLibrary);
修改以下程序代码以同步全局库与项目库之间类型文件夹内的所选类型: 清理库
要求
• TIA Portal Openness 应用程序已连接到 TIA Portal。
请参见“连接到 TIA Portal (页 82)”
• 已打开一个项目
请参见“打开项目 (页 122)”
应用
可使用 TIA Portal Openness 应用程序删除库中指定类型的未使用版本和/或库中指定文件夹
中的所有类型。
Cleanup API 可用于项目和全局库(库必须具有读写权限)。该 API 类似于 TIA Portal 用户界
面中的清理库功能。
清理根据指定的 CleanupLibraryMode 标志进行处理。
根据两个 CleanupLibraryMode 的指定特性清理版本:
CleanupLibraryMode 描述
CleanupLibraryMode.AllowTypeDeletion 允许删除要清理的类型的所有版本。如果类型的所有
版本均已清理,也将清理该类型。
CleanupLibraryMode.PreserveHighestVersion 保留类型的最高版本
程序代码
修改以下程序代码以对类型和文件夹的子集调用清理操作修改以下程序代码以对库中的所有类型调用清理操作:
...
ILibrary myLibrary = ...;
CleanupLibraryMode cleanupLibraryMode = ...;
myLibrary.Cleanup(new [] {myLibrary.TypeFolder}, cleanupLibraryMode);
...
参见
连接到 TIA Portal (页 82)
打开项目 (页 122)
5.6.22 统一项目库中的项目
要求
• TIA Portal Openness 应用程序已连接到 TIA Portal。
请参见“连接到 TIA Portal (页 82)”
• 已打开一个项目
请参见“打开项目 (页 122)”
应用
可使用 TIA Portal Openness 将类型实例的名称和/或路径与指定库中的类型统一。
HarmonizeProject API 可用于项目和全局库。此功能类似于 TIA Portal 用户界面中的统一功能。
可指定要统一项目中的哪些设备,还可同时选择要统一名称、路径还是两者均统一。
如果在全局库中调用 HarmonizeProject 功能,将先统一项目库,然后再统一项目。
统一根据选择的 HarmonizeProjectOptions 进行处理:
HarmonizeProjectOptions 描述
HarmonizePaths 统一指定类型或指定文件夹下类型的路径。项目中的
实例会重命名为库的类型名称。
HarmonizeProjectOptions.HarmonizeNames 统一指定类型或指定文件夹下类型的名称。库类型的
文件夹结构会应用于项目实例。armonizeProjectOptions 描述
HarmonizeProjectOptions.HarmonizeNames |
HarmonizeProjectOptions.HarmonizePaths
统一所选类型或所选文件夹下类型的名称和路径。
HarmonizeProjectOptions.None 将不使用此项,使用时会引发异常
程序代码
修改以下程序代码以对类型和文件夹的子集执行统一名称操作:
...
ILibrary myLibrary = ...;
HarmonizeProjectOptions harmonizeProjectOptions = ...;
ILibraryType typeA = ...; //from myLibrary
ILibraryType typeB = ...; //from myLibrary
LibraryTypeFolder singleFolderContainingTypes = ...; //from myLibrary
IUpdateProjectScope harmonizeProjectScope = ....... //scope of device in project to be
harmonized
myLibrary.HarmonizeProject(new[]{typeA, singleFolderContainingTypes}, new[]
{harmonizeProjectScope}, HarmonizeProjectOptions.HarmonizeNames);
...
修改以下程序代码以对类型和文件夹的子集执行统一路径操作:
...
ILibrary myLibrary = ...;
HarmonizeProjectOptions harmonizeProjectOptions = ...;
ILibraryType typeA = ...; //from myLibrary
ILibraryType typeB = ...; //from myLibrary
LibraryTypeFolder singleFolderContainingTypes = ...; //from myLibrary
IUpdateProjectScope harmonizeProjectScope = ....... //scope of device in project to be
harmonized
myLibrary.HarmonizeProject(new[]{typeA, singleFolderContainingTypes}, new[]
{harmonizeProjectScope}, HarmonizeProjectOptions.HarmonizePaths);修改以下程序代码以对类型和文件夹的子集执行统一名称和路径操作:
...
ILibrary myLibrary = ...;
HarmonizeProjectOptions harmonizeProjectOptions = ...;
ILibraryType typeA = ...; //from myLibrary
ILibraryType typeB = ...; //from myLibrary
LibraryTypeFolder singleFolderContainingTypes = ...; //from myLibrary
IUpdateProjectScope harmonizeProjectScope = ....... //scope of device in project to be
harmonized
myLibrary.HarmonizeProject(new[]{typeA, singleFolderContainingTypes}, new[]
{harmonizeProjectScope}, HarmonizeProjectOptions.HarmonizeNames |
HarmonizeProjectOptions.HarmonizePaths);
...
异常处理
下文介绍了异常场景:
sourceTypesAndFolder 集合为 NULL:
var projectLibrary = Project.ProjectLibrary;
var type1 = projectLibrary.Types.FindType("Type1"); // if this statement yields NULL
projectLibrary.HarmonizeProject(new[]{type1}, new[] {harmonizeProjectScope},
HarmonizeProjectOptions.HarmonizeNames); // throws EngineeringTargetInvocationException
sourceTypesAndFolder 集合为 NULL:
projectLibrary.HarmonizeProject(null, new[] { harmonizeProjectScope },
HarmonizeProjectOptions.HarmonizeNames); // throws EngineeringTargetInvocationException
sourceTypesAndFolder 集合为空
projectLibrary.HarmonizeProject(new[]{}, new[] {harmonizeProjectScope},
HarmonizeProjectOptions.HarmonizeNames); // throws EngineeringTargetInvocationException
harmonizeProjectScope 集合为 NULL
var projectLibrary = Project.ProjectLibHarmonizeProjectOptions 为 None
var projectLibrary = Project.ProjectLibrary;
var type1 = projectLibrary.Types.FindType("Type1");// if this statement yields NULL
projectLibrary.HarmonizeProject(new[]{type1}, new[] { harmonizeProjectScope },
HarmonizeProjectOptions.None); // throws EngineeringTargetInvocationException
sourceTypesAndFolder 来自其它库
var type1 = projectLibrary.Types.FindType("Type1");
var type2 = globalLibrary.Types.FindType("Type2");
projectLibrary.HarmonizeProject(new[]{type1, type2}, new[] { harmonizeProjectScope },
HarmonizeProjectOptions.None); // throws EngineeringTargetInvocationException
其它 EngineeringTargetInvocationException 用例如下:
• 项目处于 Readonly 状态
• 库处于 Readonly 状态
• harmonizeScope 来自其它项目
• harmonizeScope 集合处于 Readonly 状态
参见
连接到 TIA Portal (页 82)
打开项目 (页 122)
5.6.23 库更新期间更新结构
要求
• TIA Portal Openness 应用程序已连接到 TIA Portal。
请参见“连接到 TIA Portal (页 82)”如果存在冲突,可使用 TIA Portal Openness 更新/保留结构,也可保留/删除目标库中未使用
的版本。
对于 TIA Portal Openness 17,项目库和全局库引入了具有以下签名的 UpdateLibrary API:
• public void UpdateLibrary(IEnumerablesourceTypesAndFolders, ILibrary targetLibrary, ForceUpdateMode forceUpdateMode,
DeleteUnusedVersionsMode updateMode, StructureConflictResolutionMode
structureConflictResolutionMode);
单一类型引入了具有以下签名的 UpdateLibrary api:
• public void UpdateLibrary(ILibrary targetLibrary, DeleteUnusedVersionsMode
updateMode, StructureConflictResolutionMode
structureConflictResolutionMode,ForceUpdateMode forceUpdateMode);
通过这一新 API,现在可传递删除未使用版本模式、结构冲突解决模式和强制更新模式
• DeleteUnusedVersionsMode - 这些选项用于控制是否删除/保留目标库中的未使用版本。
• StructureConflictResolutionMode - 这些选项用于控制在出现结构冲突时是否更新目标
库结构、保留现有结构或取消操作。
• ForceUpdateMode - 这些选项用于控制是否将目标库中的已更新版本设为默认版本/最新
版本。
UpdateLibrary 根据作为输入提供的 ENUM 值进行处理。
• DeleteUnusedVersionsMode.AutomaticallyDelete:将删除目标库中的未使用版本 <
如果目标库中有未使用的版本>
• DeleteUnusedVersionsMode.DoNotDelete:不会删除目标库中的未使用版本