1 简介

大型PCS 7项目中,通常需要多个工程师协同工作,各自完成项目中的某部分。PCS 7为工程师提供了多项目和多用户组态的解决方案。

·        多项目组态:对多项目划分成不同的单项目,每个工程师设计一个项目。此时单项目应尽可能细分,例如可以每个项目仅包含一个AS或一个OS。多项目的方式甚至可以实现不同地点分布式设计这些项目

·        多用户组态:亦可称为网络组态,一般用于项目后期阶段联合处理AS的过程标签/CFC图表等。两个或多个ES可以通过网络打开多项目中的同一个项目。可能的应用场景为:编辑不同文件夹的不同CFC图表、编辑同一图表文件夹中不同CFC、编辑同一个CFC。此时需要进行合理规划,避免出现影响工程组态的可能因素。

                   

在实际应用中,两者可相互结合使用。使用PCS7多项目和多用户组态具有如下优势:

·        多套PLC或OS时,有利于多个工程师的协作,使得项目开发能平行进行,节约程序组态、管理、分离和合并的时间

·        主库,可以使用IEA

·        利用主库存储项目特定的UDT、FB、SFC等,可进行整个多重项目范围的同步、更新,使之保持一致

·        工厂层级更新

·        简化的夸项目的网络通讯

PCS7项目建议采用多重项目,在以下情况下,尤其应使用多重项目:

·        需要使用IEA或CMT

·        多个工程师开发,一般按控制器和OS划分

本文首先对PCS 7多项目的原则和方案、多用户组态的限制等进行介绍,然后重点介绍多项目的相关操作:多项目创建、多项目合并和拆分、网络合并、中央工程师站的使用等。

2 多项目方案

多重项目由所附属的各个单项目(AS、OS)和主库组成,如下图所示,是一个典型的多重项目构成。

 

在项目开发阶段,有2种操作方式:

1.      使用中央工程师站,多重项目程序存储在中央工程师站上,各独立的工程师站通过网络访问

2.      将多重项目分离为子项目,将子项目程序拷贝至独立的工程师站编辑,需要时再将多子项目合并为多重项目

2.1 原则

在考虑项目协作方式时,必须考虑如下因素

1.      项目工程师的人数

2.      考虑项目结构,不需要每个控制器、每套OS系统都划分为单个项目。

3.      例如某个项目有2个工程师,1个负责AS,1个负责OS,虽然有多套CPU,但也可以只划分为2个子项目:AS和OS即可。

4.      考虑工厂结构和系统组成

5.      例如项目DCS、SIS分为合成1234、罐区、溶媒回收共6个车间11套系统,车间和系统之间相互通讯,则应按车间系统划分项目,项目存储在各工程师站上,各工程师站直接访问本地程序,但整体通过一个多项目来组织。

6.      项目网络。通常工程师站之间的网络应该是稳定连通的。

7.      项目周期和复杂程度

在项目协作中,还应该遵循以下原则:

1.      虽然技术手段很重要,但良好的沟通和项目管理同样重要

2.      注意程序的版本管理

3.      最好同时只有1个人在编辑1个项目

4.      不同的OS系统应划分至不同的项目

2.2 多项目方案

方案描述 备注
在线分布式 Ÿ 子项目存储在分布式工程师站本地,可使用多项目的全部功能,本地开发调试效率最高 Ÿ 多项目在中央工程师站管理,可归档整个多项目。主库及多项目存储在中央工程师站。 Ÿ 使用“另存为”功能移动项目 注意: Ÿ 若某台分布式工程师站离线时,打开多项目时会卡。若只打开单项目不卡。 Ÿ 涉及到跨项目的功能时(例如OS编译),必须和其它项目工程师协调好,以避免冲突
离线分布式,单项目 Ÿ 使用“从多重项目删除”功能将子项目移出,使用“插入多重项目中”将子项目集成回多项目 Ÿ 或者使用“删除以进行编辑”将项目移出,使用“编辑后重新应用”将子项目集成回多项目,不能修改项目存储路径 Ÿ 项目编辑不受网络影响 注意: Ÿ 跨项目的网络连接在NetPro编译时警告,但不影响使用 Ÿ OS项目编译时需要相关的项目都集成回多重项目 Ÿ 分离的项目不含主库,不能使用主库相关的功能 Ÿ 只能在本机进行项目备份
离线分布式,多项目 Ÿ 将整个多项目归档、分发到分布式工程师站 Ÿ 各工程师站可根据需要,将不相关的其它站点数据删掉,保留主库 Ÿ 重新将各子项目集成至多项目 Ÿ 由于还是多项目,并具有主库,各工程师站可使用主库的功能 注意: Ÿ 主库只在一个地方管理,更新后再发布至其它工程师站 Ÿ OS项目编译时需要相关的项目都集成回多重项目

3 多用户组态

多用户组态时项目在不同的工程师站通过网络打开,此时本地工程师站上不保存项目数据。

中央工程师站推荐使用服务器系统,如果中央工程师站仅用于存储项目,而不用于组态操作,则不需要使用工程师站的许可证密钥。

不同组件的操作限制如下表所示:

组件 操作 限制
CFC/SFC 不同的CFC/SFC 无限制
1个CFC/SFC 有限制,必须手动刷新才能获取其它人的最新程序,不建议
高优先级操作进行时,低优先级操作自动中断。 类似单机开发时,当进行AS编译/下载、CFC回读、OS编译时,不能编辑CFC/SFC
PO视图 不同项目的PO视图 无限制
一个AS的PO视图的不同对象 无限制
一个AS的PO视图的一个对象 有限制,数据手动刷新
网络组态 最好在中央工程师站上组态、编译
硬件组态 编辑不同组件的硬件组态,例如两个AS,或1个AS和1个OS 无限制
编辑相同组件的硬件组态 有限制,只一人编辑,其它人只读
连接 源文件(SCL) 块(FC、FB、DB) 符号表 不同对象 无限制
同一对象 有限制,第一个改变的人可以保存,若第一个未保存,其它人只读
OS 从PCS78.1开始,具备OS多用户工程组态的功能。此功能必须手动打开:STEP7>选项>中央OS设置>OS多用户工程组态,激活。 OS项目通过SIMATIC Manager浏览到目标项目路径打开
数据库类型文件,例如变量表 第一个打开的人具有权限,其它人不能打开或者只读
文件类型文件,例如画面 第一个打开的人具有权限

4 多项目结构

4.1 基于站的结构

项目以站或站的组合划分,如下图:

                   

PCS 7 项目软件协作指南

基于站的结构完全以站点划分项目,该结构下,在AS项目中没有OS画面,在OS项目中也没有CFC程序。

优点:

·        项目划分的灵活性,开发调试比较灵活

·        更适合于按控制器、按上下位分工的项目

限制:

·        在OS编译期间,相关的AS项目不能复制

·        工厂层级需要在多重项目组态下更新

4.2 基于项目的结构

基于项目的结构,往往每个项目里包括了该项目所需要的所有站点,例如AS、OS等。

一般以车间或相对独立的系统划分。

 

优点:

·        程序版本更易于管理,减少项目合并、分解的操作

·        工厂层级更新时不需要整个多重项目范围的更新

·        可通过项目中的 AS 和 OS 对设计进行全面组态和测试。

·        工厂层级中具有统一视图,其中包含单项目中的 AS 和 OS

5 多项目的创建

5.1 创建多项目及子项目

步骤 操作 说明 备注
1 创建多重项目 定义多重项目名称 类型选择“多种项目: 定义存储位置路径
2 在多重项目中创建子项目 右击多重项目的名称 选择“多重项目” 选择“在多重项目中创建”
3 输入子项目信息 输入子项目名称 选择类型为“项目” 存储位置路径为多重项目的完整路径
4 创建其它项目 创建所有需要的项目

5.2 创建主数据库

步骤 操作 说明 备注
1 在多重项目中创建库 右击多重项目的名称 选择“多重项目” 选择“在多重项目中创建”
2 创建库 右击多重项目的名称 选择“多重项目” 选择“在多重项目中创建” 输入库项目名称,建议为多重项目名称_Lib 选择类型为“库” 存储位置路径修改为多重项目的完整路径
3 将库定义为主库 选择刚创建的库 右键 选择定义为主库 定义成功后,颜色由绿色变为蓝色
4 插入主库程序 选择插入S7程序
5 插入共享声明 选择插入共享声明

5.3 工厂层级

当采用基于站结构的多重项目时,工厂层级一般需要在多重项目下创建、更新,以保证整个项目级的同步,否则在OS编译时会因为层级或层级分配不一致报错。

推荐在OS项目创建全部的工厂层级,派生到各个相关的AS项目。

5.3.1 工厂层级的创建与更新

步骤 操作 说明 备注
1 在OS项目插入层级文件夹
2 在OS项目建立所有层级
3 同步多项目的工厂层级
4 选择要更新的项目
5 更新完成 其它项目的工厂层级已自动更新且完全相同,从OS站派生出的层级结构带有快捷方式的小箭头 OS项目的工厂层级作为其它项目工厂层级的模板 如果再次更新,重复4-5的操作即可

5.3.2 AS分配

工厂层级分配完成后,根据项目结构,对AS和OS进行分配。

步骤 操作 说明 备注
1 打开AS1工厂层级属性 展开AS1项目的工厂层级,右键生产线A,选择“对象属性”
2 分配AS 此处将生产线A分配给AS1 如果项目不涉及OS,则不需要在AS1项目分配OS 如果涉及OS系统,则在对应的工厂层级给分配给OS

5.3.3 OS分配

工厂层级分配完成后,根据项目结构,对AS和OS进行分配

步骤 操作 说明 备注
1 打开OS工厂层级属性 展开OS项目的工厂层级,右键生产线A,选择“对象属性”
2 分配OS 此处将生产线A分配给OS 如果项目不涉及AS,则不需要在OS项目分配AS 如果涉及AS系统,则在对应的工厂层级给分配给AS

5.4 网络合并

在多重项目下,如果涉及跨项目的通讯,则需要先将网络合并,然后再进行网络组态。

必须注意各网络子网ID的提前规划,如果有重复的相同子网ID,则在合并后编译会报错。

5.4.1 创建工厂总线

步骤 操作 说明 备注
1 新建AS项目的工厂总线 工厂总线命名为PlantBus
2 设置IP地址 根据网络地址表,设置IP地址
3 设置CPU端口的唯一设备名称 在多重项目范围内的命名为唯一的,否则在网络编译时会报错。 此处推荐将CPU端口命名命名为: {项目名称}-{CPU编号}-{端口编号} AS2-CPU0-X5
4 创建好所有站点的工厂总线 按上述步骤,把各项目的工厂总线都创建好,分配好IP地址。 可以看到,每个项目的子网ID是不同的。

5.4.2 工厂总线合并

步骤 操作 说明 备注
1 选择调整多重项目 右击多重项目 选择“多重项目” 选择“调整项目”
1 或NetPro中合并/拆解子网 在NetPro中选择编辑>合并拆解子网>Ethernet子网 直接进入第4步
2 选择合并Ethernet 选择合并/拆分子网下的Ethernet
3 选择要合并子网的项目 点击按钮,将需要合并的项目移动至右侧列表框
4 执行合并 点击确定按钮,执行合并
可选择更改合并后网络的名称
5 合并完成 子网已经合并为一个网络 所有的网络ID是一致的 网络组态视图能看到已经合并完成
进行跨项目网络的数据一致性 在合并子网之后及下载网络之前,进行跨项目一致性检查,检查整个多项目是否一致。

5.4.3 建立跨项目的连接

当网络合并完成后,可以方便地在网络组态里建立跨项目的连接。

步骤 操作 说明 备注
1 选择要创建的CPU-CPU连接 选择容错连接 选择要通讯的CPU
2 成功创建CPU-CPU连接
3 建立OS-AS连接
4 成功创建OS-AS连接 建议将本地ID更改为CPU名称,以方便管理

6 多项目的分离与合并

大型项目和多工程师时适用用多重项目的分解功能。

各单项目根据实际情况从中央工程师站分解并派发给各工程师,工程师在本地工程师站上编程调试。

                   

注意:

·        涉及跨项目的连接,例如AS-AS,AS-OS不会随项目的分解与合并改变

·        跨项目的OS编译可能需要项目合并

多重项目的方式如下表所示:

序号 技术路线 说明 优点
1 在线编辑 适用于局域网非常可靠的场合,在公司开发时更适用。 多重项目在中央工程师站创建,主文件存储在中央工程师站。子项目文件可存放于中央工程师站,也可存在于各工程师站。 Ÿ 多重项目总是完整的,各项目可随时利用主库,OS服务器也可编译
Ÿ 在中央工程师站上可以方便地归档整个项目
Ÿ 减少项目的分离、合并操作
2 在线分发、合并 单项目从多重项目通过另存为的方式,直接存储至分布式工程师站, 需要时可再将其另存回多重项目中,将项目存储回中央工程师站本地 Ÿ 整个多重项目仍保持完整
Ÿ 比较方便的分发、回归
3 离线分布式,单项目 单项目从多重项目中分离,派发给工程师编辑,编辑完后再拷回合并 注意: 1. 如果涉及夸项目的连接,在网络编译时会警告 2. 编译OS服务器时,所有相关的AS项目必须恢复至多重项目 3. 分离的项目为单项目,不包括主库,不能使用主库的功能 Ÿ 一般在本地计算机编程调试,稳定性和效率更高
Ÿ 不会存在多人同时操作1个项目,有利于数据的一致性
4 离线分布式,多项目 1. 将整个多重项目归档并恢复至工程师站,删除与此工程师站不相关的项目,只保留相关项目和主库。 2. 可利用主库进行IEA或更新等操作 注意: 1. 主库只在中央工程师站上更新,更新后再分发给各工程师 2. 如果涉及夸项目的连接,在网络编译时会警告 3. 编译OS服务器时,所有相关的AS项目必须恢复至多重项目 Ÿ 可利用主库更新项目程序
Ÿ IEA等功能可用

6.1 在线分布式(推荐使用)

6.1.1 分发项目

步骤 操作 说明 备注
1 分离目标项目 选择目标项目 点击文件>另存为 激活“添加到多重项目”复选框 激活 “替换当前项目”复选框 选择“当前多重项目” 输入目标存储位置路径。
2 确定加入到本地多重项目中 点击是,将网络项目加入到本地项目
3 分离目标项目完成 项目另存至目标路径,但该单项目仍在多重项目中。 原路径存储的项目仅作为备份,可删除

6.1.2 集成项目

若想把分布式项目集中至中央工程师站,有两种方式:

1.      通过在中央工程师站上归档整个多项目(另存整个多项目亦可),再恢复至本地硬盘。

2.      在中央工程师站上打开分布式项目,将其另存至本地路径(首先删除原有项目)。

步骤 操作 说明 备注
1 在中央工程师站的多重项目中删除项目
2 在中央工程师站本地路径删除原项目 必须在中央工程师站本地路径删除原项目,否则会提示项目已经存在
2 集成项目 在中央工程师站或者分布式工程师站,打开要集成的目标项目 点击文件>另存为 激活“添加到多重项目”复选框 激活 “替换当前项目”复选框 选择“当前多重项目” 输入中央工程师站的本地存储位置路径。
3 完成 之后该项目就存储回中央工程师站本地上,分布式工程师站上的项目即作为备份

6.2 离线分布式,单项目

6.2.1 删除以进行编辑

步骤 操作 说明 备注
1 选择要分离的项目 右键项目 选择多重项目 选择删除以进行编辑
2 指定分离后的存放路径 选择分离后的存放路径 注意:此路径不可修改,当再恢复时必须还存放在相同路径,否则会合并失败
3 分离成功 可在指定的项目路径内看到项目文件 同时,原多重项目内该项目的文件将被删除
4 打开项目编辑 浏览到项目路径,打开该单项目
4 对程序进行修改 可看到,项目树显示在<MP_Station>多重项目中 插入2个CFC程序

项目分离成功后,便可拷至其它位置或工程师站进行编辑。

当编辑完成后,将该项目拷至此路径,可再进行合并。

6.2.2 编辑后重新应用

步骤 操作 说明 备注
1 选择要重新连接回多重项目的项目 右键项目名称 选择多重项目 选择“编辑后重新应用”
注意:项目必须存放在分离时指定的路径,否则会合并失败
2 系统自动重新应用
3 项目重新应用完成 可以看到,项目图标显示正常状态,程序打开后,存在刚才添加的2个CFC程序 单项目已经剪切至多重项目路径内

6.2.3 将项目从多重项目中删除

除6.2.1-6.2.2中的方法外,还可以使用如下方式从多项目中删除,编辑完成之后再次添加至多重项目中。

步骤 操作 说明 备注
1 选择要重新连接回多重项目的项目 右键项目名称 选择多重项目 选择“从多重项目中删除”
2 项目已删除 AS1项目已经从多重项目中删除 项目文件仍存储在原路径

6.2.4 将项目添加至多重项目中

步骤 操作 说明 备注
1 准备插入项目 右键项目名称 选择多重项目 选择“插入多重项目中”
2 添加项目 浏览项目 选择项目AS1 点击确定
3 项目添加成功

7 参考文件

序号 文档名称 备注
1. Multi-project/multi-user engineering https://support.industry./cs/ww/en/view/22258951
2. 过程控制系统PCS7工程组态系统(V9.0 SP3)- 配置手册 https://support.industry./cs/cn/zh/view/109800501
3. 过程控制系统PCS7 SIMATIC S7中的CFC(V9.0 SP6)- 功能手册 https://support.industry./cs/cn/zh/view/109792630
4. 如何通过多用户创建多项目 https://support.industry./cs/cn/zh/view/78615622