直播课堂
HOME
直播课堂
正文内容
从零开始学plc编程2 从零开始学PLC之逻辑块(FC和FB)的结构及编程
发布时间 : 2024-11-24
作者 : 小编
访问数量 : 23
扫码分享至微信

从零开始学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编程?

学习PLC编程需要掌握一些基础知识,例如电路原理、数字电子技术、自动控制原理等。如果您对这些基础知识还不熟悉,建议您先学习这些知识。

一旦您掌握了这些基础知识,可以考虑以下步骤来学习PLC编程:

了解PLC的基本概念:PLC是一种可编程逻辑控制器,用于自动化控制和监视过程。了解PLC的基本概念可以让您更好地理解PLC编程。

学习PLC编程语言:PLC编程语言包括Ladder Diagram(梯形图)、Function Block Diagram(函数块图)等。可以通过阅读PLC编程手册或参加培训课程来学习这些语言。

学习PLC编程软件:不同的PLC品牌有不同的编程软件。可以通过下载相应的软件来学习PLC编程。例如西门子公司的编程软件为STEP 7,欧姆龙公司的编程软件为CX-One等。

实践PLC编程:通过实际操作PLC编程软件和PLC硬件,编写一些简单的程序并进行调试和运行,可以更好地理解PLC编程的实际应用。

学习PLC应用案例:学习PLC应用案例可以让您更好地了解PLC在自动化控制中的应用,从而更好地掌握PLC编程。

总之,学习PLC编程需要掌握一些基础知识,并且需要不断实践和学习,建议您可以通过参加培训课程或向有经验的人请教来加速学习。

刚好我这里有资料需要的可以来私我

相关问答

零基础怎么学PLC编程?

学习PLC编程,需要从以下几个方面入手:学习PLC基础知识,包括PLC的组成、工作原理、常见元器件等;学习PLC编程语言,包括指令集、程序结构、变量类型等;了...

想自学plc编程,有哪些自学的网站视频什么的能分享下?

建议你在网上参加“技成培训网”学习PLC;他们有资深的高级电气工程师,有从事工业自动化控制多年的理论和实际工作经验。对于教学的视频课程均以通俗易懂的语言...

如何自学电路设计和PLC编程?

你需要学电路原理、电力系统自动化、电力系统继电保护、模拟电子技术基础、数字电子技术基础、电机学、高电压技术、电力系统分析、电磁场与电磁波、单片机技...

维修电工想学PLC编程,有什么好的授课视频推荐?

我在上个世纪八十年代就学过一点点计算机编程教学,而对于PLC编程方面有许多,可以分那些品牌的电子产品或那些领域的编程视频,可以根据你要选择的工作领域而定...

plc编程入门教程?

步骤/方式1把星--三角起动主线路图设计出来,用到的怎么型号的交流接触器。步骤/方式2星--三角起动主线路图设计出来以后,就可以把实物接触器线路接好,等待...

PLC编程入门怎么学?

1、养成良好的兴趣既然都对PLC编程没有兴趣,那怎么可能学好呢。因此可以把编程当成一项趣味的智力游戏,这样就会促使你有足够及毅力耐心去完成编程。2.PLC学...

plc编程入门怎么学?

1、养成良好的兴趣既然都对PLC编程没有兴趣,那怎么可能学好呢。因此可以把编程当成一项趣味的智力游戏,这样就会促使你有足够及毅力耐心去完成编程。2.PLC学...

plc编程入门怎么学?

1、养成良好的兴趣既然都对PLC编程没有兴趣,那怎么可能学好呢。因此可以把编程当成一项趣味的智力游戏,这样就会促使你有足够及毅力耐心去完成编程。2.PLC学...

初中文化能学会PLC编程吗?

初中文化可以学会PLC编程。PLC编程对学历没有要求,有初中学历也可以学习,并且现在很多四五十岁的人都在从零开始学习。学习PLC编程之前最好先学习计算机基础...

如何学习PLC?

如何学习PLC我来分享一下之前自己学习PLC的经历。读书的时候没有接触过PLC实物,看看书了解了一下梯形图。但具体怎么样,系统架构和工作原理怎样都不懂。后来参...

 十二属相的排序怎么排的  连接扣件 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部