3、创建与管理用户组:内置用户组(Admin、User、Service)解析、创建自定义用户组、用户组权限继承规则
好,咱们接着聊用户管理。上一节我们把用户账户讲透了,这一节轮到「用户组」了。
说实话,我在现场调试时见过不少工程师,用户账户建了一大堆,权限却乱成一锅粥。为什么?因为没用好用户组。你想想看,如果每个操作员都单独配权限,项目里有五十个人,你得配五十次。万一哪天要统一调整某个权限,那简直是噩梦。
用户组就是来解决这个问题的。它像一个「权限模板」,你把用户丢进组里,他就自动继承组的所有权限。省事,而且不容易出错。
3.1 内置用户组:Admin、User、Service
WinCC 安装好之后,系统已经帮你建好了三个内置用户组。嗯,这三个组你动不了,也不能删除。它们各有各的定位。
| 内置组名称 | 默认权限范围 | 我一般用它来... |
|---|---|---|
| Admin | 完全控制,所有功能开放 | 给工程师自己用,或者给维护主管 |
| User | 基本操作权限,比如画面浏览、数据查看 | 给普通操作员,只能看不能改 |
| Service | 介于 Admin 和 User 之间,通常包含诊断、维护类权限 | 给设备维护人员,能看报警、能复位,但不能改配方 |
Admin 组——说白了就是「超级管理员」。我个人的习惯是,Admin 组里只放两个人:一个是我自己,另一个是甲方的主管工程师。其他人一律不给。为什么?因为 Admin 能改系统时间、能删历史数据、能改用户权限。万一有人手滑,后果很严重。
User 组——这是最常用的组。操作员登录后,只能做你允许他做的事。比如启动设备、查看趋势图、确认报警。但不能修改参数,不能下载组态。我曾经在一个项目里遇到过,操作员不小心把画面上的一个输入框给改了,导致整条产线停了两个小时。从那以后,我坚决把操作员都放在 User 组,并且把「修改画面」的权限关掉。
Service 组——这个组容易被忽略。其实它很有用。比如设备维保人员,他们需要查看报警记录、需要手动复位一些故障,但不需要修改工艺参数。Service 组正好满足这个需求。我记得有一次,客户抱怨说维保人员总是误改配方,后来我把他们从 User 组移到 Service 组,问题就解决了。
重要提醒:内置组的权限是系统预设的,但你可以微调。比如你可以给 User 组额外开放「打印报表」的权限。但我不建议大幅修改内置组,因为系统升级时可能会覆盖你的改动。
3.2 创建自定义用户组
内置组不够用?那就自己建。我在实际项目中,几乎每个项目都会建一到两个自定义组。比如「质检组」、「工艺工程师组」、「班组长组」。
创建步骤很简单,我带你走一遍:
- 打开 WinCC 的 User Administrator 编辑器。
- 在左侧树形结构中,右键点击 Groups,选择 Add New Group。
- 输入组名称,比如
Quality_Group。 - 在右侧权限列表中,勾选你需要的权限项。
- 点击 Apply 保存。
举个例子。我在一个制药项目中,需要给质检员单独建一个组。他们的权限需求是:
- 查看所有历史数据
- 导出报表
- 修改批号信息
- 但不能启动/停止设备
- 不能修改配方
你看,这种组合权限,内置组给不了。所以我建了一个 QA_Group,只勾选上面那几项。完美匹配。
我的小技巧:自定义组的命名,我建议用英文或拼音,不要用中文。因为 WinCC 底层对中文组名的支持偶尔会有 bug。我曾经吃过这个亏,项目部署到现场后,组名显示乱码,排查了半天。后来全部改成英文,再也没出过问题。
3.3 用户组权限继承规则
这部分是重点,也是很多人容易搞混的地方。我尽量讲清楚。
WinCC 的权限继承,遵循一个核心原则:子组继承父组的所有权限,但子组可以额外增加权限,不能减少父组已有的权限。
什么意思?我画个图你就明白了。
看到没?子组 Senior_Operator 和 Shift_Leader 都自动拥有了父组 Operator_Group 的「查看画面」和「确认报警」权限。然后各自再叠加自己的专属权限。
这里有个关键点:如果你把用户张三同时加入 Senior_Operator 和 Shift_Leader 两个组,那么张三的权限是两个组的并集。 也就是说,他既能启动设备,又能修改参数。权限取最大值。
注意避坑:我曾经在一个项目中,把同一个用户加入了两个权限冲突的组。结果用户登录后,某些功能时而能用时而不能用,排查了很久。后来发现是组之间的权限覆盖导致的问题。所以我的建议是:一个用户尽量只属于一个组。如果确实需要多个组,一定要仔细检查权限是否有冲突。
还有一个细节:权限继承是单向的。 父组不会因为子组增加了权限而自动获得那些权限。也就是说,如果你在子组里加了「删除历史数据」的权限,父组里的用户依然没有这个权限。只有子组里的用户才有。
嗯,这个规则其实很合理。你想想看,如果子组加了权限,父组也跟着有了,那权限管理就乱套了。WinCC 的设计思路是:权限只能向下传递,不能向上回溯。
最后总结一下我的经验:
- 能用内置组,就别建自定义组。 内置组经过微软和西门子的严格测试,稳定性最好。
- 自定义组要命名规范。 我一般用
部门_角色的格式,比如Production_Operator、Maintenance_Engineer。 - 权限继承要画图。 组多了之后,继承关系容易乱。我习惯在项目文档里画一张权限继承树,方便后期维护。
- 测试很重要。 建好组之后,用不同账户登录,逐个功能测试一遍。别偷懒,这一步能帮你发现 90% 的权限问题。
好了,用户组这部分就讲到这里。下一节我们聊「权限分配实战」,我会拿一个真实项目案例,手把手教你如何给不同角色分配权限。
公众号:蓝海资料掘金营,微信deep3321