PLC教学3——块操作指令及栈操作指令
块操作指令
1) 串联电路块的并联(块或操作指令)----OLD
两个或两个以上触点串联形成的支路叫串联电路块
OLD功能:用于串联电路块的并联连接
例 块或操作指令应用
使用说明:
(1)除在网络块逻辑运算的开始使用LD或LDN指令外,在块电路的开始也要使用LD或LDN指令。
(2)每完成一次块电路的并联时要写上OLD指令。
(3)OLD指令无操作数
2)并联电路块的串联连接指令(块与操作)----ALD
用于将以LD或LDN起始的并联电路块和另外的LD或LDN起始的并联电路块串联连接
例 块与(ALD) 指令的应用
使用说明:
在块电路开始时要使用LD或LDN指令。
在每完成一次块电路的串联连接后要写上ALD指令。
ALD指令无操作数
栈操作指令
S7-200系列PLC使用9层堆栈来处理所有逻辑操作,和计算机中的堆栈结构相同。堆栈是一组能够存储和取出数据的暂存单元,其特点是"后进先出"。每一次进行入栈操作,新值放入栈顶,栈底值丢失;每次进行出栈操作,栈顶值弹出,栈底值补进随机数。
(1)逻辑入栈指令(LPS)
逻辑入栈指令又称为分支电路开始指令。在梯形图的中的分支结构中,可以形象地看出,它生成一条新的母线,其左侧为原来的主逻辑块,右侧为新的从逻辑块,因此可以直接编程
从堆栈使用来上来讲,LPS指令的作用是把新的分支母线的状态压入堆栈栈顶。
2.逻辑读栈(LRD)逻辑读栈指令在梯形图分支结构中,当新母线左侧为主逻辑块时,LPS开始右侧的第一从逻辑块编程,LRD开始第二个以后的从逻辑块编程。
3.逻辑出栈指令(LPP)逻辑出栈指令又称为分支结束指令。在梯形图分支结构中,LPP用于LPS产生的新母线右侧的最后一个从逻辑块编程。弹出分支母线的状态出堆栈。
例 LPS、LRD、LPP应用举例
例 LPS、LRD、LPP应用举例
使用说明:
由于受堆栈空间的限制(9层堆栈),LPS、LPP指令连续使用时应少于9次
LPS、LPP指令必须成对使用,它们之间可使用LRD指令。
LPS、LPP、LRD指令无操作数。
三菱PLC入门必学知识点——功能块指令
在PLC的编程语言中,最简单的就是图形语言,如我们所学的梯形图与SFC,这两者在编程软件中都属于简单工程。
而我之前所分享的文章中,讲到的那些基本指令和功能指令,都是基于简单梯形图形式进行示例。其实,对于很多功能(函数),如四则运算、比较传送等,在PLC编程中还有另外一种形式,那就是功能块形式,它们在编程软件中为结构化工程类型。
除此之外,PLC的编程语言中还有比较复杂的文本语言,即ST语言。提及ST语言,简直令我等凡夫俗子望而却步,因为它就是传说中的纯打代码,为了我的头发,ST语言我还是直接放弃吧。
既然放弃了ST语言,那么我今天就来给大家简单分享一下功能块指令的内容吧!
什么是功能块(FB、FUN)
所谓功能块,如下图27-1所示,简单来说,就是可以实现某些特定功能或函数的块,即FB块或FUN块,一般情况下把功能块叫FB块,但其实在三菱PLC中,功能块除了FB块之外,还有FUN块,即函数块。
图27-1
类似于子程序,功能块可以将特定的且需要经常使用的功能打包成一个块,在程序中多次调用,另外还可以打包成一个库文件,用于多台电脑上拷贝使用。这个“经常使用的功能”可以是我们自定义的,也可以是编程软件自带的。
例如电机的起保停程序,我们可以把整个起保停程序打包成一个功能块,如下图27-2所示,该功能块的输入输出、起保停的启动、停止和电机都以标签的形式定义,直到被调用时再由用户指定具体的软元件,如起保停的启动用“X0”、电机用“Y0”等。
图27-2
这个“起保停”的功能块,对应梯形图如下图27-3所示。还是类似于子程序,功能块在调用之前,如果是用户自定义的,显然,用户还需自己先编好一个功能块。
图27-3
当然,和子程序不同的是,这个自定义的功能块,其中的一些触点、线圈等只是用标签命名,如图27-3中的“启动”、“电机”等就是用文字命名的标签。
功能块与功能指令的区别
功能块用于结构化梯形图中,可以自行调用,如下图27-4所示,可以看到,这个结构化梯形图中有很多的块状结构(功能块),除此之外还有一些触点和线圈。所以结构化梯形图和简单梯形图其实区别不大,都是为了实现特定功能的程序。
图27-4
但到底是选用简单梯形图还是结构化梯形图,这就看个人喜欢了。就像是在顺控程序中,你可以用SFC的形式编写,也可以直接编写梯形图,问题不大。
而功能块和功能指令,若是对于一般的功能而言,其实两者区别不大,例如我们要实现两个数的相加:当驱动条件X0成立时,把D0的当前值加上K10,结果保存到D10中。
它可以通过功能指令实现,也可以运用功能块实现。如下图27-5所示为功能指令形式,X0接通,(D0)=K20,执行ADD指令后,D10的当前值为“和”K30。
图27-5
而功能块形式如图27-6所示,依然是X0接通,(D0)=K20,执行程序后,D10的当前值为“和”K30。
图27-6
从以上实现加法功能来看,功能指令和功能块可以自行选择用哪个,但对于较为复杂的功能,显然两种的区别还是比较明显的。这是因为功能块可以自定义,而功能指令却不行。
例如我们要实现D0、D1的值相加,在乘以D2的值,这就要用上两个功能指令ADD、SUB,而功能块可以把加和乘集中到一个块中,直接调用。此时的功能块,其功能其实更倾向于类似子程序的作用。
但更深入的功能块知识,我在这里就不再展开讲解啦,大家如果感兴趣,可以观看我们官网的相关课程哦!我在这里只不过是给大家了解一下,PLC编程中还有功能块这个玩意就行了~
其实,对于初学者,例如我这种小白而言,功能块这部分知识还是有点难度的,所以我还需要更多的时间去深入学习它,所以我也就不在这里班门弄斧了。
最后,希望有更多的志同道合的人(在PLC知识海洋中挣扎的人)和我一起共同努力、共同进步吧!
(来源:技成培训网原创,作者:杨思慧,欢迎大家转发评论,如有不足之处或者建议可在评论区留言)
相关问答
信捷PLC模拟量的编程指令?
第一步:使用标准化功能块采集模拟量转换为0-1的数值第二步:使用标定功能块将0-1的数值转换重量第三步:通过比较指令控制阀门关闭和打开回答:比较的话,下边填...
abplc块传送指令详解?
了解了寄存器的寻址方式之后会方便对传送指令的理解,先大体概括一下所有的传送指令,在这里主要分为两类,一类是单一传送,另一类是块传送1.单一传送(1)MO...
PLC的乘法指令有哪些?
PCL乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。PCL乘法指令分16位和32位两种情况。当为16位运算,执行条件X0由OFF→ON...
plc主程序怎么编写?
编写PLC主程序的方法可能因PLC品牌和型号的不同而有所差异。以下是通常编写PLC主程序的一般步骤:1.确定系统需求:了解系统的功能需求和操作流程。2.绘制流...
plc标准化指令?
PLC的标准化指令包括以下几种:1、LD(Load)指令:将一个数值或位数值装入寄存器或寄存器组中。2、OUT(Output)指令:将数据输出到输出设备。3、AN(AndIm...P...
plc常见的语言编程方法?
PLC的编程方法大体上有5种:经验法、解析法、图解法、技巧法及计算机辅助设计法。(1)经验法:运用已掌握的成功设计经验,结合实际的情况,选择与实际情...
plc堆栈指令通俗解释?
在讨论PLC(可编程逻辑控制器)的堆栈指令之前,让我们先了解一下堆栈的概念。堆栈是一种数据结构,它遵循"先进后出"(LastInFirstOut,LIFO)的原则。就像.....
plc初始化程序如何编写三种方法?
PLC的初始化程序主要是指PLC在上电启动时运行的程序。下面介绍三种常用的PLC初始化程序编写方法:1.使用自定义函数块可以在PLC编程软件中新建一个自定义函...
plc指令集架构?
PLC的指令集是通过编程语言实现的,主要包括:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)...PLC的...
1200plc控制变频器频率怎么写程序?
编写PLC控制变频器频率的程序需要以下步骤:首先,配置PLC与变频器之间的通信参数,确保能够实现数据传输。然后,使用PLC编程软件创建一个变频器控制的函数块...