PLC_博图系列☞FBFC

头图

PLC_博图系列☞FB&FC

文章目录

  • PLC_博图系列☞FB&FC
    • 背景介绍
    • FB&FC
    • 与C++ 类比
    • 博图中定义
      • 函数块 (FB)
      • 函数 (FC)

关键字: PLC西门子博图FC FB

背景介绍

这是一篇关于PLC编程的文章,特别是关于西门子的博图软件。我并不是专业的PLC编程人员,也不懂电路,所以如果你希望从这里学习PLC编程技术,可能会有些失望。然而,因为工作需要,我开始了解PLC编程,特别是西门子的博图软件,并记录了这些经验。随着我国工业4.0的推进,相信会有更多的人从事类似的工作。如果这篇文章能对你有所帮助,欢迎点赞关注我❥(^_-)。

FB&FC

PLC 中 FB 和 FC 是两种不同的程序块,它们都可以实现子程序的功能,但是有以下几点区别:

  • FB 是功能块,带有背景数据块(DB),可以存储自身的数据和状态。FC 是功能,相当于函数,没有属于自己的背景数据块,需要使用全局数据块(GDB)或 M 区来保存数据。
  • FB 的参数传递是按值传递,即每次调用时,FB 的输入输出管脚对应不同的背景 DB 地址。FC 的参数传递是按引用传递,即每次调用时,FC 的输入输出管脚对应实际的地址,而不是数据本身。
  • FB 的局部变量有 STAT 和 TEMP 两种类型,STAT 是静态变量,可以在 PLC 运行期间保持不变,TEMP 是临时变量,只在程序块执行时有效。FC 由于没有自己的存储区,因此不具有 STAT,TEMP 只能在每个扫描周期开始时赋值,不能用于自锁或上下沿检测。

FB 和 FC 的优缺点如下:

  • FB 的优点是易于移植,对于相同控制逻辑不同参数的被控对象,只要使用不同的背景 DB,同一个 FB 块就可以方便地使用。FB 的缺点是占用更多的存储资源,需要为每个 FB 分配一个背景 DB。
  • FC 的优点是小巧灵活,对于非多次调用的程序更易理解,不占用额外的存储资源。FC 的缺点是不易于修改参数,需要确保每次调用时使用的地址不重复,否则会导致数据混乱。

与C++ 类比

因为我就会那么一丢丢C++,所以只能用C++ 的思想去类比一下。

  • PLC 中的 FB 类似于 C++ 中的 (class),它可以定义自己的数据成员和成员函数,并且可以通过不同的实例化对象来使用不同的数据和状态。
  • PLC 中的 FC 类似于 C++ 中的 全局函数(global function),它可以定义输入输出参数,但是不能保存自己的数据和状态,需要使用全局变量或者传递引用来实现数据的共享和修改。

博图中定义

函数块 (FB)

定义

函数块是一种代码块,它将输入、输出和输入/输出参数永久地存储在背景数据块中,从而在执行块之后,这些值依然有效、。 所以函数块也称为“有存储器”的块。

函数块也可以使用临时变量。 临时变量并不存储在背景数据块中,而用于一个循环。

应用

函数块包含总是在其它代码块调用该函数块时执行的子例程。 可以在程序中的不同位置多次调用同一个函数块。 因此,函数块简化了对重复发生的函数的编程。

函数块的实例

函数块的调用称为实例。 函数块的每个实例都需要一个背景数据块;其中包含函数块中所声明的形参的实例特定值。

函数块可以将实例特定的数据存储在自己的背景数据块中,也可以存储在调用块的背景数据块中。

访问模式

S7-1200 和 S7-1500 提供两种不同的背景数据块访问选项,可在调用函数块时分配给函数块:

  • 可优化访问的数据块

    可优化访问的数据块无固定定义的存储器结构。 在声明中,数据元素仅包含一个符号名,因此在块中没有固定的地址。

  • 可一般访问的数据块(与 S7-300/400 兼容)

    可一般访问的数据块具有固定的存储器结构。 声明元素在声明中包含一个符号名,并且在块中有固定地址。

函数 (FC)

**定义 **

函数(FC) 是不带存储器的代码块。 由于没有可以存储块参数值的数据存储器。 因此,调用函数时,必须给所有形参分配实参。
函数可以使用全局数据块永久性存储数据。

应用

函数包含一个程序,在其它代码块调用该函数时将执行此程序。 例如,可以将函数用于下列目的:

  • 将函数值返回给调用块,例如,数学函数
  • 执行工艺功能,例如,通过位逻辑运算进行单个的控制

可以在程序中的不同位置多次调用同一个函数。 因此,函数块简化了对重复发生的函数的编程。


博客签名2021

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/682345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新项目,从0到1,SpringBoot+Vue.js权限管理系统,拿去做毕设

大家好,我是 jonssonyan 最近把以前做的权限管理系统重新整理了一下(将一些不规范的地方规范了一下,并且在关键地方写了注释),代码全部开源,这个项目是以现在主流的前后端分离模式开发的,包含前…

面试经典150题——串联所有单词的子串(困难)

"Opportunities dont happen, you create them." ​ - Chris Grosser 1. 题目描述 2. 题目分析与解析 2.1 思路一——暴力求解 遇见这种可能刚开始没什么思路的问题,先试着按照人的思维来求解该题目。对于一个人来讲,我想要找到 s 字符串中…

AJAXJSON入门篇

AJAX&JSON 概念:AJAX(Asynchronous JavaScript And XML):异步的JavaScript和XML AJAX作用: 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据 使用了AJAX和服务器进行通信,就可以使用H…

基于servlet编写的表白墙项目(后端代码 含数据库操作)

前提准备 项目前端代码和效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…

C语言——枚举类型

&#x1f4dd;前言&#xff1a; 在之前的文章中我们已经讲解了自定义类型中的结构体类型和联合体类型&#xff0c;现在我们再充分学习一下C语言中的枚举类型&#xff1a; 1&#xff0c;什么是枚举类型 2&#xff0c;枚举类型的定义和变量的声明 3&#xff0c;对变量进行赋值 &a…

455. Assign Cookies(分发饼干)

题目描述 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个…

OpenCompass 大模型评测

在浦语的大模型评测教程课程中&#xff0c;你可能需要完成的任务包括&#xff1a; 先修知识准备&#xff1a;这里你需要理解并掌握深度学习、NLP和PyTorch等相关知识。因为这些都是进行大模型评测的基础。模型理解&#xff1a;你需要对你要评测的模型有一个全面的理解&#xf…

FPGA实现ISP用于无人车、无人机配送的方案调研

查到一个always 奥唯思公司做的用FPGA实现ISP的方案&#xff0c;采用易灵思钛金16nm的FPGA Ti60F225&#xff0c;通过MIPI CSI RX采集图像传感器的数据&#xff0c;在FPGA内部经过一系列复杂的ISP运算后&#xff0c;再通过MIPI CSI TX将图像数据发送给后端。 一套完整的ISP&a…

【算法分析与设计】环形链表

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次…

实景剧本杀小程序:创新体验,沉浸式推理乐趣

随着科技的飞速发展&#xff0c;人们对于娱乐方式的追求也在不断升级。传统的桌面剧本杀游戏已经不能满足玩家的需求&#xff0c;他们渴望更加真实、刺激的游戏体验。正是这种需求推动下&#xff0c;实景剧本杀小程序应运而生&#xff0c;为玩家带来前所未有的推理乐趣。 实景…

【基础】第K大与第K小数

说明 给定一个长度为N(0< n< 10000)的序列&#xff0c;保证每一个序列中的数字a[i]是正整数 &#xff0c;编程要求求出整个序列中第k大的数字减去第k小的数字的值m&#xff0c;并判断m是否为质数。(0< k< n) 输入数据 第一行为2个数n&#xff0c;k&#xff08;…

ChatGPT高效提问—prompt常见用法(续篇八)

ChatGPT高效提问—prompt常见用法(续篇八) 1.1 对抗 ​ 对抗是一个重要主题,深入探讨了大型语言模型(LLM)的安全风险。它不仅反映了人们对LLM可能出现的风险和安全问题的理解,而且能够帮助我们识别这些潜在的风险,并通过切实可行的技术手段来规避。 ​ 截至目前,网络…

【Android】使用Android Studio打包APK文件

文章目录 1. 新建项目2. 打包生成APK3. 安装APK 1. 新建项目 打包APK之前&#xff0c;首先需要新建项目&#xff0c;有基础的可以跳过。 无基础的可以参考&#xff1a;使用Android Studio运行Hello World项目 2. 打包生成APK 1.找到Build -> Generate Signed Bundle or …

AMD FPGA设计优化宝典笔记(4)复位桥

高亚军老师的这本书《AMD FPGA设计优化宝典》&#xff0c;他主要讲了两个东西&#xff1a; 第一个东西是代码的良好风格&#xff1b; 第二个是设计收敛等的本质。 这个书的结构是一个总论&#xff0c;加上另外的9个优化&#xff0c;包含的有&#xff1a;时钟网络、组合逻辑、触…

机器视觉范例及深入

1.做一个魔法棒吧 获得了物体的坐标后&#xff0c;可以用它来完成一些有趣的事情&#xff0c;例如把物体当作“笔”在图像 上绘制出图样。我们可以选择一种颜色的黏土&#xff0c;将其固定在任意棒状物&#xff08;例如铅笔&#xff09;的一端 并揉成球形&#xff0c;做一个 …

函数求导法则【高数笔记】

【分类】 1. 四则运算求导 2. 复合运算求导 3. 整体思想求导 #整体思想求导本质是运用复合运算求导&#xff0c;只不过是对复合运算求导的一种精炼 #无论是具体函数还是抽象函数求导&#xff0c;方法是一致的 【四则运算求导】 加&#xff0c;减&#xff0c;乘&#xff0c;除&a…

Java基于微信小程序的电子竞技信息交流平台

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

Promise与async await的作用及应用场景

在Web前端开发中&#xff0c;处理异步操作是非常常见的需求。为了解决这个问题&#xff0c;ES6引入了Promise和后续的async await。本文将介绍Promise和async await的作用&#xff0c;以及在实际开发中的应用场景。 一、Promise的作用及应用场景 Promise是一个表示异步操作最…

【程序设计竞赛】C++与Java的细节优化

必须强调下&#xff0c;以下的任意一种优化&#xff0c;都应该是在本身采用的算法没有任何问题情况下的“锦上添花”&#xff0c;而不是“雪中送炭”。 如果下面的说法存在误导&#xff0c;请专业大佬评论指正 读写优化 C读写优化——解除流绑定 在ACM里&#xff0c;经常出现…