『7x24小时有问必答』
该数据块的作用是向可视化导航栏提供一个ST的状态。另外会将ST的状态信息映射到一个字节输出变量上。 每个站点要调用一次该数据库。
名称  
类型  
说明
Stoe  
BOOL  
故障
Warn  
BOOL  
警告
Wart  
BOOL  
维护
K100  
BOOL  
负载电压反馈

FM  
BOOL  
完成报告
K10_GST  
BOOL  
站点初始位置
KSP-V  
BOOL  
站点工作位置
不使用  
BOOL  
取消
_Cfg  
WORD  
组态位(参见组态位表格)
Stop_Einzel
BOOL  
停止单次运行

一、程序整体定位与核心功能

1. 程序身份

属于VASS 标准自动化库(大众 / 奥迪 / 西门子联合开发)
功能:HMI 操作模式处理块,专门处理触摸屏(HMI)的操作按钮、状态回显、权限控制、界面动画
运行环境:西门子 S7-1200/1500 PLC,TIA Portal

2. 核心目标

读取 HMI 触摸屏按钮信号
控制设备手动 / 自动 / 单步运行三种操作模式的切换与权限
把 PLC 内部状态(故障、报警、待机、运行)同步到 HMI 界面
控制 HMI 界面按钮颜色、显示 / 隐藏动画
管理操作面板编号、操作权限互锁

模块 3:HMI 触摸屏按钮处理(Visutasten)

IF  "DB_ARG".PC_AKTIV  =  DWORD1600000000THEN

      #"HMI-UDT".bVisuTasten  :=  Byte0;

END_IF;

IF  #"HMI-UDT".bVisuTasten  <>  Byte0THEN

       ST_BA.VisuTaLoc  :=  #"HMI-UDT".bVisuTasten;

END_IF;

功能:

HMI 按钮信号采集
bVisuTasten  是 HMI 发来的按钮编码
信号保持
:按钮按下后状态锁存到本地变量
上升沿检测
:按钮松开后清零,防止重复触发
单步运行权限
Byte1  对应 HMI【单步启动】按钮

按钮编码定义(隐含逻辑):

Byte1
  = 单步启动
Byte4
  = 手动模式
Byte8
  = 自动模式
Byte9
  = 单步模式

---

模块 4:操作权限与面板编号(Bedienfreigabe)

IF  #"HMI-UDT".bVisuTasten  =  Byte4  AND  (ST_BA.PanelNrHand  =0)THEN

       ST_BA.PanelNrHand  :=  #"HMI-UDT".PanelNrHand;

END_IF;

核心逻辑:操作面板互锁与权限

工业场景意义:
一条产线可能有多个操作面板(触摸屏 / 按钮盒)
程序记录当前正在操作的面板编号
同一时间只允许一个面板控制设备,防止冲突
切换到自动 / 单步模式时,自动清空手动面板权限

---

模块 5:主逻辑(Programm)—— 核心控制区

这是整个程序的大脑,处理模式权限、状态映射、联锁逻辑。

1. 主电源联锁

#_ST_BA.K25_FrHand  :=  ST_BA.K25_FrHand AND  K100;

#_ST_BA.K26_FrAuto  :=  ST_BA.K26_FrAuto AND  K100;

K100
  = 设备主电源 / 控制电压正常
只有上电正常,才开放手动 / 自动权限

2. 单步运行启动逻辑

IF  R_TRIG_SF_FrgAutoEinzel.Q AND  Cfg.%X0 AND  ST_BA.K8_BaEinzelbet  THEN

       xHM_FrgEinzel  :=True;

END_IF;

满足 3 个条件,才允许单步运行:
HMI 按下【单步启动】
配置位 X0 激活单步功能
设备处于单步模式
按下【停止】或退出单步模式,立即关闭权限

3. 状态同步到 HMI

#"HMI-UDT".dwVisuWerte1  :=  ST_BA.VisuStatus;

#"HMI-UDT".dwVisuWerte4  :=  ST_BA.VisuStatusZs;

把 PLC 内部状态字原样复制到 HMI 数据区
HMI 根据这些状态字显示:运行、故障、报警、待机

4. 状态编码逻辑(HMI 界面显示值)

程序通过大量IF-ELSIF把 PLC 二进制状态 → 转换为 HMI 界面数字编码(0/1/2/3)例如:
自动模式 + 正常 → 编码 1
手动模式 + 正常 → 编码 2
故障 → 编码 0HMI 根据编码切换文字、图标、按钮样式。

5. 底部状态栏逻辑

Visu_Status.%X0  :=  Stoe;// 故障

Visu_Status.%X1  :=  Warn;// 报警

Visu_Status.%X2  :=  Wart;// 待机

直接映射到 HMI 底部状态栏,实时显示设备健康状态。

---

模块 6:HMI 颜色动画(Farbanimation)

这是工业 HMI 最直观的部分,用颜色表示设备状态。

颜色编码表(程序注释)

00 = 灰色
02 = 绿色(运行)
04 = 红色(故障)
06 = 黄色(报警)
03 = 蓝色(待机)

逻辑:

IF  Stoe  THEN

      #"HMI-UDT".dwVisuWerte2.%B0  :=  Byte10;// 红

ELSIF  Warn  THEN

      #"HMI-UDT".dwVisuWerte2.%B0  :=  Byte20;// 黄

ELSIF  Wart  THEN

      #"HMI-UDT".dwVisuWerte2.%B0  :=  Byte30;// 浅蓝

END_IF;

故障 → 红色
报警 → 黄色
待机 → 浅蓝
运行 → 绿色
配置位 X0 → 控制【单步运行】按钮是否显示

---

模块 7:导航动画(站点总览状态)

"DB_ARG".VisuSS.Station_Stoer  :=  "DB_ARG".VisuSS.Station_Stoer

OR  (K100  AND NOT #_ST_BA.K26_FrAuto AND NOT #_ST_BA.K25_FrHand

AND  (ST_BA.K8_BaEinzelbet AND  Cfg.%X0));

功能:产线总览界面的站点状态汇总
把当前站的故障 / 报警状态,同步到全厂总览界面
操作员在总览画面就能看到哪个工位异常

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码