返回主站|会员中心|保存桌面

美国英特格中国区域服务商    

英特格半导体设备及材料

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 5个按钮,两个同时通报警怎么做?
新闻中心
5个按钮,两个同时通报警怎么做?
发布时间:2025-12-13        浏览次数:1        返回列表

要实现5 个按钮中任意两个同时接通即触发报警的功能,核心是检测 5 个按钮输入信号的通断状态组合,判断是否存在≥2 个信号同时为 ON,再触发报警逻辑。下面以三菱 FX 系列 PLC西门子 S7-300/1200 PLC为例,提供具体的程序实现方案,同时说明通用逻辑思路。

一、通用控制逻辑(适用于所有 PLC)

  1. 信号采集:将 5 个按钮的常开触点分别接入 PLC 的 5 个输入点(如 X0~X4),按钮按下时输入信号为 ON。

  2. 计数判断:统计 X0~X4 中为 ON 的信号数量,若数量≥2,则触发报警。

  3. 报警输出:报警信号可驱动指示灯(如 Y0)、蜂鸣器,同时可触发报警复位、故障记录等辅助逻辑。

二、三菱 FX 系列 PLC 实现方案(梯形图 / 指令表)

1. 硬件分配

硬件类型地址功能说明
输入(按钮)X0~X45 个按钮的信号输入
输出(报警)Y0报警指示灯 / 蜂鸣器
复位按钮X5报警手动复位

2. 程序实现(两种方法)

方法 1:使用加法指令统计 ON 的按钮数量(直观易懂)

plc

// 步骤1:将按钮信号转为数值(ON=1,OFF=0)
LD X0
MOV K1 D0
LD M8000
AND NOT X0
MOV K0 D0
LD X1
MOV K1 D1
LD M8000
AND NOT X1
MOV K0 D1
LD X2
MOV K1 D2
LD M8000
AND NOT X2
MOV K0 D2
LD X3
MOV K1 D3
LD M8000
AND NOT X3
MOV K0 D3
LD X4
MOV K1 D4
LD M8000
AND NOT X4
MOV K0 D4
// 步骤2:累加所有按钮的数值(D5为总数量)
LD M8000
MOV D0 D5
ADD D1 D5 D5
ADD D2 D5 D5
ADD D3 D5 D5
ADD D4 D5 D5
// 步骤3:判断数量≥2则触发报警
LD M8000
CMP D5 K2 M0  // D5≥2时M1=ON
LD M1
OUT Y0        // 触发报警输出
SET M10       // 报警锁存
// 步骤4:报警复位(X5按下复位)
LD X5
RST M10
LD M10
OUT Y0        // 锁存报警,复位后熄灭
方法 2:使用触点串联直接判断任意两按钮同时接通(节省寄存器)

该方法通过枚举所有两按钮组合的串联逻辑,实现报警触发,无需数值统计:

plc

// 枚举X0~X4中任意两按钮同时接通的情况
LD X0
AND X1
OR X0
AND X2
OR X0
AND X3
OR X0
AND X4
OR X1
AND X2
OR X1
AND X3
OR X1
AND X4
OR X2
AND X3
OR X2
AND X4
OR X3
AND X4
OUT Y0        // 任意两按钮同时接通,立即报警
SET M10       // 报警锁存

// 复位逻辑
LD X5
RST M10
LD M10
OUT Y0

三、西门子 S7-1200/300 PLC 实现方案(结构化编程)

1. 变量定义

plc

VAR
    Button_0: BOOL AT %I0.0;  // 按钮1
    Button_1: BOOL AT %I0.1;  // 按钮2
    Button_2: BOOL AT %I0.2;  // 按钮3
    Button_3: BOOL AT %I0.3;  // 按钮4
    Button_4: BOOL AT %I0.4;  // 按钮5
    Reset: BOOL AT %I0.5;     // 复位按钮
    Alarm_Out: BOOL AT %Q0.0; // 报警输出
    Alarm_Latch: BOOL;        // 报警锁存标志
    Button_Count: INT;        // 按钮接通数量
END_VAR

2. 程序实现(ST 语言)

st

// 统计按钮接通数量
Button_Count := 0;
IF Button_0 THEN Button_Count := Button_Count + 1; END_IF;
IF Button_1 THEN Button_Count := Button_Count + 1; END_IF;
IF Button_2 THEN Button_Count := Button_Count + 1; END_IF;
IF Button_3 THEN Button_Count := Button_Count + 1; END_IF;
IF Button_4 THEN Button_Count := Button_Count + 1; END_IF;

// 触发报警并锁存
IF Button_Count >= 2 THEN
    Alarm_Latch := TRUE;
END_IF;

// 报警复位
IF Reset THEN
    Alarm_Latch := FALSE;
END_IF;

// 报警输出
Alarm_Out := Alarm_Latch;

四、关键注意事项

  1. 报警锁存:建议增加锁存逻辑(如上述 M10/Alarm_Latch),避免按钮松开后报警立即消失,便于操作人员发现故障。

  2. 防抖动处理:若按钮存在机械抖动,可在输入信号后增加定时器滤波(如 TON 延时 10ms),避免误报警。

    plc

  3. // 三菱FX系列按钮防抖示例(X0滤波)
    LD X0
    TON T0 K1  // 延时100ms(K1=100ms)
    LD T0
    OUT M0     // M0为防抖后的X0信号
  4. 扩展功能:可增加报警记录(将报警时间、按钮组合存入数据块)、远程报警(通过 HMI 显示具体哪两个按钮同时接通)等功能。

总结

实现 5 个按钮任意两同时接通报警的核心是数量统计组合枚举,前者灵活(可扩展至更多按钮),后者直接(节省资源)。实际应用中可根据 PLC 型号和现场需求选择方案,同时需注意防抖和报警锁存,确保逻辑稳定可靠。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服