HMI 按钮控件 (HMIBC)
此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。
使用 HMI 按钮控件 (HMIBC) 指令与
PanelView
5500 人机界面 (HMI) 可使操作员能够以高精度和确定性启动机器控制操作,例如使电机点动或启用阀门。HMIBC 指令还提供内置的通信诊断功能,当来自控制 HMI 的通信不可用时,可使该指令自动复位。每个 Logix 控制器最多支持 256 个 HMIBC 标签和最多 32 个
PanelView
5500 HMI 设备同时通信和控制指令。当 PanelView
5500 HMI 设备启动与指令实例标签关联的按钮控件操作时,HMIBC 指令激活并启用其输出。
重要提示:
PanelView 5000 模块必须位于项目 IO 树中才能使用 HMIBC 指令。
若要正常运行,Logix 控制器 I/O 配置必须包括需要与 HMIBC 指令进行交互的所有
PanelView
5500 HMI。此外,为各 PanelView
5500 HMI 创建的应用程序必须包括一些按钮动作,并且要求这些按钮动作已配置为引用与 HMIBC 指令相关联的待控制的各个标签。
注意:
每次扫描至少执行一次此指令,不要跳过。
HMIBC 数据类型:
- 在控制器和程序作用域内可用。
- 在 Add-On 自定义指令作用域内不可用。
- 用于跳转至子例程 (JSR) 指令。
- 不能与输入和输出程序参数一起使用
- 在安全程序中不可用。
- 必须具有外部访问值“读/写”。用户无法选择其他外部访问值。
HMIBC 标签具有 .L5K、.L5X 和 .CSV 的导入和导出格式。
可用语言
梯形图

功能块

小贴士:
对于 HMIBC 标签,仅使用 Out 参数,也可以使用功能块图中的 ProgFB 参数。
结构化文本
HMIBC(HMIBC 标签)
操作数
以下操作数位于指令上。
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
HMIBC tag | HMIBC | 标签 | 当其数据位置位时变为激活状态 |
HMIBC 结构
输入参数 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。如果此参数为假,则指令不会执行。 |
Prog FB | BOOL | 程序反馈。此值不由指令处理,但会传输至所有注册的 HMI 设备。该值的用途或意义由用户定义。例如,此值可用于确定在按下相应按钮后预期操作是否真正执行以及是否在 HMI 设备上显示相应状态。 |
输出参数 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 指示指令是否处于启用状态。 |
Button State | BOOL | 在无任何已注册 HMI 设备按钮按下时设置为假。 在按下至少一个已注册 HMI 按钮时设置为真。 默认值为假。 |
Out | BOOL | 当 EnableIn 为真时: 在无任何已注册 HMI 设备按钮按下时设置为假。 在按下至少一个已注册 HMI 按钮时设置为真。 当 EnableIn 为假时: 设置为假 默认值为假。 |
影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。对于数组索引故障,请参阅 通过数组建立索引。
执行
梯形图
条件 | 执行的操作 |
|---|---|
预扫描 | 梯级输出条件设置为假。 |
梯级输入条件为假 | 梯级输出条件设置为假。 |
梯级输入条件为真 | 如果按下与指令实例标签关联的任何 HMI 设备按钮控件操作,则梯级输出条件设置为 true。否则,梯级输出条件设置为 false。 |
后扫描 | 梯级输出条件设置为假。 |
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 不适用 |
Tag.EnableIn 为假 | 指令不会执行。 |
Tag.EnableIn 为真 | 指令不会执行。 |
指令首次扫描 | 不适用 |
指令首次运行 | 不适用 |
后扫描 | 不适用 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 指令执行。 |
正常执行 | 指令执行。 |
后扫描 | 指令执行。 |
示例
梯形图

- HMIBC 指令是输入指令,不能单独放置在梯级上。
- HMIBC 指令在处于激活状态时会突出显示。
功能块
以下示例显示的 HMIBC 指令如功能块图中所示。

结构化文本
HMIBC (HMIBC_Conv);
IF(((Auto AND Run_Conv) Or (NOT Auto AND HMIBC_Conv.Out)) AND NOT Conv_Fault)
THEN Conv_Motor: = 1;
ELSE Conv_Motor : = 0;
END_IF;
提供反馈