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

相关文章

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils