S7-300400的STL语言入门:位逻辑指令及其编程方法
本文包含以下内容,高手绕行:
1、STL下的部分位逻辑指令
2、如何根据电路图或梯形图编写STL程序
3、逻辑运算的规则::先"与"(串联)后"或"并联
一、触点与线圈
触点分为常开触点和常闭触点,其在梯形图中表示如图1所示。
图1 梯形图中的触点与线圈
触点、线圈与RLO的关系如下:
· 常开触点,为0时,表示能流未流过该触点,RLO=0;为1时,表示有能流流过该触点,RLO=1;
· 常闭触点,与常开触点相反,0时RLO=1;状态为1时,RLO=0;
· 线圈或输出指令"="将RLO写入相应的地址位,即线圈的状态与当前RLO相同。
二、基本位逻辑指令
由不同触点经过串联、并联或者更复杂的电气连接,可实现很多简单却实用的逻辑控制功能。
1、串联逻辑
图2 触点串联(LAD)
如图2所示,为一个常开触点和常闭触点的串联逻辑梯形图。在STL中,用"A"(即AND,"与")表示常开点的串联;用"AN"(即AND NOT,"与非")表示常闭点的串联。因此,图2的逻辑,用STL描述如下:
图2.1 触点串联(STL)
2、并联逻辑
图3 触点并联(LAD)
如图3所示,为一个常开触点和常闭触点的并联逻辑梯形图。在STL中,用"O"(即OR,"或")表示常开点的并联;用"ON"(即OR NOT,"或非")表示常闭点的并联。因此,图3的逻辑,用STL描述如下:
图3.1 触点并联(STL)
三、位逻辑指令的嵌套
所谓"位逻辑指令的嵌套"是指由基本位逻辑指令"A"、"O"、"AN"、"ON"等,和嵌套指令"(" 及 ")"组合而成的指令,用以编程描述由基本的串、并联组成的复杂的混联逻辑指令。
复杂的逻辑运算采用的规则是:先"与"(串联)后"或"并联 。在初学STL时,可以通过假设中间逻辑,将复杂的逻辑拆分为简单的串联或并联逻辑,以方便编程。下面举几个简单的例子加以说明。
为方便说明,在逻辑表达式中"&"表示"与"、"&N"表示"与非"、"|"表示"或"、"|N"表示"或非"。
1、先"并联"、再"串联"
图4 混联逻辑1:先"并联"后"串联"(LAD)
图4的混联逻辑,由两个并联组件(红框和蓝框)再经由串联后,将逻辑结果赋值给Q3.0。我们可以令:
则:
将(1)、(2)代入(3)得:
因为,逻辑运算的规则是"先与后或" ,因此,(4)不可继续化简。根据(4)即可写出与图4相应的STL逻辑,如图4.1所示。
图4.1 混联逻辑1:先"并联"后"串联"(STL)
2、先"串联"、再"并联"
图5 混联逻辑2:先"串联"后"并联"(LAD)
图5的混联逻辑,由两个串联组件(红框和蓝框)再经由并联后,将逻辑结果赋值给Q4.0。我们可以令:
则:
将(1)、(2)代入(3)得:
因为,逻辑运算的规则是"先与后或" ,因此,(4)中的"括号"是不必须的,即(4)的逻辑运算结果等价于:
由表达式(4)、(4.1)写出的STL如图5.1所示。
图5.1 混联逻辑2:先"串联"后"并联"(STL)
由图5.1可见,通过表达式(4.1)写出的STL语句更为简洁、精炼。因为,我们在编程中,要时刻牢记逻辑运算的铁则:先"与"(串联)后"或"并联 。
3、更为复杂的逻辑
图6 混联逻辑3
在实际应用中,我们可能遇到更为复杂的逻辑运算,比如如图6所示。利用"化繁为简" 的方法,找出其"线圈"与"触点"之间的逻辑关系后,自然可以写出其对应的STL程序。
图6对应的STL语句这里就不给出了,有兴趣的小伙伴不妨可以试着分析一波。
附录:(介绍几个文中提到的概念)
1、能流的概念
"能流"是梯形图中,为方便理解和描述一段程序而提出的一个虚拟概念。左右母线看做是一个直流电源的正负极,左母线是正极,右母线是负极。电流沿着梯形图,从左母线流到右母线,形成一条回路,这里所谓的"电流"就是"能流"。如图1,绿色部分为能流的走向。
附图1 "能流"及其概念
2、状态字寄存器
S7系列PLC中,维护着一个16位的状态字寄存器(如图2所示),用于存储CPU执行指令时的状态。状态字中的某些位用于决定某些指令是否执行以及以什么样的方式执行,同时,指令在执行时可能改变状态字中的某些位。本文,主要用到"RLO"位。
附图2 状态字寄存器
RLO,(Result of Logic Operation),即:逻辑运算结果位。用来存储位逻辑指令、比较指令的执行结果,可以用RLO触发跳转指令。
3、位逻辑指令一览
附图3 位逻辑指令
三菱FX梯形图与继电控制图,这PLC编程语言,看完想哭
三菱FX PLC入门之这磨人的PLC语法(下)
终于写到了第三章的最终话:这磨人但又该死甜美的梯形图。梯形图是目前使用最多的PLC编程语言,也是所有漂流在PLC学海的历险者必须要掌握的语言,包括我这只被海浪拍死在沙滩的小白。
现在就让小白我以PLC初学者的身份来说一下梯形图的一些内容吧。
一、梯形图与继电控制图
梯形图是源自继电控制系统电气原理图的形式,所以两者很相似。电气原理图中的一些继电器、接触器等配菜的符号,会经过翻炒出锅(简化),来到PLC梯形图。
上图是电机启停的继电控制电路图和PLC控制的梯形图,两者电路结构很相似,且功能相同,但是梯形图却简单得多。
梯形图的学习对于熟悉继电器控制,想原理图的人来说是容易接受的,当然这其中不包括我,梯形图于我而言,就如嗷嗷待哺的婴儿去学说话一样,从零开始。
所以李金城老师所说的“一旦入了门,必须完全离开继电控制电路图的思维方式”与我完全没有关系。
虽然梯形图和继电控制电路图很相似,但是它们之间还是有差异的,虽然我对继电控制电路图没有多熟悉,但修炼过第三章功法的我还是要在这里班门弄斧,简单说一下,让各位见笑了。
1、 在继电控制图中的所有符号均表示器件实体,例如按钮、接触器、电磁阀等,这些器件的符号各不相同。而在梯形图中不存在器件实体,其符号表示的是各种编程元件,也就是我上篇文章提到的软元件,如X、Y、M等。用脚指头想也知道,看PLC这小身板,想装得下各种器件的实体简直是痴人说梦。
2、 在继电控制图中,可以根据电流的流向判断元件的得电和失电,类似的,在梯形图中,我们可以假设有一个信号流从左到右、自上而下流到Y、M、T等元件使它们导通。
3、 在继电控制图中,线圈得电和触点动作是同时进行的,而在梯形图中,其虚拟触点和线圈是由PLC按顺序扫描,先后工作的。虽然这个时间上的差异我们肉眼看不出,但在响应要求比较高时还是会有明显的不同。
另外,在继电控制图中,各个器件除了有特定的图形符号外,还有各自的文字符号,例如按钮用SB来表示,有多个按钮就用序号加以区分,如SB1、SB2等。类似的,PLC本身的编程元件有很多,如X1、X2、Y0、Y1、M500等,这么多的虾兵蟹将,我们该怎样地使唤它们而不至于让自己张冠李戴,弄错身份呢?
这时候就要用到PLC的I/O口地址分配表了,这个分配表就像是PLC调兵遣将(调用各个编程元件)的名单,从这个分配表上我们可以知道小虾X0用作什么,小蟹Y0去到哪里等。例如上图就是电机启停的继电控制图转化为梯形图,并制出其相应的I/O口地址分配表。
二、梯形图的组成
梯形图是一种编程语言,但是它的组成却不仅仅是文字,还包括了图形。接下来我们一起揭开面纱,好好欣赏梯形图的美貌吧。
我们以上图这个梯形图为模特,一一诉说。
1、 梯形图按行(又称逻辑行)从上到下、从左到右编写,这也是PLC对梯形图的执行顺序。写这句的时候,其实我的手已经脱离我的控制,先行一步点开了PLC的编程软件尝试了一下编程,有趣极了,真香!
2、 上图中,左右两边的垂直线分别称为左母线和右母线,每一逻辑行必须从左母线开始,右母线结束,但有时候在画梯形图时把右母线忽略不画。显然,针对右母线可以不画这一点,我是松了一口气的,毕竟画多一条母线真的很累。
3、 每个梯形图由多个梯级组成,一个输出元件构成一个梯级,而且输出元件必须和右母线相连。因为右母线可以不画,所以所谓输出元件必须和右母线相连,其实就是输出元件的右边不能有其他元件。例如上图的Y0、Y1右边要么是母线,要么留空。
4、 梯形图中字符表示PLC所规定的不同编程元件,触点只有两种形式:常开和常闭。也就是说,PLC没规定的字符我们不能乱用,例如A、Z等。继电控制电路中有各种不同的触点,例如通电延时、断电延时等,但是在PLC中要实现这种通电延时等的功能,就要通过T、C等配合完成。
5、 一个完整的梯形图程序必须用“END”结束。当然,这里说的是三菱。
其实,我觉得梯形图的美用上面的文字根本不能完全表达,但是这个具体编程我也还没真正开始接触,所以,我目前也找不出更多华丽的语言去夸它了。
三、梯形图的编程规则
梯形图的编程规则不少,包括上面“梯形图的组成”中的一些内容也是其基本规则,这里再补充几条。
1、 触点不能接在输出线圈的右边;输出线圈也不能直接与左母线相连,必须通过触点连接。如下图所示。
说白了就是输出线圈非常矫情,明明很喜欢左母线,却非要有触点作为传话筒才肯与左母线交流,然后它又不允许触点出现在右边。而触点也很听话,输出线圈不让它出现在右边,它就打死也不会去输出线圈的右边。
2、 在每个逻辑行上,当几条支路并联时,串联触点多的应排在上面;几条支路串联时,并联触点多的应排在左边,这样可以减少编程指令。
关于第2点,怎么说呢,左母线比较宠触点,巴不得所有触点都粘着它,梯形图中左母线最大,我们为了成线之美,也就尽量把触点安排在左上位置,让左母线能更快更近地与触点交流。
3、 梯形图的触点应画在水平支路上,不能画在垂直支路上。
关于第3点,我持着怀疑的态度打开编程软件看了一下,发现我们想把触点画在垂直支路上都画不了,因为编程软件没有这个选项!不过这是一条规则,那么我们就算用手画也是不能这样画的,尽管你的心蠢蠢欲动。
4、 输出线圈只能并联,不能串联。
回顾上文,一个输出元件构成一个梯级,如果输出线圈串联,一个梯级就含有两个输出元件,显然与前文矛盾(怎么感觉我在辩论一样)。另外,有多少个输出线圈并联,也就有多少个梯级了。
5、 在用一个程序中,同一个输出线圈不能使用两次或两次以上。
输出线圈虽然矫情,但是它很专一,每个输出线圈在一个程序中要出现的话就只会出现一次,如果出现两次或多次,则前一个或前面的线圈输出无效,仅最后一个线圈输出有效。
6、 梯形图中,除了输入继电器X没有线圈只有触点外,其他继电器既有线圈,又有触点。
如上图所示,梯形图中输出继电器Y0可以作为输出线圈出现,也可以触点的形式出现,而输入继电器X3不能以线圈的形式出现,输入继电器真可怜。
除了以上规则,还有一些其他的规则第三章没有讲述,在这里我也就不再啰嗦,毕竟我也不懂。
综上,第三章的最终话到此为止了,我们第四章再会。
选自《三菱FX PLC编程与应用入门》第三章第7~9课时
(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究)
相关问答
plc左母线怎么加触点?
1,打开三菱plc软件,在左母线右侧双击鼠标,在“梯形图输入”对话框中输入“ldx0”,x0作为控制指令的输入点,当X0为ON时才能执行该指令内的软元件。2,在X0软...
如何理解plc从上到下,从左到右的扫描顺序?
PLC的工作方式采用不断循环的顺序扫描工作方式。扫描顺序为从上到下,从左到右每一次扫描所用的时间称为扫描周期或工作周期。PLC从第一条指令执行开始,按顺序逐...
画出下面要求的梯形图,就是左边有母线的那种图1,一盏灯,无...
[最佳回答]20换这么多题,你能在小气点不
请教高手;使用三菱PLC编程软件怎样键入,P,I,这两个指针编号?
点击母线左侧,然后直接使用键盘输入,如P10点击母线左侧,然后直接使用键盘输入,如P10
PLC的主控指令怎么用?
plc的主控指令一般用于母线嵌套,以三菱为例,主控指令为MC与MCR.MC指令实现母线右移,MCR指令实现母线左移,每次移动一层最多只能嵌套8层,可以节省大量的AND、...
plc梯形图的一个程序movk8d20是什么意思?
利用能流这一概念,可以帮助我们更好地理解和分析梯形图。图1中存在的能流有(1,2)、(1,5,4)、(3,4)和(3,5,2),为此可以将图1转化为图2.母线梯形...3)确...
三菱plc编程怎么写入线圈?
在各个PLC编程中,在线圈前必须要有一个或一个以上的常开点或常闭点来控制线圈,直接母线后线圈是不规范的,也是不允许的。有一种不是线圈[=K60D0]的就是母...
plc五个指令?
答:一、标准触点LD、A、O、LDN、AN、ON、LD,取指令。表示一个与输入母线相连的常开接点指令,即常开接点逻辑运算起始。LDN,取反指令。表示一个与输入母线...
三菱plc全部触点输出指令?
OUT(输出指令)对线圈进行驱动的指令,也称为输出指令。1)LD、LDI指令既可用于输入左母线相连的触点,也可与ANB、ORB指令配合实现块逻辑运算;2)LDP、LDF...O...
三菱PLC中置位和复位怎么用?
1、三菱PLC中通过X0来控制置位指令,即在左母线右侧输入“ldx0”并点击确定。2、下一步直接输入置位指令“SETY0”并点击确定,从而使Y0一直有输出。3、这个...