主题
触点指令
LD — 取
LDI — 取反
| 指令 | 名称 | 功能 |
|---|---|---|
| LD | 取 | 常开触点逻辑运算开始 |
| LDI | 取反 | 常闭触点逻辑运算开始 |
对象软元件:X、Y、M、T、C、S、D□.b(KnX/KnM 这类位组合不能当触点,只能当字操作数,见文末「三种容易写错的操作数写法」)
LD 指令用于左母线开始的常开触点,或接点回路块开始的常开触点。将当前内容保存,把取来的接点状态存入累积缓存器。LDI 为常闭触点,逻辑取反。
LD X0 ; 载入 X0 常开触点
AND X1
OUT Y1
LDI X0 ; 载入 X0 常闭触点
AND X1
OUT Y2LP3U 变址:LD X0V0 — 用 V0 值偏移 X 的编号 LP3U 位指定:LD D0.0、LD D8511.F — 读取字元件的指定位
注意:D□.b 仅 LP3U 支持,且不能使用 V/Z 变址修饰。特殊辅助继电器(M8000+)和 32 位计数器(C200+)不能使用变址修饰。
LDP — 上升沿
LDF — 下降沿取
| 指令 | 名称 | 功能 |
|---|---|---|
| LDP | 上升沿取 | 仅在上升沿瞬间导通一个扫描周期 |
| LDF | 下降沿取 | 仅在下降沿瞬间导通一个扫描周期 |
对象软元件:X、Y、M、T、C、S、D□.b
LDP 仅在指定位元件从 OFF→ON 时导通一个扫描周期;LDF 仅在 ON→OFF 时导通。
LDP X0 ; X0 上升沿时导通一个周期
OUT Y0 ; Y0 输出一个脉冲LP3U 位指定:LDP D0.0 — 监视 D0 第 0 位的上升沿
AND — 串联常开
ANI — 串联常闭
| 指令 | 名称 | 功能 |
|---|---|---|
| AND | 与 | 常开触点串联连接 |
| ANI | 与非 | 常闭触点串联连接 |
对象软元件:X、Y、M、T、C、S、D□.b(KnX/KnM 这类位组合不能当触点,只能当字操作数,见文末「三种容易写错的操作数写法」)
AND 将指定触点状态与之前的逻辑结果作"与"运算。ANI 为常闭触点的"与"运算。
LD X0
AND X1 ; 串联 X1 常开
ANI X2 ; 串联 X2 常闭
OUT Y0LP3U 变址:AND X0V0、LP3U 位指定:AND D0.0
ANDP / ANDF — 串联上升沿 / 串联下降沿
| 指令 | 名称 | 功能 |
|---|---|---|
| ANDP | 串联上升沿 | 串联触点仅在上升沿导通 |
| ANDF | 串联下降沿 | 串联触点仅在下降沿导通 |
对象软元件:X、Y、M、T、C、S、D□.b
LD X0 ; 前提条件成立
ANDP X1 ; 再看 X1:只有它从 OFF→ON 的那一个周期接通
OUT Y0
LD X0
ANDF X2 ; 只有 X2 从 ON→OFF 的那一个周期接通
OUT Y1ANDP/ANDF 用在"条件一直成立、但只想在对方变化的那一瞬间做一次"的场合, 比 LDP 多了一个前提条件串联,省掉一个中间继电器。
OR — 并联常开
ORI — 并联常闭
| 指令 | 名称 | 功能 |
|---|---|---|
| OR | 或 | 常开触点并联连接 |
| ORI | 或非 | 常闭触点并联连接 |
对象软元件:X、Y、M、T、C、S、D□.b(KnX/KnM 这类位组合不能当触点,只能当字操作数,见文末「三种容易写错的操作数写法」)
OR 将指定触点状态与之前的逻辑结果作"或"运算。ORI 为常闭触点的"或"运算。
LD X0
OR X1 ; 并联 X1 常开
ORI X2 ; 并联 X2 常闭
OUT Y0LP3U 变址:OR X0V0、LP3U 位指定:OR D0.0
ORP / ORF — 并联上升沿 / 并联下降沿
| 指令 | 名称 | 功能 |
|---|---|---|
| ORP | 并联上升沿 | 并联触点仅在上升沿导通 |
| ORF | 并联下降沿 | 并联触点仅在下降沿导通 |
对象软元件:X、Y、M、T、C、S、D□.b
LD X0
ORP X1 ; X1 的上升沿这一瞬间,这条支路导通一个周期
OUT Y0三种容易写错的操作数写法
KnX / KnM:把一串位当成一个数——但只能当"字",不能当触点
K4M0 表示"从 M0 开始的 16 个位"(n 表示组数,每组 4 个位;K1X0 是 X0-X3)。 它的用途是批量读写,所以只能出现在要"字"的地方:
LD M8000
MOV K4M0 D100 ; 把 M0-M15 这 16 个标志位一次读进 D100不能拿它当触点
LD K4M0 编译时报:
步号0(第1行): LD 的操作数必须是位软元件要按位判断就写具体的 M、X;要整批搬就用 MOV/DMOV/BMOV。
D□.b:把一个数据寄存器当 16 个标志位用
触点、线圈两个方向都可以:
LD D100.3 ; 读 D100 的第 3 位(0~15)
OUT Y0
LD X0
OUT D100.3 ; 写 D100 的第 3 位现场用它把"一堆报警位"塞进少数几个 D 里传给上位机和云,比占用几十个 M 省地址。 D□.b 的位号只到 15,写 D100.16 会报错。
变址 V/Z:只有 8 个,别按十进制区去编
LD X0V0 ; X 的编号加上 V0 里的值
OUT Y0
LD M8000
MOV D100Z0 D200 ; 源地址 = D(100 + Z0)变址寄存器只有 V0-V7、Z0-Z7(写 V8、Z9 越界)。 特殊辅助继电器(M8000 以上)和 32 位计数器(C200 以上)不能加变址修饰。