PLC的位逻辑运算指令_plc中的位怎么理解

yumo6662小时前技术文章1

PLC(可编程逻辑控制器)的位指令是针对单个二进制位(0 或 1)进行操作的基础指令,主要用于逻辑控制,是梯形图(LD)编程中最常用的指令类型。以下是 PLC 位指令的核心类别及常用指令:

常开

常闭

输出

置位

复位

上升沿

下降沿

| |

|/|

()-

SSET

RRESET

P

N

1.常开触点 NO 常闭信号 NC 线圈 ( ) :

| |(梯形图中)功能:当对应位为 “1”(接通)时,触点闭合,允许电流通过;为 “0”(断开)时,触点断开。

应用:用于检测输入信号(如按钮按下、传感器触发)或中间继电器的状态。

|/|(梯形图中)功能:与常开触点相反,当对应位为 “0” 时触点闭合,为 “1” 时断开。

应用:常用于安全联锁(如急停按钮未按下时闭合)或状态取反检测。

()-(梯形图中)功能:当线圈所在支路接通(逻辑为 “1”)时,线圈得电,对应位被置为 “1”;支路断开时,线圈失电,对应位为 “0”。

应用:控制输出设备(如接触器、指示灯)或中间继电器

启动按钮按下 I0.0=1

停止 =0

按下启动按钮 Q.0.0输出,Q0.0输出的时候进行了互锁,对应电路图就接触器的辅助触点常开NO

按下停止按钮输出断开。

2.置位指令 S 复位指令 R :

S 或 SET 功能:一旦执行,将指定的位强制置为 “1” 并保持,即使后续触发条件消失也不会复位(需复位指令清除)。

应用:用于需要 “保持” 状态的场景(如电机启动后持续运行)。

R 或 RESET 功能:将指定的位强制置为 “0” 并保持,用于清除置位指令的状态。

应用:与置位指令配合,实现 “启动 - 停止” 控制(如按下停止按钮复位电机运行状态)。


I0.0输入信号为1的时候,Q0.0强制输出为1,即使I0.0后续为0,Q0.0将一直为1

I0.1输入信号为1的时候,Q0.0复位输出为0

3.上升沿 P 下降沿 N :

|P| 或 EU(Edge Up)功能:仅在输入信号从 “0” 变为 “1” 的瞬间(上升沿)产生一个扫描周期的 “1” 信号,其余时间为 “0”。

应用:检测信号的上升沿(如按钮按下的瞬间触发一次动作)。

|N| 或 ED(Edge Down)

功能:仅在输入信号从 “1” 变为 “0” 的瞬间(下降沿)产生一个扫描周期的 “1” 信号。

应用:检测信号的下降沿(如按钮松开的瞬间触发动作)。


使用“扫描操作数的信号上升沿”指令,可以确定所指定操作数(I0.0)的信号状态是否从“0”变为“1”。该指令将比较 I0.0 的当前信号状态与上一次扫描的信号状态,上一次扫描的信号状态保存在边沿存储位(M500.0)中。如果该指令检测到逻辑运算结果 (RLO) 从“0”变为“1”,则说明出现了一个上升沿。

使用“扫描操作数的信号下降沿”指令,可以确定所指定操作数(I0.1)的信号状态是否从“1”变为“0”。该指令将比较 I0.1 的当前信号状态与上一次扫描的信号状态,上一次扫描的信号状态保存在边沿存储器位 M500.1 中。如果该指令检测到逻辑运算结果 (RLO) 从“1”变为“0”,则说明出现了一个下降沿。

I0.0为一个启动按钮,按下即Q0.0输出,松开保持

I0.01一个停止按钮,按下松开按钮时即Q0.0停止输出

相关文章

数据结构-位运算_数据结构按位查找

左移( << ):操作数的非0位左移n位,低位补0右移( >> ):操作数的非0位右移n位,高位补0无符号右移( >>> ):正数右移,高位用0补,负数右移,...

【C语言·015】逗号运算符的求值顺序与返回值规则

很多人第一次看到 , 都把它当“分隔符”:函数实参之间的逗号、初始化列表里的逗号……但在表达式里,, 还有另一个身份——逗号运算符。它既能强制求值顺序,又能控制返回值,是解决副作用与顺序问题的一把小刀...

C 语言指针全解析:从门牌号到内存黑魔法,一文带你彻底搞懂!

很多人一提到 C 语言指针 就皱眉:“指针是不是地址?”“数组和指针是不是一样的?”“为什么 * 有时候是解引用,有时候是乘法?”其实指针没那么神秘。只要把它拆开理解,就会发现它不过是一串数字,存的就...

C语言应用笔记:整数字节大小端翻转

在C语言中,实现大小端(Endian)翻转可以通过位操作或内存操作完成。以下提供两种常用方法:方法1:位运算(推荐)通过移位和掩码操作直接交换字节位置:// 16位翻转(安全版本) #define S...

C语言应用笔记:获取结构体成员偏移地址

在C语言中,获取结构体成员的偏移地址(即成员相对于结构体起始地址的字节偏移量)有两种常用方法:1. 使用标准库宏 offsetof(推荐)<stddef.h> 头文件提供了 offseto...