PLC换热器温度和流量串级控制

更新时间:2024-04-13 09:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

第五章 换热器温度和冷水流量串级控制系统设计

5.1 工艺简介:

由图5-1可知,热水通过换热器中排管的外面,把热量传给排管内通过的冷水。 热水的出口温度可以通过改变支路 2 上的控制阀的开度来实现控制要求[11]。 引起热水出口温度变化的干扰有物料的流量,初温和压力等,其中最主要的干扰是冷水的流量

[12]

。热水从锅炉经泵 1 到换热器,再回到锅炉形成热水循环。冷水从大

水槽经泵 2 到换热器,再回到大水槽形成冷水循环。支路 1 和支路 2 中均有温度和流量变送器,可完成对热水温度和流量的测量变送[13]。

图5-1 换热器温度和流量串级控制

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

5.2 系统创建工程

创建一个新的工程,在这之前要进行编程前的准备工作,包括通信设置和组态。

5.2.1 新建工程

单击File>New…,新建一个工程项目,命名为wangli,类型默认Project。单击Browse…选择工程保存地址。单击OK,系统创建了一个名为wangli的新工程。

建立S7-300站。右键单击工程名wangli,单击Insert New Object>SIMATIC 300 Station.

5.2.2 设置通信

这里我使用的是S7-300 MPI电缆连接方式,因此选择PC Adapter,install.不需要其他接口。

图5-2 安装PG/PC通信接口窗口

设置或添加PC Adapter(MPI):PROPERTY 按钮Local Connection 属性页COM2,19200,其他参数不需要设置。

5.2.3 硬件组态和下装

打开工程中的Hardwork,从而进入HW CONFIG窗口。在HW CONFIG中插入机架,根据实验所用的设备型号组态硬件。如下表:

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

表5-1 硬件组态数据

模块 电源 CPU

模拟量输入输出

型号

PS-300>PS 307 2A

CPU-300>CPU313C-2DP>313-6CE01-0AB0 SM334> 334-0CE01-0AA0

SM334的输入输出地址为: AI地址:256-263 AO地址:256-259

5.3 编写程序

5.3.1 复制OB块和已有函数

首先打开libaries中的standard library,选择Orgnization Blocks.把OB1复制粘贴到当前工程中。

表5-2 OB1块的功能

中断类型 主程序扫描

组织块 OB1

默认优先级 1

备注

周期运行:

开始循环监控时间 输出到模块 从模块输入 执行程序

执行挂起的其他任务 回到开始,重新循环监控时间

5.3.2 符号和变量编辑

从资源管理器中选择S7 Program(1)中打开Symbols编辑,编辑全部输入输出相关变量的全局变量,以便使得程序具有很好的可读性。建立所有需要用到的全局变量,如下图:

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

图5-3 PID全局变量表

其中AI(SM334 模拟量输入),AO(SM334 模拟量输出),变量地址都是PIW,POW,的格式,这表示这些变量使用的是硬件地址,格式是16进制数。PIW表示输入,POW表示输出。

有了变量表,在程序中就可以直接调用全局变量的Symbol,来访问该硬件地址。例如在程序中调用AIO,它会自动指向PIW 256,也就是SM 334模拟量输入通道0的模拟量值。又比如在程序中写入一个1,它会自动指向Q124.0,也就是CPU的DI/DO模块的数字量输出通道0,该通道便会输出开关量1,也就是继电器开关闭合。如果该通道通过继电器切换控制着一个电磁阀,该电磁阀便会启动。

5.3.3 创建PID控制块

单击Blocks,进入里面的组织块OB1,进入编辑环境。要进行PID单回路控制的编程,需要添加PID块,在Libraries>standard library>PID control block>FB41 CONT_C ICONT,将其拖到代码区梯形图上即可添加PID模块。需要创建PID的背景数据块,PID数据所涉及的所有参数都存放在这个背景数据块中,可以通过在组态软件中控制这些参数。

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

图5-4 模块图

图5-5 PID的背景数据块内容

PLC的输入输出,手自动切换,参数,控制功能都能通过DB1中的数据进行控制。实际工程应用中,还需要增加手动自动切换控制。在手动时,SP跟随MV,MV等于MAN(手操作值),自动时MAN(手操作值)跟随。

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

图5-9 DB3中定义需要用到的变量

其中temp用于分隔SET_TURE,SET_FALSE。这两个符号如果没有外部更改,就总是固定一个TURE和一个FALSE,以便在程序中使用。程序中不能对函数的参数直接赋予值的。

返回工作区,打开OB1,开始编辑主程序。

? 将两路模拟量输入转换为0~100的实数,再赋值给MYDATA.AI0(即为DB3

数据块中的用户自定义变量,也可以表示为DB3.DBD0)和MYDATA.AI1。 ? PID运算程序FB41 CONT_C,同时产生DB1。

? 将PID运算程序FB41输出的控制量DB1.DBD72转换为5530~27648的word

字,输出给AI0。AI1直接由组态软件给DB3,从这里输出。

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

图5-10 OB1 程序内容

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

图OB35模块图

图 OB35模块图

图 FB41模块

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

5.3.6 FB41和PID控制

FB是需要背景数据块DB的函数块,数据在执行完函数后还需要保存的。在各种逻辑块中可以调用FB。FB可以用户自己编写,也可以调用西门子公司提供的各种库中的FB。

在standard library中的FB41,就是一个提供连续PID控制的函数,每个调用都指定其背景数据块,以便有不同的数据。

PID控制软件包里的功能块包括连续控制功能块CONT_C,步进控制功能块CONT_S以及具有脉冲调制功能的PULSEGEN。FB41就是CONT_C,提供连续模拟控制。

控制模块利用其所提供的全部功能可以实现一个纯软件控制器。循环扫描计算过程所需的全部数据存储在分配给FB的数据区里,这使得无限次调用FB编程可能。 1)PID控制的概念 :

PID控制软件包里的功能块包括连续控制功能块CONT_C,步进控制功能块CONT_S以及具有脉冲调制功能的PULSEGEN。

控制模块利用其所提供的全部功能可以实现一个纯软件控制器。循环扫描计算过程所需的全部数据存储在分配给FB的数据区里,这使得无限次调用FB变成可能。功能块PULSEGEN一般用来连接CONT_C,以使其可以产生提供给比例执行器的脉冲信号输出。 基本功能:

在功能块组成的控制器中,有一系列你可以通过设置使其有效或无效的子功能。除了实际采用PID算法的控制器外,还包括给定点值处理、过程变量处理以及调整操作值范围等功能。

2)用功能块FB41“CONT_C”实现连续控制 :

在SIMATIC S7 可编程控制器上,功能块FB41用来控制具有连续输入输出的技术过程。在参数设置过程中,可以通过参数设置来激活或取消激活PID控制的某些子功能来设计适应过程需要的控制器

可以将其作为一个给定点PID控制器,或者在多环路控制中作为串级、混合或比率控制器。控制器的算法是基于具有模拟输入信号的采样PID控制。如果扩展需要的话可以引入一个脉冲发生器,来产生具有脉宽调制的操作值输出,以提供给带有比例执行器的两级或三级步进控制器。

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

除了给定点和过程变量分支的功能外,FB自己就可以实现一个完整的具有连续操作值输出并且具有手动改变操作值功能的PID控制器,下面会找到各子功能的详细描述。

? 给定点分支:

给定点的值以浮点形式在SP_INT处输入。 ? 过程变量分支:

过程变量可以从外设直接输入到PV_PER或以浮点PV-IN形式输入,功能CRP_IN将从外设来的值PV-PER转化成范围在-100%~100%之间的浮点形式,根据下面的法则进行转换:

CRP_IN = PV_PER*100/27648

功能PV_NORM根据下面的法则标准化输出CRP_IN PV_NORM的输出 = ( CRP_IN的输出) * PV_FAC + PV_OFF PV_FAC和PV_OFF的默认值分别为1和0 3) 误差信号

误差是给定点和过程变量之间的差值。为了抑制由于控制量量化而引起的小扰动(例如,控制量由于其执行电子管的有限分辨率),可将死区功能DEADBAND运用在误差信号上。如果DEADB_W = 0,则死区就不起作用。 4) PID算法

此处PID算法是位置式的,比例、积分和微分作用并联并且可以分别激活或取消激活。这样就可以分别构造P、PI、PD以及PID控制器,纯比例控制器或纯微分控制也是可以的。 5)手动值

可以在手动和自动模式之间切换,在手动模式下,操作值可以由一个手动选择值来设定,积分器在内部设定为

LMN(操作值) - LMN_P(比例操作值) - DISV(扰动),

微分器设定为0并且在内部进行同步,这意味着当转换到自动模式后,不会引起操作值的突然改变。 6) 操作值

利用LMNLIMIT功能可以将操作值限定在所选的值范围内,输入值引起的输出超过界限时会在信号位上表现出来,功能LMN_NORM根据下面的公式标准化

基于PLC-S7300在A3000上实现换热器温度和流量串级控制系统设计

LMNLIMIT的输出

LMN=LMNLIMIT的输出×LMN_FAC+LMN_OFF LMN_FAC和LMN_OFF的默认值分别为1和0

操作值也可以直接输出到外设,功能CRP_OUT将浮点形式的值LMN根据下面的公式转化成能输出到外设式的值:

LMN_PER = LMN × 100/27648

5.4编译下装项目

首先使用PLC和MRES拨动开关进行复位。然后在manager窗口选择block,有机选择快捷菜单PLC>download。完成整个程序块的(包括system data,以及所有OB.FO.DB)的下载。下装前最好清楚CPU,然后重新下载。

5.5调试工程

调试很重要,首先在完成硬件组态时,进行硬件通道的及监控和修改。对硬件进行测试,数字量直接测试,模拟量把输出接到输入上,从而检测铜须是否正常,硬件是否正常。

接下来就是对程序逻辑进行测试。通过监控程序中的变量来了解程序的逻辑是否正常。

Step7主要提供了两种调试工程的方式:程序状态功能和变量表功能。 5.5.1 用程序状态功能调试程序

下装好程序后,连接PLC,将模式开关拨到RUN模式。打开OB1,单击monitor 如果通讯正常,则可以看到程序状态,用绿色连续线来表示状态满足,即有“能流”流过:用蓝色点状细线表示状态不满足,没有能流流过:用黑色连续表示状态未知。

5.5.2 用变量表调试程序

由于程序状态功能只能在屏幕上显示一小块程序,在调试较大的程序时,往往不能同时显示和调试某一部分所需的全部变量[14]。

本文来源:https://www.bwwdw.com/article/k1sp.html

Top