Files
weinviews-unitouch/设计文档/双电控电磁阀按钮设计.md
T
admin ebd6f1d585 文档:双电控阀按钮设计 + net-apply IP 保护 + 在线模拟排查
- 新增 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*
2026-10-27 10:26:58 +08:00

12 KiB
Raw Blame History

双电控二位五通电磁阀 · 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 开阀按钮

  1. 元件 → 按钮/开关 → 位状态设置,放在 (860, 420),尺寸 160×64。
  2. 「一般」页:写入地址 = LB-400,状态 = ON,勾选「复归型」。
    • 效果:按住 = ON,松手 = 自动回 OFF → 这就是"点动手柄"。
    • 不要勾「切换」;若用 位状态切换开关,把输出类型选 「复归」。
  3. 「图形」页:未按下/按下各一张图(可用 pic/machine/valve.png 调色),文字 开阀;配色 开 = 绿。
  4. 「安全」页:见 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)

  1. 元件 → 指示灯 → 位状态指示灯,读 LB-402 / LB-403,尺寸 24×24,放在两个按钮正上方。
  2. 管路图上的阀符号用 图片切换(位状态切换开关 只做显示、不写地址)或 多状态指示灯:
    • 状态 0(LB-403=1)→ pic/machine/分料阀.png / 阀门开启.png 的"关"位图;
    • 状态 1(LB-402=1)→ "开"位图。
  3. 需要"动作中"效果时,用 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 / 工艺)

  1. 阀的最小励磁时间是多少?决定 TP 的 PT(0.3 s 只是常用经验值)。
  2. 两线圈是否共阴极/共阳极?DO 是源型还是漏型?决定接线与公共端。
  3. 气缸有无磁性开关?有则做"到位"显示,无则只能显示"命令状态"。
  4. 自动流程里是否也点动这两只阀?若是,LB-405 的"手动/自动"条件必须接上。
  5. 急停后工艺是否要求阀门复位?要求则需改硬件(单电控或加泄放阀)。