3. AVEVA InTouch画面与导航框架开发
水处理站导航框架设计
本案例为某水处理站设计 InTouch 导航框架,包含总览、工艺、报警、趋势四个区域。核心思路是:用一张主框架画面(Frame)承载固定导航栏与内容区,四个区域画面作为子画面嵌入内容区,通过Show函数切换,并用User权限控制按钮可见性。
画面结构与命名规划
| 画面名 | 用途 | 嵌入方式 | 访问权限 |
|---|---|---|---|
| MainFrame | 主框架,含导航栏+内容区 | 独立窗口 | 所有用户 |
| Overview | 总览:全站工艺流程图 | 嵌入内容区 | 所有用户 |
| Process | 工艺:泵/阀/液位详细操作 | 嵌入内容区 | Operator及以上 |
| Alarm | 报警:实时报警列表与确认 | 嵌入内容区 | 所有用户 |
| Trend | 趋势:关键参数历史曲线 | 嵌入内容区 | Supervisor及以上 |
导航切换与权限控制实现
在 MainFrame 的导航按钮中,使用 InTouch 脚本实现画面切换。以下为“工艺”按钮的鼠标左键按下脚本:
IF User.HasPermission("Operator") THEN
Show("Process");
ELSE
MessageBox("当前用户无工艺画面访问权限");
ENDIF;
“趋势”按钮脚本:
IF User.HasPermission("Supervisor") THEN
Show("Trend");
ELSE
MessageBox("趋势画面仅限 Supervisor 及以上用户");
ENDIF;
权限在 InTouch 的 User 配置中定义:Operator 拥有工艺画面权限,Supervisor 额外拥有趋势画面权限。按钮的可见性也可绑定权限,例如趋势按钮的“可见”属性设为:
User.HasPermission("Supervisor")
这样无权限用户看不到趋势按钮,避免误操作。
建议将四个区域画面统一尺寸(如 1024×768),并在 MainFrame 内容区使用
Show 的嵌入模式,确保切换时导航栏不闪烁。导航框架数据流与权限判断
验证要点
- 以
Operator登录,确认总览、工艺、报警可切换,趋势按钮不可见或点击提示无权限。 - 以
Supervisor登录,确认四个区域均可正常切换,趋势画面显示历史曲线。 - 切换画面时导航栏保持固定,内容区无残留旧画面元素。
- 在报警画面确认报警后,返回总览画面,报警状态同步更新。
若使用 InTouch 的
Show 嵌入模式,需确保子画面尺寸与内容区一致,否则会出现滚动条或画面截断。建议在 WindowMaker 中统一设置画面尺寸为 1024×768。