PLC换热器温度和流量串级控制课案.docx
- 文档编号:27486485
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:18
- 大小:431.69KB
PLC换热器温度和流量串级控制课案.docx
《PLC换热器温度和流量串级控制课案.docx》由会员分享,可在线阅读,更多相关《PLC换热器温度和流量串级控制课案.docx(18页珍藏版)》请在冰豆网上搜索。
PLC换热器温度和流量串级控制课案
第五章换热器温度和冷水流量串级控制系统设计
5.1工艺简介:
由图5-1可知,热水通过换热器中排管的外面,把热量传给排管内通过的冷水。
热水的出口温度可以通过改变支路2上的控制阀的开度来实现控制要求[11]。
引起热水出口温度变化的干扰有物料的流量,初温和压力等,其中最主要的干扰是冷水的流量[12]。
热水从锅炉经泵1到换热器,再回到锅炉形成热水循环。
冷水从大水槽经泵2到换热器,再回到大水槽形成冷水循环。
支路1和支路2中均有温度和流量变送器,可完成对热水温度和流量的测量变送[13]。
图5-1换热器温度和流量串级控制
5.2系统创建工程
创建一个新的工程,在这之前要进行编程前的准备工作,包括通信设置和组态。
5.2.1新建工程
单击File>New…,新建一个工程项目,命名为wangli,类型默认Project。
单击Browse…选择工程保存地址。
单击OK,系统创建了一个名为wangli的新工程。
建立S7-300站。
右键单击工程名wangli,单击InsertNewObject>SIMATIC300Station.
5.2.2设置通信
这里我使用的是S7-300MPI电缆连接方式,因此选择PCAdapter,install.不需要其他接口。
图5-2安装PG/PC通信接口窗口
设置或添加PCAdapter(MPI):
PROPERTY按钮LocalConnection属性页COM2,19200,其他参数不需要设置。
5.2.3硬件组态和下装
打开工程中的Hardwork,从而进入HWCONFIG窗口。
在HWCONFIG中插入机架,根据实验所用的设备型号组态硬件。
如下表:
表5-1硬件组态数据
模块
型号
电源
PS-300>PS3072A
CPU
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中的standardlibrary,选择OrgnizationBlocks.把OB1复制粘贴到当前工程中。
表5-2OB1块的功能
中断类型
组织块
默认优先级
备注
主程序扫描
OB1
1
周期运行:
开始循环监控时间
输出到模块
从模块输入
执行程序
执行挂起的其他任务
回到开始,重新循环监控时间
5.3.2符号和变量编辑
从资源管理器中选择S7Program
(1)中打开Symbols编辑,编辑全部输入输出相关变量的全局变量,以便使得程序具有很好的可读性。
建立所有需要用到的全局变量,如下图:
图5-3PID全局变量表
其中AI(SM334模拟量输入),AO(SM334模拟量输出),变量地址都是PIW,POW,的格式,这表示这些变量使用的是硬件地址,格式是16进制数。
PIW表示输入,POW表示输出。
有了变量表,在程序中就可以直接调用全局变量的Symbol,来访问该硬件地址。
例如在程序中调用AIO,它会自动指向PIW256,也就是SM334模拟量输入通道0的模拟量值。
又比如在程序中写入一个1,它会自动指向Q124.0,也就是CPU的DI/DO模块的数字量输出通道0,该通道便会输出开关量1,也就是继电器开关闭合。
如果该通道通过继电器切换控制着一个电磁阀,该电磁阀便会启动。
5.3.3创建PID控制块
单击Blocks,进入里面的组织块OB1,进入编辑环境。
要进行PID单回路控制的编程,需要添加PID块,在Libraries>standardlibrary>PIDcontrolblock>FB41CONT_CICONT,将其拖到代码区梯形图上即可添加PID模块。
需要创建PID的背景数据块,PID数据所涉及的所有参数都存放在这个背景数据块中,可以通过在组态软件中控制这些参数。
图5-4模块图
图5-5PID的背景数据块内容
PLC的输入输出,手自动切换,参数,控制功能都能通过DB1中的数据进行控制。
实际工程应用中,还需要增加手动自动切换控制。
在手动时,SP跟随MV,MV等于MAN(手操作值),自动时MAN(手操作值)跟随。
图5-6DB2背景数据内容
5.3.4创建数值转换功能
4-20mA信号,被SM334模拟量输入输出模块采集后,数据范围是5530-27648。
因此需要编写一个专门用来进行数值转换的功能(FC,类似于函数,可以被其他程序调用),把5530-27648的数据转换成PID控制所需要0-100的数据,并通过组态软件监控0-100的数据,符合人们的日常习惯。
FC201即为数值转换功能,它有五个输入:
IN,IN_MIN,IN_MAX,OUT_MIN,OUT_MAX和一个输出:
OUT
◆IN:
需要进行转换的原始输入变量
◆IN_MIN:
原始变量的下限值
◆IN_MAX:
原始变量的上限值
◆OUT_MIN:
转换成的目标变量的下限值
◆OUT_MAX:
转换成的目标变量的上限值
◆OUT:
输出目标变量
图5-7FC201程序内容
Network1:
MOVE:
将输入变量(左侧)的数值赋给输出变量(右侧)
DI_R:
双精度整数转换为实数
SUB_R:
实数减法运算
Network2:
赋值:
TEMPINT=IN
如果:
TEMPINT 则: TEMPINT=IN_MIN Network3: 如果: TEMPINT>IN_MIN 则: TEMPINT=IN_MAX Network4: OUT= ×(OUTMAX-OUTMIN)+OUTMIN CMP>R是比较指令,SCALEIN作为分母,要求SCALEIN>0 图5-8FC202程序内容 这样就添加好了FC201和FC202两个功能以供使用。 其中的FB41是之前生成的PID系统控制块,DB1是FB41的背景数据块,OB1是主程序组织块。 5.3.5单PID控制编程 在进行OB1的正式编程钱,需要建立一个用户数据存储块,定义一些在编程中用到的变量。 在工作区单击右键,insertnewobject>datablock,创建DB3 图5-9DB3中定义需要用到的变量 其中temp用于分隔SET_TURE,SET_FALSE。 这两个符号如果没有外部更改,就总是固定一个TURE和一个FALSE,以便在程序中使用。 程序中不能对函数的参数直接赋予值的。 返回工作区,打开OB1,开始编辑主程序。 ◆将两路模拟量输入转换为0~100的实数,再赋值给MYDATA.AI0(即为DB3数据块中的用户自定义变量,也可以表示为DB3.DBD0)和MYDATA.AI1。 ◆PID运算程序FB41CONT_C,同时产生DB1。 ◆将PID运算程序FB41输出的控制量DB1.DBD72转换为5530~27648的word字,输出给AI0。 AI1直接由组态软件给DB3,从这里输出。 图5-10OB1程序内容 图OB35模块图 图OB35模块图 图FB41模块 5.3.6FB41和PID控制 FB是需要背景数据块DB的函数块,数据在执行完函数后还需要保存的。 在各种逻辑块中可以调用FB。 FB可以用户自己编写,也可以调用西门子公司提供的各种库中的FB。 在standardlibrary中的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”实现连续控制: 在SIMATICS7可编程控制器上,功能块FB41用来控制具有连续输入输出的技术过程。 在参数设置过程中,可以通过参数设置来激活或取消激活PID控制的某些子功能来设计适应过程需要的控制器 可以将其作为一个给定点PID控制器,或者在多环路控制中作为串级、混合或比率控制器。 控制器的算法是基于具有模拟输入信号的采样PID控制。 如果扩展需要的话可以引入一个脉冲发生器,来产生具有脉宽调制的操作值输出,以提供给带有比例执行器的两级或三级步进控制器。 除了给定点和过程变量分支的功能外,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根据下面的公式标准化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。 完成整个程序块的(包括systemdata,以及所有OB.FO.DB)的下载。 下装前最好清楚CPU,然后重新下载。 5.5调试工程 调试很重要,首先在完成硬件组态时,进行硬件通道的及监控和修改。 对硬件进行测试,数字量直接测试,模拟量把输出接到输入上,从而检测铜须是否正常,硬件是否正常。 接下来就是对程序逻辑进行测试。 通过监控程序中的变量来了解程序的逻辑是否正常。 Step7主要提供了两种调试工程的方式: 程序状态功能和变量表功能。 5.5.1用程序状态功能调试程序 下装好程序后,连接PLC,将模式开关拨到RUN模式。 打开OB1,单击monitor 如果通讯正常,则可以看到程序状态,用绿色连续线来表示状态满足,即有“能流”流过: 用蓝色点状细线表示状态不满足,没有能流流过: 用黑色连续表示状态未知。 5.5.2用变量表调试程序 由于程序状态功能只能在屏幕上显示一小块程序,在调试较大的程序时,往往不能同时显示和调试某一部分所需的全部变量[14]。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC 换热器 温度 流量 控制