You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CX-Programmer中用梯形逻辑实现PLC三速度输入互斥功能?

解决HMI多速度选择的单选互斥问题

HMI端直接实现单选互斥

  • 把三个Speed按钮放进同一个单选组(Radio Group):绝大多数HMI组态工具(WinCC、TIA Portal、iFix这类)都自带单选组控件,把Speed1、Speed2、Speed3加进去,默认就会自动实现“选一个就取消另外两个”的效果,这是最简单的方案。
  • 要是没法用单选组,就手动写按钮点击脚本:
    • 拿TIA Portal举例,给Speed1加点击事件:
      ' 点Speed1时,强制取消另外两个的选中状态
      HMI_Speed2.Checked = False
      HMI_Speed3.Checked = False
      HMI_Speed1.Checked = True
      ' 同步把选择结果写到PLC变量里
      SetTag "PLC_Speed_Select", 1
      
    • Speed2和Speed3的脚本照葫芦画瓢,把对应的选中状态和变量值改了就行(比如Speed2对应2,Speed3对应3)。

PLC层加双重保障(防HMI异常)

  • 写一段单选判断逻辑,就算HMI端出问题传了多选中信号,PLC也能自动修正成唯一选择:
    // 假设Speed1、Speed2、Speed3是HMI传过来的BOOL变量
    // 先初始化最终选中的速度编号
    L 0
    T "Final_Speed_Select"
    
    // 检测Speed1选中的情况
    A "Speed1"
    JNB _001
    L 1
    T "Final_Speed_Select"
    // 强制取消另外两个信号
    SET
    R "Speed2"
    R "Speed3"
    _001: NOP 0
    
    // 检测Speed2选中的情况
    A "Speed2"
    JNB _002
    L 2
    T "Final_Speed_Select"
    SET
    R "Speed1"
    R "Speed3"
    _002: NOP 0
    
    // 检测Speed3选中的情况
    A "Speed3"
    JNB _003
    L 3
    T "Final_Speed_Select"
    SET
    R "Speed1"
    R "Speed2"
    _003: NOP 0
    
    // 后面的二进制输出逻辑只认Final_Speed_Select的值
    
  • 这样不仅能保证逻辑正确,还能把修正后的状态同步回HMI,让界面显示和实际PLC逻辑保持一致。

替换原错误系统的被动逻辑

  • 别再用“选多个就不执行输出”的被动处理了,改成主动阻止多选中:
    • 在HMI加个状态提示框,脚本实时判断三个按钮的选中状态,一旦发现多个选中,直接弹出提示并自动取消多余的选中项,用户体验更直观。

内容的提问来源于stack exchange,提问作者Jasper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 09:32:39