(1)函数(FC)介绍
①函数(FC)是用户编写的程序块,是不带存储器的代码块。由于没有可以存储块参数值的数据存储器,因此,调用函数时,必须给所有形参分配实参。
②FC里有一个局域变量表和块参数。局域变量表里有:Input(输入参数)、Output(输出参数)、InOut (输入/输出参数)、Temp(临时数据)、Return(返回值RET_VAL)。Input(输入参数)将数据传递到被调用的块中进行处理。Output(输出参数)是将结果传递到调用的块中。InOut(输入/输出参数)将数据传递到被调用的块中,在被调用的块中处理数据后,再将被调用的块中发送的结果存储在相同的变量中。Temp(临时数据)是块的本地数据,并且在处理块时将其存储在本地数据堆栈。关闭并完成处理后,临时数据就变得不再可访问。Return包含返回值RET_VAL。
(2)函数(FC)的应用
函数(FC)类似于VB语言中的子程序,用户可以将具有相同控制过程的程序编写在FC中,然后在主程序Main[OB1]中调用。创建函数的步骤是:先建立一个项目,再在TIA博途软件项目视图的项目树中选中“已经添加的设备”(如:PLC_1)→“程序块”一“添加新块”,即可弹出要插入函数的界面。以下用例1说明函数(FC)的应用。
【例1】用函数FC实现电动机的启停控制。
【解】①新建一个项目,本例为“启停控制(FC)”。在TIA博途软件项目视图的项目树中,选中并单击已经添加的设备“PLC_1”-“程序块”-“添加新块”,如图1所示,弹出添加块界面。
图1
②如图2所示,在“添加新块”界面中,选择创建块的类型为“函数”,再输入函数的名称(本例为启停控制),之后选择编程语言(本例为LAD),最后单击“确定”按钮,弹出函数的程序编辑器界面。
图2
③在“程序编辑器”中,输入如图3所示的程序,此程序能实现启停控制,再保存程序。
图3
④在TIA 博途软件项目视图的项目树中,双击“Main[OB1]”,打开主程序块“Main[OB1]”,选中新创建的函数“启停控制(FC1)”,并将其拖拽到程序编辑器中,如图4所示。至此,项目创建完成。
图4
【例2】用函数实现电动机的启停控制。
【解】本例的1、2步与例1相同。
③在TIA博途软件项目视图的项目树中,双击函数块“启停控制(FC1)”,打开函数,弹出“程序编辑器”界面,先选中Input(输入参数),新建参数“Start”和“Stopl”,数据类型为“Bool”。再选中InOut (输入/输出参数),新建参数“Motor”,数据类型为“Bool”,如图5所示。最后在程序段1中输入程序.
图5
如图6所示,注意参数前都要加“#”。
图6
④在TIA 博途软件项目视图的项目树中,双击“Main[OBI]”,打开主程序块“Main[OB1]”,选中新创建的函数“启停控制(FC1)”,并将其拖拽到程序编辑器中,如图7所示。
图7
如果将整个项目下载到PLC中,就可以实现“启停控制”。这个程序的函数“FC1”的调用比较灵活,与例1不同,启动不只限于I0.0,停止不只限于I0.1,在编写程序时,可以灵活分配应用。
【例3】某系统采集一路模拟量(温度),温度的范围是0~200℃,要求对温度值进行数字滤波,算法是:把最新的三次采样数值相加,取平均值,即是最终温度值。
【解】①数字滤波的程序是函数FC1,先创建一个空的函数,打开函数,并创建输入数“GatherV”,就是采样输入值;创建输出参数“ResultV”,就是数字滤波的结果;创建输入输出参数“LastV”(上一个数值)、“LastesV”(上上一个数值)和“EarlyV”(当前数值)输入输出参数既可以在方框的输入端,也可以在方框的输出端,应用比较灵活;创建临时变量参数“Templ”,临时变量参数既可以在方框的输入端,也可以在方框的输出端,应用也比较灵活,如图8所示。
图8
②在FC1中,编写滤波梯形图程序,如下图9所示:
图9
③在Main[OB1]中,编写梯形图闯红灯徐如下10所示:
图10
审核编辑:刘清
-
存储器
+关注
关注
38文章
7534浏览量
164486 -
PLC控制
+关注
关注
9文章
251浏览量
27399 -
SIMATIC
+关注
关注
1文章
231浏览量
15844 -
数据存储器
+关注
关注
1文章
69浏览量
17823 -
S7-1500
+关注
关注
3文章
301浏览量
6543
原文标题:电工知识—SIMATIC S7-1500 函数(FC)及其应用(2)
文章出处:【微信号:设备原理与维修俱乐部,微信公众号:设备原理与维修俱乐部】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
SIMATIC S7-1500 PLC之间的OUC通信及其应用
![<b class='flag-5'>SIMATIC</b> <b class='flag-5'>S7-1500</b> PLC之间的OUC通信<b class='flag-5'>及其</b>应用](https://file1.elecfans.com/web2/M00/B0/DF/wKgZomVYfoyAB08EAAAargxllck273.png)
基于S7-1500、ET 200MP的自动化系统
![基于<b class='flag-5'>S7-1500</b>、ET 200MP的自动化系统](https://file.elecfans.com/web2/M00/49/E0/pYYBAGKhvG6AW1FAAAAWBjSKorA357.jpg)
SIMATIC S7-1500 PLC用户手册
S7-1500和ET200MP及ET200SP的计数测量和位置检测详细说明
![<b class='flag-5'>S7-1500</b>和ET200MP及ET200SP的计数测量和位置检测详细说明](https://file.elecfans.com/web1/M00/C8/2F/pIYBAF9tm9qAfrWTAACCXP-Gj_g916.png)
西门子SIMATIC S7-1500控制器系列的安装接线图完整版
电工知识—SIMATIC S7-1500 PLC的常用模块
SIMATIC S7-1500 PLC信号模块(2)
WinCC与 S7-1200/S7-1500 PLC之间的通信解析
SIMATIC S7-1500 PLC之间的OUC通信
如何估算S7-1500 CPU的装载存储区在SIMATIC存储卡上的大小?
![如何估算<b class='flag-5'>S7-1500</b> CPU的装载存储区在<b class='flag-5'>SIMATIC</b>存储卡上的大小?](https://file1.elecfans.com/web2/M00/BF/A9/wKgaomW3BzCAMirzAAAuRNUNhMI080.png)
WinCC与S7-1500 PROFINET通信技术
![WinCC与<b class='flag-5'>S7-1500</b> PROFINET通信技术](https://file1.elecfans.com/web2/M00/C8/F4/wKgaomYYk6GAHCO4AAAggW3LLL4645.png)
评论