研选课堂
HOME
研选课堂
正文内容
1200plc的FB编程 S7-1200 PLC FB和FC的建立和使用
发布时间 : 2024-10-11
作者 : 小编
访问数量 : 23
扫码分享至微信

S7-1200 PLC FB和FC的建立和使用

之前我们了解过S7-1200 PLC的程序结构,分为OB块、FB块、FC块、DB块,OB1 相当于主程序,FB/FC相当于子程序。

在S7-200/200 SMART PLC中,子程序是需要被调用才执行的,在S7-1200 PLC中也是一样的,我们的FB块或FC块需要在OB1中调用后才执行,当然FB中也可以调用FC,或者FC中也可以调用FB,这就是嵌套调用。对于S7-1200 PLC,最多可以支持16层的嵌套调用。

FB或FC在使用时,都可以使用带形式参数与不带形式参数的FB/FC,带参数的FB/FC可以实现重复调用,也很方便进行程序的移植。这篇文章就不再重复基础,我们重点介绍一下带参数的FB和FC如何建立以及如何使用。

1、函数FC的生成和调用

FC是不含存储区的代码块,主要是用于执行特定的运算,或者是使用位逻辑指令执行的独立控制,FC可以在程序的不同位置进行多次调用,对于重复发生的任务或动作中利用FC可以实现简化程序的效果。FC的建立可以建立带形式参数的FC,也可以建立不带形式参数的FC。我们需要知道的是FC是没有相关的背景数据块的,没有可以存储参数值的寄存器,所以我们在调用函数FC时,必须要给所有形参分配实参哦。

添加函数FC的方法如下:

在项目树中找到“PLC_1”文件夹,双击“添加新块”,然后选择FC块,就可以新增一个FC块了,我们可以对这个块进行命名,选择块中程序的设计语言,以及分配这个块的编号,当然这个块编号可以系统自动分配,也可以我们自己手动分配。

我们要建立带形式参数的FC,还需要在添加的FC块接口区中建立相应的变量,这些变量我们就称之为形式参数。

我们在程序接口区定义变量。在FC的接口参数中主要有五种变量,分别是INPUT、OUTPUT、INOUT、TEMP和常量Constant。

如下图,我们建立好变量并编写FC内部的程序,最后在OB1中调用这个数据运算的FC块,我们可以看到在调用时是有分配实参的,是吧?

2、函数块FB的生成和调用

FB块跟FC块相比,不同的地方在于我们在调用函数块FB时是需要为它分配背景DB块的,主要用于存储块的参数。因为FB在调用时会分配对应的DB块,所以对于带形式参数的FB,在调用时可以不对FB上的管脚赋予实参。

添加函数块FB的方法如下:

在项目树中找到“PLC_1”文件夹,双击“添加新块”,然后选择FB块,就可以新增一个FB块了,我们可以对这个块进行命名,选择块中程序的设计语言,以及分配这个块的编号,当然这个块编号可以系统自动分配,也可以我们自己手动分配。

我们要建立带形式参数的FB块,同样的需要建立相应的变量,在FB的接口参数中主要有六种变量,分别是INPUT、OUTPUT、INOUT、TEMP、Constant和Static变量,我们可以看到这相对比于FC块多增了一个静态变量Static。

对于静态变量可以用于存储前一个扫描周期的运算结果,如果前一扫描周期的运算结果,在下次运算还需要使用时,就可以把这个变量建立为静态变量Static。

下图是我们创建接口区的变量,然后编写FB内部的程序,然后在OB1中进行调用,调用时使用单个实例DB的情况。

以上就是FB和FC的建立和使用的方法,你掌握了吗?这也是我们编程中会应用的比较多的功能,希望大家还是可以掌握一下哦!

下一篇文章我们讲解一个实际的例子——电机启动和调速的控制,会利用FB和FC的编写方法分别给大家详细讲解,欢迎大家继续关注哦~

(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)

西门子S7-1200,如何在FB块中使用操作定时器?

在上一篇文章介绍了S7-1200 PLC的定时器,以及介绍了S7-1200 PLC与S7-200/200 SMART PLC的定时器的分类的不同及区别。

S7-1200 PLC的定时器一共有四种类型,包括脉冲定时器TP、接通延时定时器TON、关断延时定时器TOF、保持型接通延时定时器TONR。

在这篇文章就讲一个TON及TOF定时器的案例,来让大家熟悉指令的用法,以及如何在软件中进行添加和使用。

使用定时器有过多背景DB块怎么办?在FB块中使用定时器如何操作?我们带着这两个问题去学习吧。

假设我们做电机延时启停的控制,要求控制两台电机运行,按下启动按钮后,1号电机启动,延时10秒后,2号电机启动,当按下停止按钮,先停2号电机,延时10秒后再停1号电机。

1、首先创建一个变量表,如下图所示。

2、然后编写程序,注意在调用定时器时会自动提示创建背景DB块,指令上方可以看到IEC_TIMER_0_DB和IEC_TIMER_0_DB_1分别是背景DB1和DB2。

我们知道S7-1200 PLC的每一个定时器都是一个函数块,每个定时器都使用16字节的IEC_Timer数据类型的DB结构来存储指定的定时器数据。

那么我们每调用一个定时器指令就需要给它分配一个背景DB块,当程序中使用的定时器指令较多时,系统会生成多个DB块。

那我们如果想减少程序块中使用定时器指令时生成过多的背景DB块,可以使用IEC_TIMER数据类型的变量来替代定时器的背景DB块。

我们可以建立一个全局DB块,比如创建名称为“DATA”,在全局DB中建立变量名称为TON_DB和TOF_DB,数据类型为IEC_TIMER的变量,使用该变量来代替定时器的背景DB。

然后在定时器指令中的变量名称改成 “DATA”.TON_DB和“DATA”.TOF_DB就可以了。

除此之外,如果定时器指令是在FB块中使用的,也可以在给定时器分配背景DB时选择多重实例DB,这样定时器指令上的背景DB会自动在FB块的静态变量中生成一个Static数据类型的IEC_TIMER的变量。具体操作步骤如下:

1、添加一个FB块,命名为电机控制块。

2、设置好变量名称和数据类型。

3、编写FB块的内部程序,采用变量名称编程。

4、FB块编好之后,在OB1中进行调用,注意调用的时候会提示要分配DB块,分配好之后输入地址即可。

以上就是在博途软件中添加定时器的使用的步骤,以及相关的问题包括有过多背景DB时如何解决,在FB块中使用定时器指令的情况如何操作等等,这些操作方法还是挺有用的哦,希望大家可以掌握~

技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究

相关问答

西门子1200模拟量输入编程实例?

以下是使用西门子S7-1200PLC进行模拟量输入编程的示例代码:1.配置模拟量输入模块在S7-1200PLC的硬件配置中,添加模拟量输入模块,并配置其参数。例如,如...

1200plc设置指令?

众所周知,S7-1200不支持Graph语言,但这种语言又很适合顺序逻辑控制,按照工艺的步序,一步步编程即可,为了解决S7-1200在Graph方面的弊端,我们可以通过CASEO...

西门子1200plc编程函数块能多次调用吗?

没用1200,不过正常来看对FB和FC的调用都是可以多次的,这些在300系列中都是允许的。没用1200,不过正常来看对FB和FC的调用都是可以多次的,这些在300系列中都是...

s7-1200plc组织块分为哪三类?

S7-1200CPU提供了不同类型的程序块,主要分为组织块(OB)、函数(FC)函数块(FB)数据块(DB)组织块:由操作系统调用,决定程序的结构函数(功能)块:具有...S7-1200...

西门子1200plc临时变量?

其实使用临时变量只要注意一点就可以了,即先赋值后使用,因为西门子在调用完FB,FC后并不回收临时变量资源,所以可能被其他FB,FC修改数值。其实使用临时变量只...

PLC的手动自动程序是怎么写的?

其实呢,基本上的写法是这样的。方法1:使用主控指令(有些PLC厂家叫做互锁指令)来区分自动段还是手动段。方法2:使用跳转指令来跳转到自动段和手动段的程序...

著名泼妇贾南风干过哪些荒唐事儿?

她本是代替妹妹出嫁,却改变了中国三百年历史。说到历史上可以权倾朝野的女性来来回回也就那么几个,首当其冲的当然是我们引以为豪的女皇陛下武则天,还有奢靡...

1200plc怎么设置中间变量断电保持?

在1200plc中,要设置中间变量的断电保持,需要使用非易失性存储器(NVRAM)。NVRAM是一种具有电源断电保持功能的存储器,在断电后可以保持数据不丢失。将中间变量...

s7-1200程序块怎样调用?

在S7-1200编程中,程序块可以通过调用指令进行调用。首先,你需要创建一个程序块,并为其命名。然后,在主程序中使用CALL指令来调用该程序块。调用指令需要指定...

某修路队计划修一条长1200米的路.第一周修了全长的15%,第二...

[最佳回答]1200×(15%-13%)=1200×2%=24(米)答:第一周比第二周多修24米.

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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