PLC的FC与FB模块程序的功能解析

2024-03-11 05:28
文章标签 模块 程序 功能 解析 plc fb fc

本文主要是介绍PLC的FC与FB模块程序的功能解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前文讲了在西门子系列的PLC中四个程序模块的描述,从S7-1200PLC开始就有FC和FB程序块了,但在使用的时候,一些使用者还是不好理解,以至于不知道该如何选择。今天,我们就用大白话的方式给大家讲解FC与FB的功能。

1、FC与FB的作用

那么软件中的FC和FB功能与这个“餐馆”非常类似。我们把“输入数据”给到FC或者FC程序块,然后程序块将数据加工,得到了“输出数据”。这个过程我们把“输入数据”比作“食材”,把“代码”比作“厨师”,把“输出数据”比作“美味佳肴”。

2、FC与FB的区别

如果我们把FC和FB都比作餐馆的话,那它们的区别在哪里呢?根据下图,分别有“A餐馆”和“B餐馆”,A餐馆没有储藏室,所以A餐馆的厨师要把食材从储藏室拿出来进行加工,当加工完了,成为了“美味佳肴”之后,把这道“美味佳肴”放到“储藏室”去,然后当做菜量比较大,一旦多了起来,每次取食材,端菜放进储藏室要来回折返好多次,这就比较麻烦了。并且这个储藏室也是大家公用的,B餐馆也可以采用类似的方法进行菜品加工。储藏室就是“共享DB或者位存储器”。

B餐馆的话,有专门的储藏室,所以它就不需要折返去公用的储藏室去拿食材了。并且每新开一家B餐馆都自带储藏室,这样话就非常的方便了。B储藏室就类似于程序中的“背景DB”。

3、FC函数

FC是什么呢?函数 (FC) 是不含存储区的代码块。通过函数可在用户程序中传送参数。FB或FC在使用时,都可以使用带形式参数与不带形式参数的FB/FC,带参数的FB/FC可以实现重复调用。

带形式参数与不带形式参数的程序块有什么区别呢?我们还是以餐馆的形式举例。不带形式参数的FC:如图3所示,有两家“FC餐馆”,它们每天做的菜只能是固定的,不能根据不同的菜单而做菜。如果要做出不同的菜的话,只能再开一家餐馆,这种就是不带参数的FC程序。这种方式和我们在OB1主程序块中编程基本上一样(使用的都是全局变量),如图4所示。但是这种不带参数的FC编程的话,需要注意是一些状态数据的值,否则可能会造成数据错误。

比如程序,如图5,当“FC1风机控制”程序块中的“Q0.4”自锁了,然后断开“OB1块”中的“M0.0”,这个时候的Q0.4是不会为“0”的,它还保持为“1”的状态。这个就是相当于我们厨师做好了菜,然后把门关了,菜仍然是在那里。如果是先把“Q0.4”断开了,再把“M0.0”断开,这个时候的“Q0.4”就是为“0”了。

FC编程控制

OB1调用

既然我们说了不带参数的FC就是不能根据菜单来做菜就很不方便,所以就用带参数的FC来解决这个问题。带参数的FC如图6所示。其中第一个FC3程序中的“I0.0” “I0.1” “IQ0.0”和第二FC3程序“I0.2”“I0.3”“Q0.1”这些就是不同的菜单,根据不同的输入菜单就可以很方便的做好菜。

4、带参数的FC

要编写带参数的FC程序,需要先定义一些接口数据。其中接口类型主要分为5种,如图7所示。

接口名称读写访问描述
Input只读调用函数时,将用户程序数据传递到FC中,实参可以为常数
Output读写调用函数时,将FC执行结果传递到用户程序中,实参不能为常数
intOut读写接收数据后进行运算,然后将执行结果返回,实参不能为常数
Temp读写仅在FC调用时生效,用于存储临时中间结果的变量
Content只读声明常量符号名后,FC中可以使用符号名代替常量

①带参数的FC编程示例(起保停程序)如图8:

使用带参数FC编写星三角启动程序,如图9和图10

这篇关于PLC的FC与FB模块程序的功能解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796784

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络