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 基于站的结构
项目以站或站的组合划分,如下图:

基于站的结构完全以站点划分项目,该结构下,在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 |