2. WinCC用户管理器深入
WinCC的用户管理器(User Administrator)是运行系统权限体系的“根节点”。它并不是一个简单的用户名列表,而是一套由用户组、用户、权限等级、登录/注销机制、密码策略共同构成的授权模型。理解它的结构,才能正确回答“谁能操作哪个画面、哪个按钮、哪个归档值”这类工程问题。
从结构上看,用户管理器采用“组—用户”两级树形组织。左侧是用户组(Group),右侧是组内用户(User)。权限不直接挂在用户身上,而是先定义在组上,用户通过“属于哪个组”继承权限。这种设计的工程意义在于:当现场有20个操作员时,只需维护一个“操作员”组,而不是逐个用户配置权限。用户管理器内部维护的核心对象关系如下:
用户与用户组的创建要点
在WinCC项目中打开“用户管理器”,默认会看到Administrator组和Guest组。工程实践中不建议直接使用Administrator进行日常操作,而应新建业务组。创建顺序是:先建组、再设权限、最后建用户并归组。
新建用户组时,需要设置组名(建议用英文,如Operator、Engineer、Admin)和权限等级。WinCC的权限等级通常用数字表示,数值越大权限越高。例如:
- Level 1:仅查看,不能操作任何控件;
- Level 4:可切换画面、查看趋势、确认报警;
- Level 6:可修改设定值、下载配方;
- Level 9:可管理用户、修改组态、执行关键操作。
创建用户时,需要填写用户名、密码、所属组,并可选择是否启用“用户必须修改密码”“密码永不过期”等选项。一个用户只能属于一个组,但可以在用户级别单独调整权限等级,用于处理“某操作员临时需要更高权限”的场景。需要注意的是,用户级别的权限覆盖只影响该用户,不会影响同组其他成员。
登录与注销机制
运行系统中的登录通过登录对话框完成。WinCC提供标准的登录/注销函数,例如在画面中使用按钮调用PWRT_Login或通过脚本调用@CurrentUser相关函数。登录成功后,系统会记录当前用户名和权限等级,后续所有控件权限检查都基于这个上下文。
注销同样重要。如果操作员离开工位而未注销,下一个人可能以他的权限继续操作,造成审计断链。因此工程上通常配置自动注销超时:在用户管理器的“设置”中指定空闲时间(例如10分钟),超时后系统自动注销并返回登录画面。此外,关键操作完成后可主动调用注销函数,强制释放权限。
登录/注销的典型脚本示例如下:
// 登录按钮的鼠标点击事件
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// 调用登录对话框
if (PWRTSilentLogin("op01", "123456"))
{
SetTagBit("LoginOK", 1);
}
}
// 注销按钮
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
PWRTSilentLogout();
SetTagBit("LoginOK", 0);
}
注意:PWRTSilentLogin是静默登录,适合在脚本中自动登录;如果希望弹出标准登录对话框,应使用PWRTSilentLogin之外的对话框函数或直接调用系统登录画面。实际项目中,建议在登录按钮上使用标准对话框,避免密码硬编码在脚本中。
密码策略配置
密码策略在用户管理器的“设置”中配置,主要包括:最小密码长度、密码复杂度要求、密码有效期、密码历史记录数量、登录失败锁定次数。这些策略直接影响运行系统的安全性和可维护性。
一个合理的工程示例配置如下:
| 策略项 | 建议值 | 说明 |
|---|---|---|
| 最小密码长度 | 8 | 低于8位易被暴力破解 |
| 密码复杂度 | 字母+数字 | 可进一步要求大小写混合 |
| 密码有效期 | 90天 | 到期强制修改 |
| 密码历史 | 5次 | 防止重复使用旧密码 |
| 登录失败锁定 | 3次 | 锁定后需管理员解锁 |
需要特别注意的是,密码策略一旦启用,必须确保现场操作员知晓并能够执行。如果密码过期后无人修改,可能导致生产中断。因此建议在密码到期前7天通过画面提示或报警提醒用户。
用户管理器与运行系统的关联方式
用户管理器与运行系统的关联体现在三个层面:
- 权限等级映射:画面中每个控件(按钮、I/O域、趋势控件)都有一个“授权”属性,设置为某个权限等级。运行时,系统将当前登录用户的权限等级与控件要求比较,决定是否允许操作。
- 当前用户变量:WinCC提供内部变量
@CurrentUser,可在脚本中读取当前登录用户名,用于记录操作日志或显示欢迎信息。 - 审计记录:登录、注销、权限变更、关键操作都可以写入审计跟踪。审计记录通常包含时间戳、用户名、操作类型、结果。工程上应确保审计记录存储在断电不丢失的介质中,并定期归档。
总结来说,用户管理器是WinCC权限体系的配置中心,运行系统是权限的执行现场。组态时把“组—用户—权限等级—密码策略”设计清楚,运行时才能做到“该能操作的能操作,不该能操作的碰不到”,同时留下完整的审计线索。