3. AVEVA InTouch画面与导航框架开发

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 的嵌入模式,确保切换时导航栏不闪烁。

导航框架数据流与权限判断

InTouch 导航框架:画面切换与权限控制 MainFrame(主框架画面) 导航栏 总览 Overview 工艺 Process 报警 Alarm 趋势 Trend 内容区(嵌入子画面) Overview 全站工艺流程图 权限:所有用户 Process 泵/阀/液位操作 权限:Operator+ Alarm 实时报警与确认 权限:所有用户 Trend 关键参数历史曲线 权限:Supervisor+ 权限判断逻辑(按钮脚本) 点击导航按钮 → 检查 User.HasPermission("角色") → 通过:Show("画面") 嵌入内容区 → 不通过:MessageBox 提示无权限,画面不切换 Operator+ Supervisor+ 导航栏固定于 MainFrame 顶部,内容区通过 Show() 嵌入子画面,权限控制按钮可见性与切换逻辑

验证要点

  • 以 Operator 登录,确认总览、工艺、报警可切换,趋势按钮不可见或点击提示无权限。
  • 以 Supervisor 登录,确认四个区域均可正常切换,趋势画面显示历史曲线。
  • 切换画面时导航栏保持固定,内容区无残留旧画面元素。
  • 在报警画面确认报警后,返回总览画面,报警状态同步更新。
若使用 InTouch 的 Show 嵌入模式,需确保子画面尺寸与内容区一致,否则会出现滚动条或画面截断。建议在 WindowMaker 中统一设置画面尺寸为 1024×768。