结构体变量与功能块的综合使用,带你体会PLC结构化编程的实现
前面几篇文章小编给大家介绍了三菱FX系列PLC的结构化编程,介绍了结构体变量和功能块的使用,对于习惯了三菱PLC简单工程的朋友们可能很不适应,而且文章写的都比较笼统,今天就介绍一个简单的实例。
现在有十个三相异步电动机,要求编程实现电机的启动停止。
传统的控制方式一定是这样的
图一
相信大家对这样的三菱PLC一定不会陌生,限于篇幅,我只写了四个电机的控制。三菱PLC的这种简单工程模式,直观易懂,非常傻瓜化,只要智商正常,都能看得懂,因此被冠以直观易懂,符合东方人思维的特点(但小编我觉得这是在侮辱国人的智商)。这种编程方式繁琐,而且浪费纸,对于大型工程或是复杂工艺计算,以及运动控制,那可是要死人的。那么用结构化编程怎么实现呢?
分析: 控制十台电机的启停,那么启停控制就是十台电机都要用到的,我们可以做成功能块,反复调用。
每台电机都有启动,停止两个操作,我们可以定义为结构体变量。
首先,我们先创建一个电机控制的功能块 Motot_Control
图二
如 图二所示,就是创建好的功能块Motot_Control。在这里,小编是用ST语言编写的。关于ST语言在PLC编程中的好处,小编不再重复,希望大家多多体会。
接下来,我们就要在程序中调用功能块了,由于是十台电机,因此需要调用十次
图三
如图三所示,这就是我们在程序中调用的功能块,同样限于篇幅,小编我就只调用了四个。和图一的简单工程梯形图相比,是不是简洁多了?注意看黄色荧光笔部分,这部分称之为功能块的实例名,是什么意思呢?因为在IEC61131-3标准中,功能块也当做是一种变量类型,也是需要定义的,也就是俗称的功能块型变量,在西门子博途中称之为背景数据块。
图四
如图四所示,我们在程序中插入的四个功能块,都被自动定义成了变量。
接下来,我们就建立结构体变量了
图五
如图五所示,这就是建立好的结构体变量Motor,注意看,它是支持中文的!是不是很赞!
建立好了结构体变量,我们就可以在全局变量中定义并使用了
图六
如图六所示,我们定义了四个结构体型变量,名字分别为 电机1,电机2,电机3,电机4.注意看它们的类型,都是Motor型。接下来,我们就可以直接使用定义好的变量了
图 七
如图七所示,这就是最终的程序,和使用简单工程相比的图一,是不是更简单明了,而且更加的高效?
总结:本文所举的例子比较简单,可能还体现不出结构化编程的优势,本文旨在让大家体会结构化编程的思维方式。毕竟,基于IEC61131-3标准是PLC的发展方向,是大势所趋。台达PLC,欧姆龙PLC,松下PLC,三菱PLC,富士PLC这些日系PLC都推出了基于ICE61131-3标准的PLC产品,可见,连小日本都觉得简单工程的方式已经没了前途,如果你还抱残守缺,故步自封,不思进取,天天以入门简单来麻醉自己,你也就基本看不懂手表了。
西门子PLC结构化编程详解,电气小白建议收藏!
作为一个自动化行业的从业者,你或多或少应该听过结构化编程。那么什么是结构化编程呢?它是将复杂自动化任务分割成与过程工艺功能相对应或可重复使用的更小的子任务,将更易于对这些复杂任务进行处理和管理。这些子任务在用户程序中以块来表示。因此,每个块是用户程序的独立部分。
在进行PLC编程的时候,我们常用的方式有,线性化编程、模块化编程以及结构化编程。线性化编程只使用一个主程序,所有的程序指令都在主程序中执行,适合小型自动化项目。模块化编程是将一个自动化项目分割成不同的功能模块,比如一个自动化项目可以分成手动、自动、报警等不同的功能,这些不同的功能然后再统一被主程序调用。结构化编程与模块化有些类似,都是使用多个子程序,但是结构化编程将某些可重复性的任务,做成可复用的程序块,方便移植使用。为了直观的理解这三种编程方式的区别,下面以两条流水线的起保停控制作为举例说明。使用的硬件信号表1所示:
表1:IO信号表
01线性化编程
线性化的编程方式,所有的程序都在OB1中,如图1所示:
▲ 图1 线性化编程
02模块化编程
模块化的编程方式,将两条流水线分别在不同的子程序中进行调用,如图2、图3所示:
▲ 图2 主程序调用子程序
▲ 图3 流水线1执行程序
▲ 图4 流水线2执行程序
03结构化编程
结构化编程,则是通过建立FB程序块,内部的功能在FB中实现,该FB块可重复使用,当进行FB程序块调用的时候,会自动生产对应的DB数据块,程序进行控制的时候,定义具体的管脚即可。具体的结构化编程如图所示:
▲ 图5 OB1的程序调用
▲ 图6 流水线1的程序
▲ 图7 流水线2的程序
▲ 图8 流水线功能的背景块
总结
在上文中,对两个流水线的起保停控制,分别用不同的编程方式进行了举例。每种编程方式大致有了一定的认识,由于举例的程序比较简单,所以程序的优缺点不是那么的明显,但是随着项目的程序越来越复杂,编程的工作量越来越大,结构化的编程方式优势会更加明显,它的易读性、复用性可以提高工作的效率。在PLC的编程过程中,推荐大家使用结构化和模块化的混合编程方式。
来源:技成培训网,作者:技成-刘郴,未经授权不得转载!
评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。
如何获取 电气热门资料?
操作指引如下!
相关问答
plc面试常问的问题?
问题1。有哪种基本类型的PLC?小型PLC模块化PLC问题2。目前流行的PLC品牌有哪些?ABB公司AB(Rockwell)PLC西门子PLC/德尔塔PLC/三菱PLC霍尼韦尔PLC...
三菱PLC结构化编程BMOVE_MSET_M后缀_M是啥意思?
BMOV_M多点传输指令SET_M多点置位指令BMOV_M把S开始的N位,传输到D开始的N位.BMOV_M多点传输指令SET_M多点置位指令BMOV_M把S开始的N位,传输到D开...
PLC结构化文本编程需要什么基础?
PLC结构化文本编程需要的基础包括**对IEC61131-3标准的理解、熟悉ST语法以及具备一定的逻辑思维能力**。具体如下:1.**了解IEC61131-3标准**:这是国际电工委...
PLC结构化编程中,EN和ENO是什么意思?
ENO是LAD和FBD中方框的布尔输出。ENO允许您以串联(水平方向)方式连接方框,不允许以并联(垂直方向)方式连接方框。如果方框在EU输入位置有使能位,且方框执...
plc结构文本。ST语言。台达PLC不支持吗?
2、梯形图(LAD-LAdderDiagram)3、语句表(STL-STatementList)4、功能块图(FBD-FunctionBlockDiagram)5、结构化文本(ST-St...
配方在plc怎么执行?
关于这个问题,在PLC中,配方的执行通常涉及以下步骤:1.配方编辑:首先,需要在PLC中编辑配方,包括定义配方的步骤、参数、条件等。这可以通过PLC编程软件完...
为什么PLC要运用到浮点数运算-POPPIN_CHAXILY的回答-懂得
PLC总是用16进制(二进制),或者BCD码,是难以满足越来越复杂的控制需要的。如果是单纯的逻辑控制当然用到的都是开关量,一般的数据采集和PID控制用BC...
plc的mc码是什么意思?
plc的mc码是指“机器码”(machinecode),是一种用于编程可编程逻辑控制器(plc)的底层指令集。mc码是一种低级语言,可直接操作plc的硬件和输入输出设备,实...
plc常见的语言编程方法?
PLC的编程方法大体上有5种:经验法、解析法、图解法、技巧法及计算机辅助设计法。(1)经验法:运用已掌握的成功设计经验,结合实际的情况,选择与实际情...
plc编程用什么语法?
PLC的编程语言包括以下五种:梯形图语言(LD)、指令表语言(IL)、功能模块图语言(FBD)、顺序功能流程图语言(SFC)及结构化文本语言(ST)。PLC的用户程序...PLC的...