工控小知识∣西门子位逻辑指令

前言
位逻辑指令是PLC编程的基石。它们处理二进制信号,即只有1(TRUE)或0(FALSE)两种状态的信号。这些信号可以来自物理输入(如按钮和传感器)、其他PLC操作产生的标志位或存储器位。
在西门子TIA Portal中,位逻辑指令主要在梯形图(LAD)和功能块图(FBD)编程语言中使用。本文将介绍最基本的位逻辑指令及其工作原理。
位逻辑指令具有二进制特性,只能呈现两种状态。这就像只有开/关两种状态的按钮。在工业领域,1和0这两个数字被称为“位”。在触点和线圈中,1代表真值、通电或激活状态;0则表示假值、未激活或未通电状态。每个位逻辑指令都有指定的地址标识。工业应用中常见的位逻辑包括:电机启停控制、设备运行状态监测、传感器状态监控、电磁阀控制指令、按钮逻辑操作、触发式逻辑功能模块以及逻辑块等。
位逻辑的寻址
在位逻辑指令中始终使用“BOOL数据类型”。布尔值的大小为1位。使用foolwing内存区域进行位逻辑运算。
▶ I 输入位 示例I0.0、I1.0等
▶ M 存储器位 示例M0.0、M1.0等
▶ Q 输出位 示例O0.0、O1.0等
西门子PLC常开触点
在正常情况下,常开触点视为开路触点,没有电流流向同一网络中的下一个指令或触点。如果常开触点设置为1,则它将通电并视为闭合触点,因此电流开始通过它并流向下一个指令。
在示例1中,常开触点的地址是 I0.0,输出线圈的地址是Q0.0。正常情况下,Q0.0为0(false),因为没有电流流经I0.0。如果将I0.0置为1(true),则输出线圈被置为1。
在示例2中:
▶ 如果I0.0、I0.1、I0.2为0,则输出Q0.2也为0。这是因
▶ 如果I0.0、I0.1、I0.2为0,则输出Q0.2也为0。这是因为没有电流流到Q0.2。
▶ 如果I0.0为1,而I0.1和I0.2为0,则输出Q0.0为0
▶ 如果I0.0和I0.1为1且I0.2为0,则输出Q0.0为1
▶ 如果I0.2和I0.1为1而I0.0为0,则输出Q0.0为1。这是因为I0.1和I0.0处于并行状态,起到或门的作用。
▶ 如果I0.2、I0.1和I0.0为1,则输出Q0.0为1。
西门子PLC常闭触点
在正常情况下,常闭触点将视为闭合触点,且电流流经该触点。如果常闭触点设置为1,则其将视为开路触点,因此没有电流流经该触点。
在示例1中,常闭触点的地址是I0.0,输出线圈的地址为Q0.0。I0.0为0(False)时,Q0.0值为1(Ture),因为此时电流会流经常闭触点I0.0。若将I0.0设为1(Ture),则输出线圈的地址Q0.0会被置为0。
在示例2中,将使用三个常闭触点。
▶ 如果I0.0、I0.1、I0.2为0,则输出Q0.2为1。
▶ 如果I0.0为1,而I0.1和I0.2设置为0,则输出Q0.2为1
▶ 如果I0.0和I0.1为1且I0.2为0,则输出Q0.2为0
▶ 如果I0.2和I0.1为1,而I0.0为0,则输出Q0.2为0。这是因为I0.1和I0.0处于并行状态,起到或门的作用。
▶ 如果I0.2、I0.1和I0.0设置为1,则输出Q0.2设置为0。
西门子PLC输出线圈
输出线圈始终用于输出操作。其状态取决于前一逻辑状态。在以下示例中,输出位的状态会转移到存储位。
西门子中线输出
--(#)---,中线输出元件用于保存前序分支元件的逻辑结果。中线输出作为中间分配元件,可将电流流状态保存至指定地址。该元件可与其他触点串联使用,或像普通触点一样插入电路。需要注意的是,中线输出元件不得直接连接到电源轨、分支连接之后或分支末端。
在示例1中,有两个常开触点(I0.0和I0.2)。中线输出地址为Q0.1。中线状态取决于前级分支元件的状态。当I0.1或I0.2中的任意一个被设置为1时,中线输出也会被置为1。
在示例2中,中线输出取决于I0.1、I0.2(前分支元件),但不取决于I0.3,但输出线圈Q0.2取决于每个分支元件。
西门子逻辑取反
-|NOT|-对前序分支元件的位进行反向输出,其功能与非门相同。-|NOT|-逻辑运算结果的反转不会直接影响存储区域。以下示例说明该原理
在示例1中,只有当I0.1为0时,输出才被设置为1,因为-|NOT|-反转了前分支元素的位。
在示例2中,中间线输出被插入到I0.1之后,用于存储I0.1的状态。当I0.1设置为1时,通过|NOT|操作反转I0.1的位。当I0.1、I0.3或I0.4中的任意一个被设置为1时,Q0.1会被置为1。
西门子PLC置位、复位触发器模块
SR(置位、复位触发器)用于置位或复位指定地址的位。当输入信号S为“1”且R输入为“0”时,位将被置为指定地址;若S为“1”且R为“0”,则触发器复位。若两个输入均为“1”,则执行顺序优先。SR触发器会优先执行指定地址的置位指令,随后执行复位指令,确保该地址在后续程序扫描中保持复位状态。注意:S(置位)和R(复位)指令仅在输入为“1”时执行。当输入为“0”时,这些指令无效且地址保持不变。该功能适用于需要对地址位进行置位和复位操作的场景。
在上面的示例中,置位和复位地址为I1.0和I1.1。
▶ 如果I1.0和I1.1为0,则不会发生任何变更。
▶ 如果I1.0为1且I1.1为0,则设置M1.0(1),并且输出Q1.0为1
▶ 如果I1.0为0且I1.1为1,则M1.0复位(0),并且输出Q1.0为0
▶ 如果I1.0和I1.1为1,则由于顺序,复位指令占主导地位。M1.0被复位且Q1.0为“0”。
西门子PLC复位、置位触发器模块
RS(复位、置位触发器)的工作原理如下:当R输入端信号为“1”而S输入端为“0”时,触发器将复位至指定地址;若R输入端为“0”而S输入端为“1”,则触发器被置位。当两个输入端信号均为“1”时,其操作顺序具有优先权。RS触发器会优先执行指定地址的复位指令,随后再执行置位指令,从而确保该地址在后续程序扫描过程中始终保持置位状态。
在上面的示例中,重置和设置地址为I0.1和I0.2。
▶ 如果I0.1和I0.2为0,则不会发生任何变化。
▶ 如果I0.1为1且I0.2为0,则M0.1复位(0),并且输出Q1.0为0
▶ 如果I0.1为0且I0.2为1,则M0.1被设置为(1),并且输出Q1.0为1
▶ 如果I0.1和I0.2为1,则由于顺序,复位指令占主导地位。M1.0被复位,Q1.0为“1”。
西门子PLC置位、复位线圈
只有在前序指令为“1”(电流流向线圈)时,才执行设置和重置线圈。两个线圈均为输出型线圈。Step7软件中不允许将两个线圈在同一行中或串联使用。
如果I0.1被设置为1,则Q0.0被复位
如果I0.2被设置为1,则Q0.0被置位
2025年11月


