VisualHMI - 屏幕旋转(定制)

在产品设计中,HMI 屏幕可能面临两类典型应用情形:

  1. 移动操作场景:HMI 被用作“手持器”或“平板”,用户在操作过程中会根据握持习惯或任务需求动态调整屏幕朝向;
  2. 固定安装场景:HMI 被以特定角度(如横装、竖装、倒置等)永久安装于设备或机柜上,安装方向由现场空间或人机工效决定。

为满足上述两种情况,HMI支持在运行过程中将整个 UI 界面统一旋转至 0°、90°、180° 或 270° 方向显示(如 HMI10600KM070_D011_4T对应横屏 1024×600 或竖屏 600×1024)。用户仅需开发并维护一套Lua程序,即可适配所有使用姿态与安装方式,显著提升开发效率与部署灵活性。横屏(0°/180°)与竖屏(90°/270°)所使用的 Lua 脚本逻辑完全一致,无需针对不同方向编写或修改脚本代码。两者的差异仅体现在编译生成的bin文件中:

  • image.bin:包含经旋转处理后的图片资源(如背景图、图标)等;
  • project.bin:包含画面/控件的位置、属性。

因此,开发者只需维护一套脚本逻辑,系统在加载对应方向的 imageXXX.binprojectXXX.bin 时,即可自动呈现正确的界面布局与交互行为,确保功能一致性与开发效率。

image-20260123095342317


使用范围:VisualHMI - DX系列

应用下载:VisualHMI - 屏幕旋转(0°/90°/180°/270° )(点击下载)

1.应用

本章节以型号 800400DH070(物理分辨率 800×480)为例,演示如何为 HMI 设备准备支持 0°、90°、180°、270° 四种显示方向的运行文件。通过分别编译横屏与竖屏工程并按规范命名输出文件,最终实现设备在运行时根据需要加载对应方向的界面。

1.1.创建工程

1.1.1.创建横屏

  1. 横屏工程A(用于 0° 和 180°)

image-20260123101523072

1.1.2.竖屏工程

创建竖屏工程B(用于 90° 和 270°)

image-20260123101924262

1.2.编辑Lua

set_lcd_rotate(angle):设置旋转角度

  • angle:0~3。0-0°,1-90°,2-180°,3-90°
function on_init()
    local angle = get_uint16(VT_RW, 0x0001) --从Flash旋转方向
    angle = (angle < 0 or angle > 3) and 0 or angle
    set_lcd_rotate(angle)
    set_uint16(VT_LW, 0x8888, angle)
end

function on_update(slave,vtype,addr)
    if vtype == VT_LW
    then
        if addr == 0x8888
        then
            local val = get_uint16(VT_LW, 0x8888)
            set_uint16(VT_RW, 0x0001, val) --将旋转的角度标记存储
            set_lcd_rotate(val)
        end
    end
end

1.3.生成下载包

  1. 横屏工程A(用于 0° 和 180°),编译两次,分别设置工程属性 → 屏幕旋转为

    • :生成默认 image.binproject.bin,保留于 private 目录; 1 00_00_00-00_00_30

    • 180°:重新编译,将生成的 image.binproject.bin 重命名为image180.binproject180.bin,并放入 0° 工程的 private 目录中。

      2 00_00_00-00_00_30

  2. 竖屏工程B(用于 90° 和 270°),编译两次,分别设置工程属性 → 屏幕旋转为

    • 90°:生成文件重命名为 image90.binproject90.bin;一并放入 0° 工程的 private 目录中。

      3 00_00_00-00_00_30

      • 270°:生成文件重命名为 image270.binproject270.bin;一并放入 0° 工程的 private 目录中。
 ![4 00_00_00-00_00_30](..\Other\image\9\d.gif)

2.下载运行

完成上述操作后,private 目录下应包含以下 8 个核心文件:

image-20260123105429614

HMI 启动时默认加载 image.bin / project.bin(即 0°);通过运行时调用系统接口(如 Lua 脚本),可动态切换至其他方向,此时系统自动加载对应的 imageXXX.binprojectXXX.bin 文件;SD卡下载上述privete后,运行效果如下所示:

操作0-10s 00_00_00-00_00_30

Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2026-02-05 14:31:51

results matching ""

    No results matching ""