西门子PLC编程基本字逻辑指令‘与、或、异或’(科普篇)
引言
字基本逻辑指令前世今生: 汇编作为较为底层的编程语言,其最直观的操作寄存器使得它的执行效率非常的高,因此,汇编中会大量设置到逻辑操作,与(AND),或(OR),非(NOT)和异或(XOR),这几个指令,除了NOT外,都是双目操作,而NOT操作属于单目操作,通常完成一些对指定位的数据的赋值或者置零操作。
PLC编程里面也常会用到这几个指令
一、指令简介
1.1 AND:“与”运算
可以使用“与”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“与”运算,并在输出 OUT 中查询结果。执行该指令时,输入 IN1 的值的位 0 和输入 IN2 的值的位 0 进行“与”运算。结果存储在输出 OUT 的位 0 中。 对指定值的所有其它位都执行相同的逻辑运算。
只有该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。 如果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。
1.2 OR:“或”运算
可以使用“或”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“或”运算,并在输出 OUT 中查询结果。执行该指令后,将 IN1 输入的值的位 0 和 IN2 输入的值的位 0 进行“或”运算。 结果存储在输出 OUT 的位 0 中。 对指定变量的所有位都执行相同的逻辑运算
只要该逻辑运算中的两个位中至少有一个位的信号状态为“1”,结果位的信号状态就为“1”。 如果该逻辑运算的两个位的信号状态均为“0”,则对应的结果位将复位。
1.3 XOR:“异或”运算
可以使用“异或”运算指令将输入 IN1 的值和输入 IN2 的值按位进行“异或”运算,并在输出 OUT 中查询结果。执行该指令后,将 IN1 输入的值的位 0 和 IN2 输入的值的位 0 进行“异或”运算。 结果存储在输出 OUT 的位 0 中。 对指定值的所有其它位都执行相同的逻辑运算。
当该逻辑运算中的两个位中有一个位的信号状态为“1”时,结果位的信号状态为“1”。 如果该逻辑运算的两个位的信号状态均为“1”或“0”,则对应的结果位将复位。
二、指令应用
2.1 AND:“与”运算
只有该逻辑运算中的两个位的信号状态均为“1”时,结果位的信号状态才为“1”。 如果该逻辑运算的两个位中有一个位的信号状态为“0”,则对应的结果位将复位。
2.2 OR:“或”运算
只要该逻辑运算中的两个位中至少有一个位的信号状态为“1”,结果位的信号状态就为“1”。 如果该逻辑运算的两个位的信号状态均为“0”,则对应的结果位将复位。
2.3 XOR:“异或”运算
当该逻辑运算中的两个位中有一个位的信号状态为“1”时,结果位的信号状态为“1”。 如果该逻辑运算的两个位的信号状态均为“1”或“0”,则对应的结果位将复位。
三、指令参数说明
引脚参数说明
声明: 本作品纯属个人娱乐学习交流,严禁使用其作为商业用途,图片均来至于西门子仿真软件及选型手册、网络,如有版权纠纷请及时告知,谢谢!
西门子PLC STL编程教程(1)——位逻辑指令之 A 、AN、O、ON、X、XN
0和1是二进制运算的基础。在PLC当中,每一个触点或者线圈有且只有两种状态——导通和未导通,这样我们就可以把只有两种状态的触点或线圈看作一个位,当导通时=1,未导通时=0。
位逻辑指令是STL编程中最基础的指令,主要用于表达与处理位与位之间的逻辑关系。本章节主要介绍位逻辑指令中的如下几个指令:
大家都知道,触点分为常开触点和常闭触点,触点与触点之前的位置关系可以分为串联和并联。知道了这些,就会对下面的指令有更清楚的了解。
一、A——与运算指令
(1)指令格式:A<位>
解释:指令A后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 A I0.0、A Q0.0、A M0.0等。
(2)指令作用 :A其实是AND的缩写。A 检查寻址位的状态是否为"1",并将测试结果与 RLO 进行与运算。如A Q0.0就是检测Q0.0状态是否为1,然后与RLO进行与运算。这句话说白了,就是在电路中串联一个常开触点!
(3)应用举例:
A指令检查I0.0是否为1,一旦检查出I0.0=1,则将Q0.0 导通。
换一个方式去理解,就是在电路中串联一个I0.0常开触点,线圈Q0.0导不导通由I0.0决定。其实上面STL指令可以转换成LAD梯形图就非常容易理解,梯形图如下:
再举另外一个例子:
A指令检查I0.1是否为1,A指令检查M0.0是否为1,I0.1和M0.0作“与”运算,如果I0.1=1,M0.0=1,则与运算的结果ROL=1,则Q0.1导通;若两个点中有一个或都等于0,则ROL=0,Q0.1不导通。
换一个方式去理解,就是在电路中串联一个I0.1常开触点,再串联一个M0.0常开触点,线圈Q0.1导不导通由I0.1和M0.0的“与”运算结果决定。将STL语句转换成梯形图,如下:
二、AN——与非运算指令
(1)指令格式:AN<位>
解释:指令AN后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 AN I0.0、AN Q0.0、AN M0.0等。
(2)指令作用 :AN其实是AND NOT的缩写。AN 检查寻址位的状态是否为"0",并将测试结果与 RLO 进行与运算。如AN Q0.0就是检测Q0.0状态是否为0,然后与RLO进行与运算。这句话说白了,就是在电路中串联一个常闭触点!
(3)应用举例:
AN指令检查I0.2是否为0,一旦检查出I0.2=0,则将Q0.2导通。
换一个方式去理解,就是在电路中串联一个I0.2常闭触点,线圈Q0.2导不导通由I0.0决定。上面STL指令转换成梯形图如下:
再举另外一个例子:
AN指令检查I0.3是否为0,AN指令检查M0.1是否为0,I0.3和M0.1作“与”运算,如果I0.3=0,M0.0=0,则与运算的结果ROL=1,则Q0.3导通;若两个点中有一个或都等于1,则ROL=0,Q0.3不导通。
换一个方式去理解,就是在电路中串联一个I0.3常闭触点,再串联一个M0.1常闭触点,线圈Q0.3导不导通由I0.3和M0.1的“与”运算决定。将STL语句转换成梯形图,如下:
三、O——或运算
(1)指令格式:O<位>
解释:指令O后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 O I0.0、O Q0.0、O M0.0等。
(2)指令作用 :O其实是OR的缩写。O 检查寻址位的状态是否为"1",并将测试结果与 RLO 进行或运算。这句话说白了,就是在电路中并联一个常开触点!
(3)应用举例:
O指令检查I0.4是否为1,O指令检查M0.2是否为1,I0.4和M0.2作“或”运算,只要I0.4和M0.2至少一个为1,则或运算的结果ROL=1,则Q0.4导通。
换一个方式去理解,就是在电路中将I0.4常开触点与M0.2常开触点并联。将STL语句转换成梯形图,如下:
四、ON或非运算
(1)指令格式:ON<位>
解释:指令ON后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 ON I0.0、ON Q0.0、ON M0.0等。
(2)指令作用 :ON其实是OR NOT的缩写。ON 检查寻址位的状态是否为"0",并将测试结果与 RLO 进行或运算。这句话说白了,就是在电路中并联一个常闭触点!
(3)应用举例:
ON指令检查I0.5是否为0,ON指令检查M0.3是否为0,I0.5和M0.3作“或”运算,只要I0.5和M0.3至少一个为0,则或运算的结果ROL=1,则Q0.5导通。
换一个方式去理解,就是在电路中将I0.5常闭触点与M0.3常闭触点并联。将STL语句转换成梯形图,如下:
重点补充知识点:O 先与运算后或运算
先看下面的STL语句:
这里要先对A指令进行运算,然后才进行O指令的逻辑运算,这就有点像乘法和加法的运算,先算乘法,再算加法。看下图就能很好的理解了其中的优先级了。
五、X——异或运算
首先,我们说一下异或的意思,见如下表格:
从上面的表格可以看出,异或的意思就是两个位相同时为0,不同时为1,是不是有点小叛逆?下面介绍异或运算的用法:
(1)指令格式:X<位>
解释:指令X后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 X I0.0、X Q0.0、X M0.0等。
(2)指令作用 :X其实是Exclusive OR的缩写。X 检查寻址位的状态是否为"1",并将测试结果与 RLO 进行异或运算。
(3)应用举例:
上面的意思就是将常开触点I0.6与常开触点M0.4进行异或运算。
六、XN——同或运算
首先,我们说一下同或的意思,见如下表格:
从上面的表格可以看出,同或的意思就是两个位相同时为1,不同时为0。下面介绍同或运算的用法:
(1)指令格式:XN<位>
解释:指令XN后面接的是一个位,这个位只能是存储区为I、 Q、 M、 L、 D、 T、 C中的某一位。比如 XN I0.0、XN Q0.0、XN M0.0等。
(2)指令作用 :X其实是Exclusive OR NOT的缩写。XN 检查寻址位的状态是否为"0",并将测试结果与 RLO 进行异或运算。
(3)应用举例:
在西门子PLC的STL编程中,A 、AN、O、ON、X、XN这几个指令是最常用的,所以初学者必须要理解并掌握好。
相关问答
plc异或指令应用?
回答如下:PLC异或指令可以用于逻辑运算,用于比较两个二进制数的每一位,如果相同则结果为0,不同则结果为1。应用场景如下:1.数据传输:异或可以用于数据传...
两个开关控制一个灯用PLC怎样编程?
两个开关控制一个灯,如果要用plc来编程可以说简单,也可以说复杂,说简单就是编程还没开始就结束了!编程复杂就是单一的这个功能用个plc太浪费,高射炮打蚊子,...
plc延时符号哪里找?
PLC(可编程逻辑控制器)中的延时符号通常是根据具体的PLC品牌和编程软件而定的。不同的PLC品牌和软件可能会使用不同的符号或指令来实现延时功能。如果您使用...
三菱plc中x1代表什么?
在三菱PLC中,X1通常代表输入点的地址或编码,X1可以看作是一个输入信号的一种唯一的标识符。基于三菱PLC的硬件平台和软件编程环境,X1所代表的具体输入信号和命...
plc指令表中anl是指?
在PLC指令表中,ANL指的是"与逻辑"操作。ANL是英文单词"AND"的缩写,在PLC中用于进行逻辑与操作。它需要两个输入变量,如果两个输入变量同时为真,...
plc正常运行亮哪几个红灯?
PLC状态灯正常的时候也只亮一、两个灯(即电源灯和run灯),不正常的时候比如SF、BF灯有可能会亮红灯。具体亮什么灯看...plc正常运行亮红灯是不亮的,除非有故...
欧姆龙PLC编程指令与梯形图快速入门的目录?
去京东上搜索这本书,然后下边的商品介绍中就有这本书的目录的。京东上给出的本书的目录如下:第1章PLC编程软件与仿真软件1.1编程软件CX-Programmer1.1...3...
plc中sp指令怎么用?
在PLC中,SP指令用于设置特定的参数值。首先,您需要确定要设置的参数地址。然后,使用SP指令将所需的值加载到该地址中。这可以通过编程软件或HMI界面完成。确保...
编码器怎么编程-Sure-小胖妞的回答-懂得
编码器编程:是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为...
西门子plc伺服控制实例?
以下是一个基于西门子PLC的伺服控制实例:假设我们需要使用PLC来控制一个伺服电机,让它以不同的速度运行。1.系统硬件配置我们需要一个增量式编码器(Increm...