触摸屏画面切换的动画效果设置
第一部分:理解基础概念
1.1 什么是画面切换动画
画面切换动画指在触摸屏(HMI,人机界面)中,从一个显示画面跳转到另一个画面时,系统呈现的过渡视觉效果。这种效果不是简单的瞬间跳变,而是通过渐变、滑动、缩放等方式,让视觉变化更加平滑自然。
常见工控触摸屏品牌均支持此功能,包括西门子、威纶通、三菱、昆仑通态等。不同品牌的实现方式略有差异,但核心逻辑相通。
1.2 为什么需要动画效果
降低视觉疲劳:瞬间切换容易造成视觉焦点丢失,动画让眼睛有追踪目标的过程。
强化操作反馈:用户明确感知到"指令已被执行",减少重复点击。
提升专业感:平滑过渡体现设备档次,尤其在展示场合价值明显。
掩盖加载延迟:复杂画面数据量大时,动画可填充等待时间。
1.3 动画效果的代价
每增加一层视觉效果,都意味着:
- 处理器运算负担加重
- 画面切换时间延长
- 内存占用增加
工业现场需权衡美观与实时性,关键报警画面通常建议关闭动画,确保秒级响应。
第二部分:主流品牌操作详解
2.1 西门子 WinCC Flexible / TIA Portal
适用设备
TP700 Comfort、KTP1200 Basic、精智面板等系列。
设置步骤
-
打开 TIA Portal 软件,双击 项目中的 HMI 设备进入编辑界面。
-
点击 左侧项目树中的 "运行系统设置"(Runtime Settings)。
-
展开 "画面"(Screens)类别,找到 "画面切换"(Screen change)选项组。
-
勾选 "使用动画"(Use animation)复选框,启用 动画功能。
-
点击 "动画类型"(Animation type)下拉框,选择 所需效果:
| 动画类型 | 视觉效果描述 | 适用场景 |
|---|---|---|
无 |
直接切换,无过渡 | 报警画面、紧急操作 |
淡入淡出 |
当前画面渐隐,新画面渐显 | 数据监控、报表查看 |
推进 |
新画面从指定方向推入覆盖旧画面 | 层级导航、菜单展开 |
擦除 |
类似百叶窗或横扫的 revealing 效果 | 图片展示、状态概览 |
分割 |
画面从中间向两侧展开或收缩 | 详细参数页进入 |
-
设置 "持续时间"(Duration),单位毫秒。建议范围
300至800,过短失去平滑感,过长显得拖沓。 -
若选择 "推进" 或 "擦除" 等方向性动画,指定 "方向"(Direction):
从左到右、从右到左、从上到下、从下到上。 -
点击 "应用"(Apply)保存 设置,下载 项目至触摸屏测试效果。
高级技巧:单独画面控制
全局设置影响所有画面,但某些画面需要特殊处理:
- 右键点击 具体画面名称,选择 "属性"(Properties)。
- 找到 "画面切换动画" 选项,勾选 "覆盖全局设置"。
- 单独配置 该画面的动画参数。
2.2 威纶通 EasyBuilder Pro
适用设备
MT8071iE、cMT3103、X系列等。
设置步骤
-
启动 EasyBuilder Pro,打开 目标项目文件(
.emtp或.mtp格式)。 -
点击 菜单栏 "系统参数设置"(System Parameter Settings),选择 "HMI属性" 标签页。
-
切换 至 "画面"(Screen)子页面,定位 "画面切换效果" 区域。
-
点击 "效果"(Effect)下拉菜单,选择 动画类型:
| 效果名称 | 代码标识 | 特点说明 |
|---|---|---|
无效果 |
NONE |
即时切换,零延迟 |
淡入 |
FADE_IN |
新画面透明度 0%→100% |
淡出 |
FADE_OUT |
旧画面 100%→0% 后显示新画面 |
淡入淡出 |
FADE |
两者结合,最常用 |
向左推入 |
PUSH_LEFT |
新画面从右侧进入 |
向右推入 |
PUSH_RIGHT |
新画面从左侧进入 |
向上推入 |
PUSH_UP |
新画面从下方升起 |
向下推入 |
PUSH_DOWN |
新画面从上方落下 |
中心放大 |
ZOOM_IN |
由小到大展开 |
中心缩小 |
ZOOM_OUT |
由大到小收缩显现 |
-
输入 "时间"(Time)数值,单位为 0.1 秒。输入
5表示 0.5 秒,10表示 1 秒。威纶通建议不超过20(2秒)。 -
勾选 "启用加速/减速"(Enable acceleration/deceleration)可使动画更自然,但会增加少量计算开销。
-
点击 "确定" 保存 参数。
宏指令精细控制
威纶通支持通过宏指令动态控制动画:
// 在画面打开前执行,临时关闭动画
SetScreenAnimation(0); // 0=无效果
// 执行画面切换
ChangeScreen("AlarmScreen");
// 恢复默认动画
SetScreenAnimation(3); // 3=淡入淡出
2.3 三菱 GOT2000 / GOT Simple
适用设备
GT2512、GT2107、GS2110 等系列。
设置步骤
-
打开 GT Designer3 软件,载入 工程文件。
-
点击 "公共设置"(Common)→ "GOT 环境设置"(GOT Environment Setting)→ "画面切换"(Screen Switching)。
-
在 "切换效果"(Change Effect)区域,选择 效果类型:
| 效果 | 说明 |
|---|---|
通常 |
无动画 |
淡入 |
渐变显示 |
百叶窗 |
条状扫过效果 |
棋盘 |
块状拼接效果 |
随机 |
每次随机选择上述一种 |
-
设置 "效果时间"(Effect Time),范围 0~10 秒,以 0.5 秒为步进单位。
-
三菱特有功能:勾选 "根据画面不同设定" 后,双击 下方画面列表中的具体条目,可单独指定 该画面的切换效果。
2.4 昆仑通态 MCGS
适用设备
TPC7062、TPC1061Ti 等嵌入式触摸屏。
设置步骤
-
运行 MCGS 嵌入版组态软件,打开 工程。
-
点击 "工具" 菜单 → "动画设置" → "窗口动画"。
-
在 弹出对话框中,勾选 "启用窗口动画"。
-
选择 "动画方式":
| 方式 | 描述 |
|---|---|
瞬间打开 |
无动画 |
水平拉动 |
左右推拉效果 |
垂直拉动 |
上下推拉效果 |
淡入淡出 |
透明度变化 |
马赛克 |
块状逐渐清晰 |
-
拖动 "速度"滑块或输入 具体毫秒值。MCGS 默认提供
快速(200ms)、中速(500ms)、慢速(1000ms)三档。 -
点击 "应用到所有窗口" 或 单独勾选 特定窗口生效。
第三部分:工程实践要点
3.1 动画参数选择原则
响应速度优先场景(设备控制、急停操作):
- 选择
无效果或淡入(单向比双向快) - 设置 持续时间 ≤
300ms
信息展示优先场景(趋势曲线、数据报表):
- 选择
淡入淡出或推进 - 设置 持续时间
500ms~800ms
演示展示场景(客户参观、展厅演示):
- 可尝试
缩放、百叶窗等复杂效果 - 设置 持续时间
800ms~1200ms,增强视觉冲击
3.2 方向逻辑设计
多画面存在层级关系时,建议固定方向语义:
主菜单 ──向右推入──→ 子菜单 A
←向左推入─── 返回
主菜单 ──向下推入──→ 详细设置
←向上推入─── 返回
这种映射符合用户心理模型,降低学习成本。
3.3 性能优化技巧
减少同时动画元素:画面切换动画与内部元件动画(如旋转的风机图标)叠加时,暂停 部分非关键元件动画。
预加载策略:在"画面加载"事件脚本中,提前执行 数据查询,而非在动画完成后才开始通信。
降级机制:通过系统变量检测处理器负载,超过阈值时自动切换 为简单效果。伪代码示例:
// 读取CPU占用率(品牌相关变量名不同)
if SYSTEM_CPU_LOAD > 80 then
SetAnimationLevel(1); // 1=仅基础淡入淡出
else
SetAnimationLevel(3); // 3=完整效果
end_if
第四部分:故障排查
4.1 动画不生效
| 现象 | 排查步骤 |
|---|---|
| 所有画面均无动画 | 检查 全局动画开关是否启用;确认 下载时包含"系统设置" |
| 仅特定画面无动画 | 检查 该画面是否单独设置了"无效果";查看 画面属性中的覆盖选项 |
| 模拟器正常,实际设备无效 | 确认 硬件型号支持动画(部分入门级机型硬件性能不足) |
4.2 动画卡顿
- 降低 画面分辨率或色彩深度(16位色 vs 24位色)。
- 减少 画面上的动态元件数量(闪烁报警灯、滚动文字等)。
- 检查 通信负荷,后台大量数据轮询会抢占图形渲染资源。
- 延长 动画时间,给系统更充裕的帧生成周期。
4.3 画面闪烁或残影
- 更新 触摸屏固件至官方最新版本。
- 调整 动画方向,避免与画面主要色块边界平行运动(减少LCD响应延迟视觉)。
- 在 深色画面后插入 中性灰过渡画面(极端情况下的 workaround)。
第五部分:跨平台通用方案
当项目需要兼容多品牌设备,或品牌内置动画功能不足时,可采用伪动画方案:
5.1 基于定时器的逐帧动画
原理:利用画面刷新机制,快速切换多个中间画面模拟过渡效果。
实现步骤:
-
创建 三个画面:源画面(A)、中间过渡画面(B1-Bn)、目标画面(C)。
-
在 画面 A 的"切换按钮"中,写入 变量
AnimationStep = 1。 -
配置 循环策略:
- 添加 定时器,周期
50ms - 判断
AnimationStep值:- =1:调用
B1画面,置AnimationStep = 2 - =2:调用
B2画面,置AnimationStep = 3 - ...
- =n:调用
C画面,清零AnimationStep
- =1:调用
- 添加 定时器,周期
-
中间画面制作:
- B1:A 画面 75% 透明度 + C 画面 25% 透明度合成
- B2:50% + 50%
- B3:25% + 75%
此方案不依赖硬件动画支持,但消耗更多画面存储空间。
5.2 基于弹窗的覆盖式动画
原理:利用窗口层级关系,通过改变弹窗位置/尺寸/透明度模拟画面切换。
// 伪代码示例:向右滑动效果
for i = 0 to ScreenWidth step 20
SetWindowPos("TargetScreen", i, 0); // 每步右移20像素
Delay(10); // 延时10ms
end_for
// 完成后隐藏底层画面
HideScreen("SourceScreen");
第六部分:典型配置实例
6.1 实例:三层菜单导航体系
结构:主监控 → 区域选择 → 设备详情
配置方案:
| 层级关系 | 进入动画 | 持续时间 | 离开动画 |
|---|---|---|---|
| 主监控→区域选择 | 向右推入 | 500ms | 向左推出 |
| 区域选择→设备详情 | 向下推入 | 400ms | 向上推出 |
| 任意画面→报警弹窗 | 无(立即) | 0ms | 淡入淡出 |
报警弹窗特殊处理:
- 勾选 "最高优先级"
- 禁用 动画确保秒级弹出
- 设置 背景半透遮罩,自然形成视觉焦点
6.2 实例:轮巡展示模式
场景:展厅大屏自动循环展示产线概览、质量数据、能效分析三画面。
实现:
-
在 每个画面添加 "画面打开时" 事件脚本:
// 启动10秒后自动切换 StartTimer("AutoSwitch", 10000); -
定时器触发脚本:
if CurrentScreen == "Overview" then ChangeScreenWithAnimation("Quality", "FADE", 800); else if CurrentScreen == "Quality" then ChangeScreenWithAnimation("Energy", "PUSH_LEFT", 600); else ChangeScreenWithAnimation("Overview", "PUSH_RIGHT", 600); end_if -
触摸干预:任意画面检测到触摸事件时,停止 自动定时器,进入手动导航模式。

暂无评论,快来抢沙发吧!