- 新增 7.9 阀门按钮(双电控二位五通)与 5.10 地址段,独立文档 双电控电磁阀按钮设计.md - net-apply: RW-40~51 首段为 0 时跳过写设备 IP 与重连,防被刷成 0.0.0.0 - 新增 10.1 在线模拟元件不显示排查:设备未通讯时绑 PLC 地址的元件整片不画 - .gitignore 通配 unitouch*.cxob / *.debug / *.cmtp.bak*
12 KiB
双电控二位五通电磁阀 · HMI 按钮设计
适用:CMT2167X / EasyBuilder Pro 6.10;对象为双线圈(双电控)二位五通电磁阀。 前提:PLC 侧已分配 2 个 DO(A 线圈 = 开/工作,B 线圈 = 关/复位)。
一句话结论:两个按钮都做成复归型(点动),HMI 只发"命令脉冲";脉宽、互锁、死区、超时全部放 PLC;状态灯读阀位记忆位,绝不读 DO。
1. 先弄清这只阀的四个硬约束
| 特性 | 物理含义 | 对 HMI 的硬性要求 |
|---|---|---|
| 双电控 = 记忆元件 | 线圈瞬时励磁即换向,断电后阀芯保持位置(无弹簧复位) | 按钮必须点动,不能自锁;状态不能用 DO 表示 |
| 线圈是脉冲工况 | 一般 0.1 s 级即可可靠换向;长期带电温升大、易烧 | 单次励磁 0.2~0.5 s,任何情况下不得长期 ON |
| 两线圈互斥 | 同时得电 → 阀芯卡死 / 两线圈短路 / 烧保险 / 烧 DO | 硬件 + PLC + HMI 三重互锁,缺一不可 |
| 无中间位 | 只有"开/关"两个稳定态(不同于三位五通的中封/中泄) | 界面只允许两个状态,不要做"半开" |
顺带确认:若现场实际是**单电控(弹簧复位)**二位五通,则只有一个 DO,设计完全相反(保持型输出、断电气缸自动复位),不要套用本文。
2. 六个常见错法(会直接烧东西)
| 错法 | 后果 |
|---|---|
| 用「切换型/自锁」按钮直接写 DO | 按一下线圈长期带电 → 发热烧线圈;两个都自锁 → 双线圈同时得电 |
| 两个都点动,但没有互锁 | 多点触控、两人同时按、屏幕粘滞 → 双线圈同时 ON |
| 指示灯取 DO 地址 | 脉冲只有 0.3 s,灯闪一下就灭,看不到阀位 |
| 把 DO=0 当成"阀已关" | 阀是记忆元件,脉冲过后 DO 必为 0,但阀可能仍是开 |
| HMI 做脉冲、PLC 不做边沿/脉宽 | HMI 卡死、通讯中断时 DO 状态不确定;重启后可能残留 ON |
| 急停指望"断阀电就复位" | 双电控断电保持,气缸不动;需另行设计泄压/复位 |
3. 三种按钮方案(先选型,再画)
| 方案 | 元件 | 适用 | 优点 | 缺点 |
|---|---|---|---|---|
| A 双点动按钮(推荐) | 2 个 位状态设置(复归型)+ 2 个状态灯 |
已有 2 个 DO、要求分别点动;操作台式界面 | 最直观、和现有 DO 一一对应、易排故 | 占地方;必须靠互锁兜底 |
| B 单键翻转 | 1 个 功能键 + 宏/PLC 取反 |
管路图上的小阀、密集布置 | 省空间 | 操作员要看清状态才敢按;误按即反向动作 |
| C 二位旋钮/选择开关 | 1 个 多状态开关(2 位:开/关) |
主管路阀、工艺关键阀 | 语义最清晰,天然不会"两个都按" | 占元件;自动模式下不好用 |
本工程建议:主管路/关键阀用 C,普通阀用 A;B 只用于画面极其拥挤的示意阀。以下按 A 方案 展开(C 方案仅把 2 个按钮换成 1 个多状态开关,PLC 侧逻辑相同)。
4. A 方案:EB Pro 元件做法
4.1 地址(建议值,落地前对一遍 地址表.md 并与 PLC 工程师确认)
| 信号 | 建议地址 | 方向 | 说明 |
|---|---|---|---|
| 开阀命令 | LB-400 |
HMI → PLC | 复归型,按下 ON、松开 OFF |
| 关阀命令 | LB-401 |
HMI → PLC | 复归型 |
| 阀位 = 开 | LB-402 |
PLC → HMI | PLC 记忆位,供状态灯 |
| 阀位 = 关 | LB-403 |
PLC → HMI | PLC 记忆位 |
| 阀故障 | LB-404 |
PLC → HMI | 双线圈/超时/通讯异常 |
| 允许操作 | LB-405 |
PLC → HMI | 手动模式、无报警、通讯正常 |
每只阀占 8 位:阀 1 =
LB-400~407,阀 2 =LB-408~415,依次类推。 不要直接写 PLC 的Q区:HMI 写M/DB命令位,由 PLC 逻辑驱动Q,否则手动/自动/安全逻辑会互相打架。
4.2 开阀按钮
元件 → 按钮/开关 → 位状态设置,放在 (860, 420),尺寸160×64。- 「一般」页:写入地址 =
LB-400,状态 =ON,勾选「复归型」。- 效果:按住 = ON,松手 = 自动回 OFF → 这就是"点动手柄"。
- 不要勾「切换」;若用
位状态切换开关,把输出类型选 「复归」。
- 「图形」页:未按下/按下各一张图(可用
pic/machine/valve.png调色),文字开阀;配色 开 = 绿。 - 「安全」页:见 4.4 / 4.5。
可选:若 PLC 侧实在不改(不做脉宽整形),改用
位状态切换开关的**「触发」**类型,触发时间0.3 s,由 HMI 自己产生脉宽。但这属于"把安全逻辑放在屏里",仅在无法改 PLC 时使用,且必须保留 PLC 侧互锁。
4.3 关阀按钮
同 4.2,写入地址 LB-401,位置 (1060, 420),文字 关阀,配色 关 = 灰/红。
4.4 互锁(HMI 侧,只防误触,不是安全措施)
属性 →「安全」→ 勾「互锁」:
| 元件 | 互锁条件 1 | 互锁条件 2 |
|---|---|---|
| 开阀按钮 | LB-401(关阀命令)= ON |
LB-405(允许操作)= OFF |
| 关阀按钮 | LB-400(开阀命令)= ON |
LB-405(允许操作)= OFF |
条件成立时按钮不可操作(灰显/无反应)。互锁最多 2 个条件,正好够用。
⚠️ HMI 互锁挡不住电容屏多点触控:两根手指能同时按两个按钮。所以 PLC 侧最后一道互锁(
Q_A := A AND NOT Q_B)不可省。
4.5 权限
按 权限分配表.md:安全 → 操作类别 只勾 A(工程师)/ B(管理员)/ D(制丸),无权限时隐藏或点了弹 11 号窗。
自动运行中禁止手动点动的,把 LB-405(允许操作)串进互锁条件 2,由 PLC 按"手动/自动"模式给。
4.6 状态显示(关键:不要读 DO)
元件 → 指示灯 → 位状态指示灯,读LB-402/LB-403,尺寸24×24,放在两个按钮正上方。- 管路图上的阀符号用 图片切换(
位状态切换开关只做显示、不写地址)或 多状态指示灯:- 状态 0(
LB-403=1)→pic/machine/分料阀.png/阀门开启.png的"关"位图; - 状态 1(
LB-402=1)→ "开"位图。
- 状态 0(
- 需要"动作中"效果时,用
LB-405或 PLC 的脉冲中位做闪烁,不要用 DO 地址。
4.7 状态与颜色约定
| 状态 | 显示 | 颜色 |
|---|---|---|
| 开到位 | 实心圆 + 文字"开" | 绿 #00A000 |
| 关到位 | 空心/实心 + 文字"关" | 灰 #808080(或红,按现场习惯) |
| 动作中(脉冲期) | 黄闪 + "动作中" | 黄 #FFC000 |
| 故障 | 红闪 + 报警条 | 红 #FF0000 |
| 无权限 / 不允许操作 | 灰 + 锁图标 | 灰 #C0C0C0 |
| 通讯断 | 灰 + "—" | 灰 |
4.8 布局坐标(1920×1080,内容区 x1101900 / y901000)
| 元件 | 位置(x,y) | 尺寸 |
|---|---|---|
| 开阀按钮 | 860, 420 | 160×64 |
| 关阀按钮 | 1060, 420 | 160×64 |
| 阀符号 | 960, 400 | 80×80(放在两按钮中间上方) |
| 开/关状态灯 | 900, 380 / 1100, 380 | 24×24 |
| 阀名标签"XV-01" | 940, 340 | — |
5. PLC 侧必须做的(S7-1500,不能省)
HMI 只负责发"命令脉冲",下面 5 件事全部在 PLC 完成:
// ===================== 阀 V1 双电控二位五通 =====================
// HMI 写入的点动命令(复归型按钮,松手即 0)
// "HMI_DB".V1_OpenCmd / "HMI_DB".V1_CloseCmd
// 1) 脉冲整形:0.3 s 定长(按阀样本最小励磁时间,一般 0.1~0.5 s)
"TP_Open" (IN := "HMI_DB".V1_OpenCmd, PT := T#300ms);
"TP_Close"(IN := "HMI_DB".V1_CloseCmd, PT := T#300ms);
// 2) 死区:一侧刚失电后 150 ms 内不许另一侧动作(TOF 关断延时)
"TOF_DeadA"(IN := "V1_CoilA", PT := T#150ms); // A 输出期间 + 结束后 150ms 内为 1
"TOF_DeadB"(IN := "V1_CoilB", PT := T#150ms);
// 3) 最终输出(最后一道硬互锁:两线圈永不同时为 1)
"V1_CoilA" := "TP_Open".Q AND NOT "TOF_DeadB".Q AND NOT "V1_Fault";
"V1_CoilB" := "TP_Close".Q AND NOT "TOF_DeadA".Q AND NOT "V1_Fault";
// 4) 阀位记忆(给 HMI 显示,掉电保持用 M 区或 DB + 保持属性)
IF "V1_CoilA" THEN "V1_OpenMem" := TRUE; "V1_CloseMem" := FALSE; END_IF;
IF "V1_CoilB" THEN "V1_OpenMem" := FALSE; "V1_CloseMem" := TRUE; END_IF;
// 5) 诊断:双线圈同时输出 / 单线圈超时
"V1_Fault" := ("V1_CoilA" AND "V1_CoilB") OR "TON_Over".Q;
"TON_Over" (IN := "V1_CoilA" OR "V1_CoilB", PT := T#3s); // 超 3 s 判定异常
// 6) 输出到实际 DO
"Q_ValveA" := "V1_CoilA";
"Q_ValveB" := "V1_CoilB";
要点
- 脉宽不要给 HMI:屏死机、通讯中断、宏跑飞都会让脉宽失控;PLC 的
TP是确定性的。 - 互锁放最后一级:所有条件算完后,
Q_A := … AND NOT Q_B,这是唯一能保证"两线圈不同时"的写法。 - 超时保护必须有:任何原因导致线圈连续 ON 超过 3 s → 强制断开 + 报警(否则线圈烧毁)。
- 阀位反馈优先级:有气缸磁性开关 → 用真实到位信号做
LB-402/403;没有 → 用命令记忆位,并在 HMI 上把文字写成"命令:开/关",不要写"到位"。
6. 三种工况怎么处理
| 工况 | 处理 |
|---|---|
| 手动 / 自动 | 自动运行时 LB-405=0 → HMI 按钮互锁屏蔽;自动流程由 PLC 直接驱动 V1_CoilA/B 脉冲(同一套 TP 逻辑) |
| 通讯中断 / HMI 断电 | 脉冲已结束 → DO 必为 0,安全;HMI 恢复后状态灯读 PLC 记忆位,自动对齐。这就是"不该由 HMI 保持 DO"的原因 |
| 急停 / 断电 | 双电控保持阀位,气缸不回。HMI 必须提示"阀位保持,需手动复位";工艺要求复位时,需在气路上加泄放/中泄阀或用单电控弹簧复位阀(属硬件方案,屏解决不了) |
7. 测试用例(验收必做)
| # | 操作 | 预期 |
|---|---|---|
| 1 | 点"开阀" | 仅 A 线圈 0.3 s,阀位变"开",B 无输出 |
| 2 | 连点"开阀" 10 次 | 每次单脉冲,不叠加、不延长 |
| 3 | 开状态下点"关阀" | A 先断,≥150 ms 后 B 脉冲,中间无重叠 |
| 4 | 两指同时按两个按钮 | PLC 只认一个(或都屏蔽),绝不双线圈 |
| 5 | 点住按钮不放 5 s | 3 s 超时报警并自动断开 |
| 6 | 拔网线 / HMI 断电重启 | DO=0;恢复后状态灯与 PLC 一致 |
| 7 | 急停 | 阀位保持,HMI 提示"需手动复位" |
| 8 | 无权限账号登录 | 按钮隐藏/灰显,点击无动作(或弹 11 号窗) |
8. 落地清单
- 确认阀型号:双电控 / 线圈电压 / 最小励磁时间 / 是否带手动应急按钮
- 确认 2 个 DO 类型:晶体管(漏型/源型)还是继电器;DC 线圈加续流二极管
- 确认地址:
LB-400~405是否与 PLC 现有 M/DB 冲突 → 回填地址表.md - PLC 侧补齐:
TP脉宽、TOF死区、AND NOT最终互锁、超时诊断 - HMI 侧:复归型按钮 ×2、互锁条件、权限、状态灯读记忆位
- 按第 7 章 8 条逐项测试并留记录
- 更新
开发主文件.md变更记录
9. 待确认(问 PLC / 工艺)
- 阀的最小励磁时间是多少?决定
TP的PT(0.3 s 只是常用经验值)。 - 两线圈是否共阴极/共阳极?DO 是源型还是漏型?决定接线与公共端。
- 气缸有无磁性开关?有则做"到位"显示,无则只能显示"命令状态"。
- 自动流程里是否也点动这两只阀?若是,
LB-405的"手动/自动"条件必须接上。 - 急停后工艺是否要求阀门复位?要求则需改硬件(单电控或加泄放阀)。