如何创建自己的PLC程序的结构化FB块
【原创】
结构化FB块已越来越多被广大PLC编程者使用,其好处是在一个程序中,将重复使用的梯形图部分或常规实用的梯形图,进行集成一个部件化的功能块。在编程时方便地引入到顺控程序中,可以节省大量的编程时间和避免出错。同时也可以保证自己的辛劳成果不被盗用。
下面介绍创建自己的结构化FB块步骤:
本文以三菱FX3U系列的PLC控制器及星三角启动为例
1,打开GX Works2编程软件,点击【工程】→点击【新建】,出现如下对话框
按上图所示选择→点击【确定】
出现如下对话框
点击【确定】→点击FB管理下【局部标签】或PLC程序编辑框上方的标签【函数/FB标签设置】,星三角有两个输入量(启动、启动);三个输出量(星点、电源、三角);一个过渡变量(延时)
点击FB管理下【程序文本】或PLC程序编辑框上方的标签【FB写入】
编制程序(星三角启动程序)如下图
点击【转换+全部编译】
到此星三角启动FB块编制成功。
2,下面看看效果
点击MAIN下【程序文本】
编制的星三角启动FB就会粘贴在顺控程序指定位置
编制的FB块必须经测试,测试通过后,将它保存在自己建立的FB库中,以便日后使用。
阅后,如有不同观点,请在下方评论区留言,在此感谢!
从零开始学PLC之逻辑块(FC和FB)的结构及编程
逻辑块(FC和FB)的结构及编程
功能(FC)、功能块(FB)和组织块(OB)统称为逻辑块(或程序块)。功能块(FB)有一个数据结构与该功能块的参数完全相同的数据块,称为背景数据块,背景数据块依附于功能块,它随着功能块的调用而打开,随着功能块的结束而关闭。存放在背景数据块中的数据在功能块结束时继续保持。而功能(FC)则不需要背景数据块,功能调用结束后数据不能保持。组织块(OB)是由操作系统直接调用的逻辑块。
逻辑块(FC和FB)的结构
逻辑块(OB、FB、FC)由变量声明表、代码段及其属性等几部分组成。
局部变量声明表
每个逻辑块前部都有一个变量声明表,称为局部变量声明表。
局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量)两种。
对于功能块(FB),操作系统为参数及静态变量分配的存储空间是背景数据块。这样参数变量在背景数据块中留有运行结果备份。在调用FB时,若没有提供实参,则功能块使用背景数据块中的数值。操作系统在L堆栈中给FB的临时变量分配存储空间。
对于功能(FC),操作系统在L堆栈中给FC的临时变量分配存储空间。由于没有背景数据块,因而FC不能使用静态变量。输入、输出、I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。
对于组织块(OB)来说,其调用是由操作系统管理的,用户不能参与。因此,OB只有定义在L堆栈中的临时变量。
逻辑块局部变量的数据类型
局部变量可以是基本数据类型或复式数据类型,也可以是专门用于参数传递的所谓的“参数类型”。参数类型包括定时器、计数器、块的地址或指针等。
逻辑块的调用过程及内存分配
CPU提供块堆栈(B堆栈)来存储与处理被中断块的有关信息
用户程序使用的堆栈
局部数据堆栈简称L堆栈,是CPU中单独的存储器区,可用来存储逻辑块的局部变量(包括OB的起始信息)、调用功能(FC)时要传递的实际参数、梯形图程序中的中间逻辑结果等。可以按位、字节、字和双字来存取。
块堆栈简称B堆栈,是CPU系统内存中的一部分,用来存储被中断的块的类型、编号、优先级和返回地址;中断时打开的共享数据块和背景数据块的编号;临时变量的指针(被中断块的L堆栈地址)。
中断堆栈简称I堆栈,用来存储当前累加器和地址寄存器的内容、数据块寄存器DB和DI的内容、局域数据的指针、状态字、MCR(主控继电器)寄存器和B堆栈的指针。
当调用功能块(FB)时,会有以下事件发生:
①调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入L堆栈;②数据块DB寄存器内容与DI寄存器内容交换;③新的数据块地址装入DI寄存器;④被调用块的实参装入DB和L堆栈上部;⑤当功能块FB结束时,先前块的现场信息从块堆栈中弹出,临时变量弹出L堆栈;⑥DB和DI寄存器内容交换。当调用功能块(FB)时,STEP 7并不一定要求给FB形参赋予实参,除非参数是复式数据类型的I/O形参或参数类型形参。如果没有给FB的形参赋予实参,则功能块(FB)就调用背景数据块内的数值,该数值是在功能块(FB)的变量声明表或背景数据块内为形参所设置初始数值。
当调用功能(FC)时会有以下事件发生:
功能(FC)实参的指针存到调用块的L堆栈;调用块的地址和返回位置存储在块堆栈,调用块的局部数据压入L堆栈;功能(FC)存储临时变量的L堆栈区被推入L堆栈上部;当被调用功能(FC)结束时,先前块的信息存储在块堆栈中,临时变量弹出L堆栈。 因为功能(FC)不用背景数据块,不能分配初始数值给功能(FC)的局部数据,所以必须给功能(FC)提供实参。
调用功能(FC)时的堆栈操作
以功能(FC)调用为例,L堆栈操作示意如图所示。
逻辑块(FC和FB)的编程
对逻辑块编程时必须编辑下列三个部分:
变量声明:分别定义形参、静态变量和临时变量(FC块中不包括静态变量);确定各变量的声明类型(Decl.)、变量名(Name)和数据类型(Data Type),还要为变量设置初始值(Initial Value)。如果需要还可为变量注释(Comment)。在增量编程模式下,STEP 7将自动产生局部变量地址(Address)。
代码段:对将要由PLC进行处理的块代码进行编程。
块属性:块属性包含了其它附加的信息,例如由系统输入的时间标志或路径。此外,也可输入相关详细资料。
临时变量的定义和使用
查看局部数据堆栈的占用
查看块所需字节数
定义形式参数
编写控制程序
编写逻辑块(FC和FB)程序时,可以用以下两种方式使用局部变量:
①使用变量名,此时变量名前加前缀“#”,以区别于在符号表中定义的符号地址。增量方式下,前缀会自动产生。
②直接使用局部变量的地址,这种方式只对背景数据块和L堆栈有效。
在调用FB块时,要说明其背景数据块。背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致。
今天就到这里吧,关注达达老师,每天进步一点点。
相关问答
平板电脑可以装PLC编程软件吗-ZOL问答
欧姆龙plc编程软件集成了CX-ProgrammerV9.5,能够为欧姆龙PLC编程提供全面的软件支持,本版本为最新版,全面支持32/64位WIN8系统,为多国语言版,支持简体中文。能...
松下lx3使用技巧有哪些呢?-懂得
1.用广角(24mm)距离被拍者1米左右,光圈2-3.5;2.人与背景尽量远,镜头离人物尽量近,光圈值尽量小(光圈尽量大),能用长焦尽量用长焦;3.没事多拍几张练...
松下lx3使用技巧有哪些呢?-130****7575的回答-懂得
按这个方法练习,积累经验,你就能拍出有虚化效果的图片;5.要用“光圈优先”,不管在那个焦距,光圈值取较小的一个(能用3.5的就不用4.0),当光圈在2.0的...
专业plc解密重点内容有哪些?
[回答]触摸屏在进行设计时,必须和PLC的有关程序中的参数或数据进行对应。所以必须对触摸屏和PLC程序进行协调设置、共同编程,这样才能在运行中读出实时数...
看见在那姿态奇特的古松下整理挑几的正是那个挑山工.(好像...
[最佳回答]我望着地方.我们爬上五松亭看见挑山工.
x051.请安排50台松下电视机投保全险,包括破损险和遭窃险事...
[最佳回答]参考翻译如下,欢迎一起探讨:1.请安排50台松下电视机投保全险,包括破损险和遭窃险事宜.1.Pleasearrangepurchasingtheinsuranceofallriskfo...
plc触摸屏解密具体需要注意什么?
[回答]西门子LOGO解密可解LOGO12/24RC/230RC/230Rco/24Rco(AC)等等西门子S7-300解密S7-300全系列解密软件,直接读出密码松下触摸屏解密可解...
我是松下相机怎么用相机往电脑QQ里传不上相?-189****2155...
你那个不是有内存卡吗把他取下来插在电脑上就行不过有的需要一个内存卡套直接把卡拿出来用读卡器就可以了
松下随身听维修-R6OJYdax的回答-懂得
咨询下当地的114,如果有机会去上海维修在福建路
松下电动剃须刀ES518电池怎么装-R19TpSS9U的回答-懂得
松下电动剃须刀ES518电池的位置在手柄底部,打开手柄底部的电池仓盖,将电池插入仓内,并确保电极极性正确安装。然后将仓盖盖好固定即可。注意电池仓...