3. 位逻辑指令(上):LD、LDI、AND、ANI、OR、ORI、OUT、END指令详解与实例
各位同学,咱们今天开始啃PLC编程里最基础、也是最核心的一块——位逻辑指令。
说实话,我刚开始学PLC那会儿,觉得这玩意儿不就是开关嘛,有啥好学的?后来在产线上被一个“触点接反”的故障折腾了整整一个下午,才明白:越是基础的指令,越要把它吃透。你想想看,一个复杂的自动化系统,说白了就是成千上万个“通”和“断”的组合。
好,咱们今天先讲上半部分。这8条指令,你只要搞懂了,梯形图的基本功就算打牢了。
3.1 LD 与 LDI:逻辑运算的起点
LD(Load),取指令。说白了就是“读取一个常开触点”。
LDI(Load Inverse),取反指令。就是“读取一个常闭触点”。
这两条指令,永远是梯形图里最左边的那一个触点。没有它们,后面的逻辑就无从谈起。
指令格式:
- LD X0 —— 读取X0的常开状态
- LDI X1 —— 读取X1的常闭状态
我在项目里见过不少新手,上来就把LD和LDI搞混。举个例子:你用一个急停按钮,通常接的是常闭触点。那么在程序里,你就得用LDI来读它。为什么?因为急停没按下时,它是通的,程序读到的是“1”;按下后断开了,程序读到的是“0”。用LDI,正好把逻辑反过来,保证安全。
我的个人习惯:凡是涉及安全信号的输入,比如急停、光幕、安全门,我统一用LDI。这样即使外部接线断了,程序也能检测到异常状态。这是血的教训换来的经验。
3.2 AND 与 ANI:串联的逻辑
AND(And),与指令。串联一个常开触点。
ANI(And Inverse),与反指令。串联一个常闭触点。
这两个指令,用在梯形图的中间位置。它们把前面的条件和后面的条件“串”在一起——必须全部满足,结果才为1。
| 指令 | 功能 | 示例 | 说明 |
|---|---|---|---|
| AND | 串联常开 | AND X2 | X2接通时,条件成立 |
| ANI | 串联常闭 | ANI X3 | X3断开时,条件成立 |
嗯,这里要注意一个坑:AND和ANI只能串联一个触点。你不能写成“AND X0 X1”,那是错的。要串联两个触点,就得写两行:AND X0 然后 AND X1。
我曾经在一个包装机的项目里,就是因为少写了一个AND,导致两个传感器信号没同时满足,气缸提前动作,直接把产品顶飞了。从那以后,我写串联逻辑时,都会在纸上先画一遍梯形图草图。
3.3 OR 与 ORI:并联的逻辑
OR(Or),或指令。并联一个常开触点。
ORI(Or Inverse),或反指令。并联一个常闭触点。
并联的意思就是:只要有一个条件满足,结果就为1。
典型应用场景:
- 一个电机,可以用“启动按钮”启动,也可以用“触摸屏远程启动”
- 一个报警灯,温度过高要亮,压力过低也要亮
OR和ORI的用法和AND类似,只不过它们是“并”在现有逻辑上的。你想想看,如果两个启动按钮并联,按任何一个都能启动电机,这就是OR的典型用法。
我曾经踩过的坑:OR指令的优先级问题。在梯形图里,OR是“就近并联”的。如果你想把一个条件并联到很远的一个触点上去,就得用ORB指令(咱们后面会讲)。初学者最容易犯的错误就是:以为OR能随便并联到任意位置。其实不是的,它只能并联到当前逻辑块的起始位置。
3.4 OUT:把结果输出去
OUT(Out),输出指令。把运算结果赋值给一个软元件。
可以输出的对象包括:
- Y(输出继电器)—— 控制外部设备,比如接触器、电磁阀
- M(辅助继电器)—— 内部中间变量
- S(状态继电器)—— 步进控制用
- T(定时器)、C(计数器)—— 但要注意格式
OUT指令的规则:
- OUT必须放在梯形图的最右边
- 一个OUT只能驱动一个软元件
- OUT可以连续使用(并联输出)
我个人的习惯是:一个OUT只控制一个物理动作。比如控制一个电磁阀,我就用一个OUT Y0。不要试图在一个OUT后面接一堆复杂的逻辑,那样调试的时候你会疯掉的。
3.5 END:程序的终点站
END(End),结束指令。告诉PLC:程序到这里就完了,后面的不用管了。
这个指令看起来简单,但它的作用非常大:
- PLC扫描到END,就会停止本次扫描,刷新输出
- 如果没有END,PLC会一直扫描到程序存储器的末尾
- 每个程序必须有一个END,而且只能有一个
我曾经犯过的错:有一次写程序,忘了写END。结果PLC一直在空跑,输出死活不刷新。我查了整整两个小时,最后发现是END漏了。从那以后,我写程序的第一个动作就是:先写END,再写前面的逻辑。
3.6 综合实例:一个简单的电机启停控制
咱们把今天学的指令串起来,写一个最经典的电机启停程序。
控制要求:
- 按下启动按钮(X0),电机(Y0)启动并自锁
- 按下停止按钮(X1),电机停止
- 过载保护(X2)动作时,电机停止
梯形图对应的指令表:
0 LD X0 // 启动按钮(常开)
1 OR Y0 // 自锁触点(并联)
2 ANI X1 // 停止按钮(常闭,串联)
3 ANI X2 // 过载保护(常闭,串联)
4 OUT Y0 // 输出到电机接触器
5 END // 程序结束
这个程序,你仔细看:
- LD X0 是读取启动信号
- OR Y0 是自锁,让电机启动后保持运行
- ANI X1 和 ANI X2 是停止条件,任何一个断开,输出就断
- OUT Y0 把结果送给电机
- END 结束
我的建议:初学者一定要亲手在GX Works软件上敲一遍这个程序,然后下载到PLC里跑一跑。看着电机随着你的按钮动作而启停,那种成就感,比你看十遍书都强。
好了,今天这8条指令,咱们就讲到这里。下一节课,咱们接着讲位逻辑指令的下半部分——ANB、ORB、MPS、MRD、MPP这些“块操作”指令。那些才是真正体现编程水平的地方。
记住:基础不牢,地动山摇。把LD、LDI、AND、ANI、OR、ORI、OUT、END这8条指令练熟了,后面的路就好走了。