多个安全条件和状态信号生成最终的允许信号

多个安全条件和状态信号生成最终的允许信号

这种设计体现了安全优先的原则,任何条件不满足都会禁止上升动作,防止事故发生。

它其实是在手动构造一个“所有条件都满足”的位掩码,且便于后期增加/删除条件(只需修改掩码)。

过程分析

第二步:UpPermit 这个 WORD 变量的二进制构成

UpPermit 是一个 16位 的 WORD 类型变量,每位依次被赋值:

text

位号:  15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0
       ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ─── ───
值:     0   0   0   0   0   0   0   0   0   0  [5] [4] [3] [2] [1] [0]
                                                   ↑   ↑   ↑   ↑   ↑   ↑
                                                   │   │   │   │   │   │
                                                 整形 挂袋 回零 电机 模式 急停

假设所有条件都满足(全部为1):

text

UpPermit = 2#0000_0000_0011_1111  (二进制)
         = 16#003F                (十六进制)
         = 63                     (十进制)

第三步:按位与运算(AND W#16#3F

st

#DI_ElevU.strMotionCond.Dir.UpPermit AND W#16#3F

W#16#3F = 二进制 0000_0000_0011_1111低6位全为1,高位全为0

与运算规则:只有两个位都是1,结果才是1

text

       UpPermit  = 0000_0000_0011_1111
    AND  W#16#3F = 0000_0000_0011_1111
    ───────────────────────────────────
    运算结果      = 0000_0000_0011_1111

与运算的作用屏蔽掉高位的干扰,只关心低6位的状态。即使高10位有任何值,都会被清零,不影响判断。


第四步:比较是否等于 W#16#3F

st

运算结果 = W#16#3F

即比较:

text

0000_0000_0011_1111  =  0000_0000_0011_1111  →  TRUE (相等)

第五步:最终赋值

st

UpPermitOK := TRUE

完整数据流图

text

┌────────────────────────────────────────────────────────────────┐
│  条件1: 无急停      ───►  UpPermit.%X0 = 1                   │
│  条件2: 手动模式     ───►  UpPermit.%X1 = 1                   │
│  条件3: 电机正常     ───►  UpPermit.%X2 = 1                   │
│  条件4: 已回零       ───►  UpPermit.%X3 = 1    ──┐           │
│  条件5: 无挂袋位     ───►  UpPermit.%X4 = 1      │           │
│  条件6: 整形缩回     ───►  UpPermit.%X5 = 1    ──┘           │
│                                                              │
│                    UpPermit = 0000_0000_0011_1111            │
│                                          │                   │
│                                          ▼                   │
│                              AND W#16#3F                     │
│                                          │                   │
│                                          ▼                   │
│                              0000_0000_0011_1111            │
│                                          │                   │
│                                          ▼                   │
│                          比较是否 = W#16#3F ?                │
│                                          │                   │
│                                          ▼                   │
│                                    TRUE (相等)               │
│                                          │                   │
│                                          ▼                   │
│                               UpPermitOK := TRUE             │
└────────────────────────────────────────────────────────────────┘
电气

累加器模式-循环AND累加 / 连锁条件判断

2026-9-1 22:15:12

电气

威纶通cMT2105X忘记密码恢复出厂设置

2026-9-1 23:10:24