仿真的 不建议参考基于PLC控制系统构建的水塔水位控制系统.docx
- 文档编号:4335554
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:17
- 大小:478.56KB
仿真的 不建议参考基于PLC控制系统构建的水塔水位控制系统.docx
《仿真的 不建议参考基于PLC控制系统构建的水塔水位控制系统.docx》由会员分享,可在线阅读,更多相关《仿真的 不建议参考基于PLC控制系统构建的水塔水位控制系统.docx(17页珍藏版)》请在冰豆网上搜索。
仿真的不建议参考基于PLC控制系统构建的水塔水位控制系统
中国石油大学(华东)
PLC控制系统的构建
综合实践报告
学生姓名:
苏豪育
学号:
06050318
专业班级:
自动化06-4班
2010年3月8日
PLC控制系统构建综合实践报告
一、概述
PLC控制系统实践环节主要是以可编程序逻辑控制器PLC为核心,以STEP7-Micro/WIN软件为开发平台,以实验台上的各种设备(挂件)为对象使用梯形图语言进行PLC控制程序的开发用来控制实验台上的各种设备。
MCGS组态软件用于生成和运行水塔水位监控系统的组态工程文件。
完成构建的PLC控制系统的监控功能。
二、实验设备
S21-1挂箱(S7-200可编程控制器)、S21-3挂箱(水塔水位控制)、S21-2挂箱(基本指令)、S21-4(产生模拟信号)、计算机、STEP7MicroWIN软件、MCGS软件。
三、具体任务及要求
该实践的具体任务是组建水塔水位监控系统。
水塔系统如下图所示:
一、PLC控制程序
(一)
(一)控制要求
1、阀、泵的自动控制
在自动控制状态下,当水池水位低于水位下限时,阀Y打开,当水池水位高于水位上限时,阀Y关闭。
当水池水位高于水位下限,且水塔水位低于水位下限时,泵M1运转抽水。
当水塔水位高于水位上限时泵M1停止。
2、阀、泵的手动控制
在手动控制状态下,由基本指令编程练习单元中的开关I0.1控制阀的打开与关闭,当开关闭合时阀打开,开关断开时阀关闭。
由I0.2控制泵的打开与关闭,当I0.2闭合时泵打开,当I0.2断开时泵关闭。
3、控制状态的切换与显示
由I0.0实现控制状态的切换,当开关闭合时系统处于自动控制状态,当开关断开时系统处于手动控制状态。
由灯Q0.0实现控制状态的显示,灯亮表示系统处于自动控制状态,灯灭表示系统处于手动控制状态。
4、组灯控制
由灯Q0.5、Q0.6、Q0.7、Q1.0、Q1.1构成组灯,以组灯的不同状态表示水流不同状态。
具体说明如下:
当阀泵均处于关闭状态时,组灯灭。
当阀处于打开状态而泵处于关闭状态时,组灯中Q1.1、Q1.0、Q0.7依次循环点亮,且当其中某一灯亮时,其前一灯灭。
当阀处于关闭状态而泵处于打开状态时,组灯中Q0.7、Q0.6、Q0.5依次循环点亮,且当其中某一灯亮时,其前一灯灭。
当阀泵均处于打开状态时,组灯中Q1.1、Q1.0、Q0.7、Q0.6、Q0.5依次循环点亮,且当其中某一灯亮时,其前一灯灭。
二、PLC控制程序
(二)
(一)控制要求
在PLC控制程序
(一)的基础上添加完成如下功能:
1、液位信号的读取
将S21-4挂箱中电压输出单元的输出电压Ug1与Ug2分别作为水池与水塔的液位信号,信号范围为1~5VDC。
并由PLC的模拟信号输入输出模块读取液位信号。
水池液位的变化范围为0~4m,即液位信号Ug1对应的测量范围为0~4m。
水塔液位的变化范围为0~2m,即液位信号Ug2对应的测量范围为0~2m。
2、阀、泵的自动控制
在自动控制状态下,当水池水位低于水位下限(1m)时,阀Y打开,当水池水位高于水位上限(3m)时,阀Y关闭。
当水池水位高于水位下限,且水塔水位低于水位下限(0.5m)时,泵M1运转抽水。
当水塔水位高于水位上限(1.5m)时泵M1停止。
3、水位报警
由基本指令编程练习单元中的灯Q0.1、Q0.2实现水位报警。
当水池水位低于0.5m时,Q0.1闪烁,当水池水位高于或等于0.5m时,Q0.1灭。
当水塔水位低于0.25m时,Q0.2闪,当水塔水位高于或等于0.25m时,Q0.2灭。
三、MCGS组态程序
(一)组态程序应实现的功能
1、系统运行状态的显示
能够显示系统的控制状态、水池和水塔的液位、阀泵的开关状态及水流状态。
2、水位限值的设置
使用户能够设置水池与水塔液位的上下限值,即能够调整阀泵自动开关的条件。
3、历史数据的记录和查询
能够记录一段时间内系统的控制状态、水池和水塔的液位、水池与水塔液位的上下限值以及阀泵的开关状态。
并能对历史数据进行查询。
4、报警功能
当水池液位低于0.5m时,水池液位下下限报警。
当水池液位高于3.5m时,水池液位上上限报警。
当水塔液位低于0.25m时,水塔液位下下限报警。
当水塔液位高于1.75m时,水塔液位上上限报警。
5、操作权限的区分
设置两个用户组分别为工程师组和操作工组。
创建分属于不同用户组的用户,两组用户均具有登录系统权限,但仅工程师组用户具有设置水位上下限值的权限。
6、工程文件的保护
对组态工程文件设置密码保护。
(二)组态程序与PLC程序的连接
1、在组态程序中作相应设置以建立数据连接通道。
2、必要时修改PLC程序以配合组态程序中的相关设置,完成数据读写操作。
四、实践过程
(一)PLC控制程序
(一)
(1)PLC输入输出端口分配及硬件接线
需要用到4个DI输入端来连接水塔水位开关,2个输出端来连接水泵及阀,还需要基本指令单元的3个开关,分别用来进行手自动切换,手动控制阀的状态及手动控制水泵。
还需要Q0.0显示控制状态,组灯Q0.5—Q1.1表现泵及阀的状态。
首先要给PLC供电,主机输出端1L、2L、3L与主机的M相连,主机输入端的1M、2M与主机电源L+相连。
由于各实验模块单元的信号接口均为低电平模式,因此将各实验模块的L+与主机的L+相连,M与主机的M相连即可。
S21-3挂箱
S1
S2
S3
S4
M1
Y
S21-1挂箱
I1.1
I1.2
I1.3
I1.4
Q0.3
Q0.4
S21-2挂箱
I0.0
I0.1
I0.2
Q0.0
Q0.5
Q0.6
Q0.7
Q1.0
Q1.1
S21-1挂箱
I0.0
I0.1
I0.2
Q0.0
Q0.5
Q0.6
Q0.7
Q1.0
Q1.1
(2)PLC控制程序
该任务较为简单,采用PLC中的一些基本指令即可实现,要用到阀及水泵的自锁来保证连续进水,还需要用到定时器来实现灯组的循环闪烁。
(二)PLC控制程序
(二)
(1)PLC输入输出端口分配及硬件接线
在
(一)的基础上只需增加如下接线即可,Q0.1,Q0.2用来进行水池和水塔的低报显示,Ug1和Ug2分别用来模拟水池和水塔的液位信号。
A-,B-均接地。
S21-2挂箱
Q0.1
Q0.2
S21-1挂箱
Q0.1
Q0.2
S21-4挂箱
Ug1
Ug2
S21-1挂箱
A+
B+
为了消除干扰,可以将C+,C-短接,D+和D-短接。
另外RA和RB不用接。
RA通过一电阻与A-相连,如若接上,就相当于给Ug后加了一个电阻,会改变给定电压值,但接不接本实验的实验结果没影响。
(2)数据转化D=(32107-6)*V/5+6;
计算一下,可以得下表
水池
水池液位高度/m
对应电压/V
对应值
0.5
1.5
9708
1
2
12948
3
4
25586
水塔
水塔液位高度/m
对应电压/V
对应值
0.25
1.5
9718
0.5
2
12944
1.5
4
25855
(3)PLC程序
程序与
(一)很相似,只需在一的基础上加以修改即可。
(三)MCGS组态程序
MCGS共有5个窗口,主控窗口,设备窗口,用户窗口,实时数据库,运行策略。
(1)工程分析
对本实践进行分析及对要求进行理解,可以得到以下信息:
两个用户窗口,一个用来显示水塔水位控制的工程画面,窗口命名为水位控制,一个用来进行数据显示,定义为实时数据显示。
四个主菜单,一个为实时数据显示,一个报警数据,一个历史数据,一个系统管理。
在系统管理里面又有登录用户,密码修改及退出登录子菜单。
五个策略:
启动策略,退出策略,循环策略,报警数据,历史数据策略。
循环策略用来进行报警限值的修改,报警策略用来浏览存盘报警数据,历史数据用来浏览存盘历史数据,以便在组态工程里面显示。
实时数据库里需要定义的数据对象有:
水池液位,水塔液位,水泵,手自动,阀,水池液位上上限,水池液位下下限,水池液位上限,水池液位下限,水塔液位上限,水塔液位下限,及一个液位组。
(2)组态过程
1.建立工程建立名为水塔水位控制的工程。
2.定义数据对象
在实时数据库窗口,定义如下变量,相关设置如下。
另外根据题目要求,要给水池液位定义上上限和下下限报警,可以在属性里的报警属性里进行设置,允许进行报警处理。
水池液位上上限报警为3.5,下下限为0.5,水塔液位上上限报警值为1.75,下下限为0.25。
为了方便后续工作,给水池液位上限,下限分别赋初3,1。
水塔液位上限,下限分别赋初值1.5,0.5。
水池液位上上限,下下限的设置是为了可以随时修改报警限。
定义一个液位组,设置其存盘属性为永久存盘,存盘周期为0.5S。
这是为了查看历史数据而设置的。
组对象成员添加如上图。
3.画面组态
根据S21-2挂箱上的水塔水位控制系统进行画面的制作,需要一个水塔,一个水泵,一个水池,一个阀,四个报警指示灯(水池,水塔液位高低报警),这些均可以从对象元件库中添加,保证符合实际且美观即可。
一些字体从工具箱中的标签进行添加即可,还可以设置有无底色,有无边线,字体颜色,字体大小等。
整体画面如下:
4.动画链接:
水池(水塔)的动态链接,动画位置连接里选择大小变化,然后在大小变化里设置表达式为液位1(液位2),大小变化连接最小变化百分比为0,表达式的值为0;最大变化百分比为100,表达式的值为4
(2),这样当液位变化时,组态画面上的水池(水塔)液位即可随之变化了。
水泵及阀的动态链接:
以阀为例,方法是双击水泵,弹出单元属性设置窗口。
选择数据对象中的按钮输入,选择数据对象连接为阀。
在动画连接的属性设置里面选择填充颜色,表达式设为进水阀,选择不同的填充颜色,即可在阀开闭时显示不同的颜色。
同理可见度的设置也一样,当手动时,阀的图符可见,自动时不可见。
管道内的水流效果以进水阀右边的流动快为例,在基本属性里面设置流动块的颜色为蓝色,流动方向为从右(下)左(上),流动速度为中。
然后再设置流动属性表达式为进水阀。
最终效果为当进水阀送水时,该流动块即开始流动。
手自动状态的显示开关,这个可以从工具箱中的动画按钮添加,表达式为手自动,手动式动画按钮为一种状态,自动时又为另一种状态。
5.设备连接
在设备窗口里选择设备组态,在设备管理通用设备里选择串口通讯父设备,再选择PLC设备里西门子S7-200PPI即可。
由于我所用的端口为COM1,需要在设备0属性设置里面改过来,在设备1基本属性内部属性里添加Q0.0,0.3,0.4,以及DF0-20,相对应的数据对象如下图,这样就可以将PLC与MCSGS组态软件联系起来了。
6.报警循环策略设置
在循环策略脚本程序中加了如下程序
IF手自动=1THEN
IF液位1<液位1下限THEN
进水阀=1
ENDIF
IF液位1>液位1上限THEN
进水阀=0
ENDIF
ENDIF
IF手自动=1THEN
IF液位2<液位2下限AND液位1>液位1下限THEN
水泵=1
ENDIF
IF液位2>液位2上限THEN
水泵=0
ENDIF
ENDIF
!
SetAlmValue(液位1,液位1上上限,4)
!
SetAlmValue(液位1,液位1下下限,1)
!
SetAlmValue(液位2,液位2上上限,4)
!
SetAlmValue(液位2,液位2下下限,1)
报警数据可以从报警信息浏览里获得,在运行策略里添加报警策略,再添加策略行
在菜单组态中添加报警数据菜单,并执行报警策略,这样在运行环境下我们就可以查看报警数据了。
7.数据显示功能
在用户窗口里新建一个窗口,定义为数据显示窗口,其功能是用来显示实时数据,在窗口组态环境中加入一个数据表格如下,并给表格连接上相应数据即可实时观测各个数据。
历史数据显示采用的方法是在运行策略中添加了历史数据策略,并添加如下策略行,存盘数据浏览数据来源为液位组,显示为所有存盘数据。
然后在菜单组态中添加菜单历史数据,并让其运行历史数据策略即可以在运行环境下看到历史数据了。
8.操作权限区分
系统权限管理:
进入主控窗口,在系统属性里设置系统运行权限为许可工程师组和操作员组可以进入此系统,并设置为进入登陆,退出不登录。
操作权限设置:
进入用户窗口,在水池液位上限,下限,水塔液位上限,下限权限设置为工程师组。
经过以上处理,工程师组和操作员组均可以登录系统,但只有工程师组的用户才可以修改上下限值。
此外还可以设置工程文件的密码保护。
9.PLC程序
由于原PLC程序与现在的系统不适应,所以应做相应修改。
以下几行程序是为了将AIW0,2里的数字转化为对应的水池或水塔液位而用的。
AIW0里的数据为16位的,要想将其转化为浮点实数,需要先转化为32位的,再转化为R的,然后进行运算即可。
由于液位对应的电压为1—5V,所以中间加了一句判断,当转化成的电压大于1V时,才将其转化为液位,否则我们调电压时可能会出现负值。
VD0即为转化后的水池液位,VD4为转化后的水塔液位
VD8-VD20里放的是上下限,判断阀和泵的状态而使用的。
五.实验总结
通过进一周的实习,对PLC编程及MCGS组态软件的使用均有了一定程度的了解,在实验过程中锻炼了自己的编程能力及自学能力。
该实验的实验内容
(一),
(二)均较为简单,可以只采用简单的梯形图语句就可以实现,前两个实验内容花费时间较少。
MCGS组态软件则由于是初次使用,在掌握和熟悉上有一定难度。
在实验过程中经常遇到问题,但通过思考,讨论,均顺利解决。
长话短说,通过近一周的实习收获还是挺大的。
真诚地感谢老师近一周的尽心指导!
!
!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仿真的 不建议参考基于PLC控制系统构建的水塔水位控制系统 仿真 建议 参考 基于 PLC 控制系统 构建 水塔 水位
![提示](https://static.bdocx.com/images/bang_tan.gif)