西门子S7-300PLC,我们可以使用模块FB41 来实现PID 控制

2024-06-07 08:08

本文主要是介绍西门子S7-300PLC,我们可以使用模块FB41 来实现PID 控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

经过学习西门子S7-300PLC,我们可以使用模块FB41 来实现PID 控制,FB41 就相当
于我们常规仪表里的控制器,既然是PID 控制器就应该能够设定P、I、D 参数。即:比例度、
积分时间、微分时间。常规仪表的面板上可以更改PID 参数,又有手动/自动切换按钮等。
今天我们要做的就是使用S7-300PLC 的FB41 来代替常规仪表,如何使用FB41 来实现
PID 控制的呢??
FB41 是一个功能块,它所能实现的功能(PID)已经由专业人员设计好,我们只要调用
它,并根据我们的需要来更改相应的参数即可使用。所以我们不用理会FB41 是如何实现比
例运算、积分运算、微分运算等等这些问题,只需要会调用就可以了。
现在我们已经知道FB41 就相当于常规仪表里的一个控制器了,那么我们是如何使用FB4
1 并给它设置相应的参数呢??
FB41 相当于一个子程序,它是用来实现PID 运算的,我们只需要每隔一段时间去调用这
一“子程序”就可以实现PID 控制。所以我们在OB35 里调用FB41 就可以了,调用的频率可
以在属性里面设置。
我们是在OB35 里调用FB41 的所以在OB35 里可以看到FB41 的端口。因此可以直接在
这些端口上直接设参数。

到这里有人会问,既然可以在OB35 里面可以直接给FB41 端口赋参数,为什么还要背景
数据块DB 呢???
其实PLC 在运行过程中会先检查,用户有没有在OB35 里给FB41 的端口设参数,如果有
就直接使用端口上的参数,如果没有就到背景数据表里面去取参数。
所以我们可以在两个地方设置参数,在数据表里面参数只能是一个固定值,不能是一个变量,
所以当程序
下载到PLC 之后就不能更改数据表里面的参数了。
给端口赋参数是一个变量,变量里面存有参数,当我们需要改变参数只需要改变相应的变量
就只以了。
结合两种方法的优缺点,我们可以同时在两个地方设参数,有些参数不需要经常改变的,
我们就直接在DB 里面设定。要经常改变的参数就在FB41 的端口上设定。

 

 

 

 

这篇关于西门子S7-300PLC,我们可以使用模块FB41 来实现PID 控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

PyQt6/PySide6中QTableView类的实现

《PyQt6/PySide6中QTableView类的实现》本文主要介绍了PyQt6/PySide6中QTableView类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录1. 基本概念2. 创建 QTableView 实例3. QTableView 的常用属性和方法

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

PyQt6/PySide6中QTreeView类的实现

《PyQt6/PySide6中QTreeView类的实现》QTreeView是PyQt6或PySide6库中用于显示分层数据的控件,本文主要介绍了PyQt6/PySide6中QTreeView类的实现... 目录1. 基本概念2. 创建 QTreeView 实例3. QTreeView 的常用属性和方法属性