HMI触摸屏程序设计详解

HMI触摸屏程序设计详解

本文详细解析一个工业HMI触摸屏程序,该程序实现了参数设置、状态监控、报警处理等功能,并包含完善的错误检测机制。

程序功能概述

本程序主要实现以下功能:

  1. 参数初始化与设置
  2. 实时状态监控
  3. 报警处理与显示
  4. 参数比对与更新
  5. 固件版本检查
  6. 进度显示与更新

主要模块说明

1. 初始化模块

1
2
3
4
5
6
7
8
9
10
11
12
function Initial()
-- 开启韧体检查
mem.inter.WriteBit(12, 2, 1)
-- 隐藏进度条
mem.inter.WriteBit(12, 1, 1)

-- 读取设备参数
local ModelCode = link.Read("{VFD}1@RW-0000")
local CarryFreq = link.Read("{VFD}1@RW-0011")
local FreqCommand = link.Read("{VFD}1@RW-0014")
local MaxOperatFreq = link.Read("{VFD}1@RW-0100")
end

初始化模块负责系统启动时的准备工作,包括参数读取和功能设置。

2. 参数处理模块

1
2
3
4
5
6
7
8
9
10
11
12
13
function ProcessLinkValues()
-- 读取设备状态
value1 = link.Read("{VFD}1@RW-0232")
value2 = link.Read("{VFD}1@RW-0233")
value3 = link.Read("{VFD}1@RW-0C3B")
value4 = link.Read("{VFD}1@RW-0009")

-- 写入内存
mem.inter.Write(250, value1)
mem.inter.Write(251, value2)
mem.inter.Write(252, value3)
mem.inter.Write(253, value4)
end

参数处理模块负责读取设备状态并存储到内存中。

3. 报警处理模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function Alarm()
-- 读取报警代码
mem.inter.Write(2100, link.Read("{VFD}1@RW-2100"))

local AlarmID = mem.inter.Read(2100)
local Error, Warning

-- 解析报警代码
if AlarmID > 0 and AlarmID <= 255 then
Error = AlarmID
Warning = 0
elseif AlarmID > 255 then
Error = 0
Warning = AlarmID - 255
end

-- 更新报警显示
mem.inter.Write(119, Error)
mem.inter.Write(120, Warning)
end

报警处理模块实时监控设备状态,解析并显示报警信息。

4. 参数更新模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function UpdatePara(para_table, write_case_table, rt_index)
-- 检查机器码和固件版本
if MachineCodeCheck(para_table[1][rt_index], C2000RErrorCodeScreen) == 0 or
(mem.inter.ReadBit(12, 2) == 1 and FwVersionCheck(para_table[2][rt_index], FW_VersionErrorScreen) == 0) then
return
end

-- 更新参数
for k = 1, 2 do
for i = 1, size do
UpdateProgress((k - 1) * size + i, 2 * size)
mem.inter.WriteAscii(130, paraindex, string.len(paraindex))
mem.inter.WriteAscii(135, tostring(value), string.len(tostring(value)))
end
end
end

参数更新模块负责批量更新设备参数,包含进度显示功能。

关键技术点

  1. 参数互锁:通过内存位操作实现参数更新互锁
  2. 错误处理:完善的错误检测和处理机制
  3. 状态管理:使用内存变量记录设备状态
  4. 进度显示:实时更新操作进度
  5. 固件检查:自动检测设备固件版本

HMI界面示例

程序流程图

1
2
3
4
5
6
7
8
9
graph TD
A[初始化] --> B[参数读取]
B --> C{参数检查}
C -->|通过| D[参数更新]
C -->|失败| E[错误处理]
D --> F[状态监控]
F --> G{报警检测}
G -->|有报警| H[报警处理]
G -->|无报警| I[结束]

总结

本程序展示了工业HMI触摸屏系统的典型实现,包含了人机界面开发中的多个关键技术点。通过模块化设计和完善的保护机制,确保了系统的可靠性和易用性。