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这几个指令是最常用的,所以初学者必须要理解并掌握好。