组态王水位课程设计

组态王水位课程设计
组态王水位课程设计

南京工程学院

课程设计说明书(论文) 题目组态王课程设计—水位控制系统

课程名称集散控制系统

院系电力工程学院

专业电气工程与自动化

班级电气081

学生姓名张鑫伟

学号 206080944

设计地点 8-216

指导教师朱建忠

设计起止时间:2011年11月07日至2012年01月05日

目录

一、前言 (7)

二、工程设计 (5)

(一)设计要求 (5)

(二)设计过程 (5)

1、新建工程 (5)

2、新建画面 (8)

3、建立仿真PLC (6)

4、完善数据词典 (7)

5、画面单位具体设置与动画连接 (8)

6、按钮参数设置 (8)

7、多权限登录设置 (9)

8、主画面外其余画面的设置 (9)

9、总体命令语言设置 (16)

三、运行效果 (17)

四、课程设计体会 (20)

五、参考文献 (21)

南京工程学院

课程设计任务书

题目组态王课程设计—水位控制系统

课程名称集散控制系统

院(系、部、中心)电力工程学院

专业电气工程与其自动化

班级电气081 起止日期 2011.11.7~2011.12.31 指导教师朱建忠

5.课程设计进度安排

起止日期工作内容

2011年11月07日2012年01月05日需求分析,系统总体设计验收(交报告)

6.成绩考核办法

水箱水位控制系统

一、前言

“组态王”是运行于microsoft windows 200/NT4.0.XP中文平台的中文界面软件,充分利用了windows图形功能完备、界面一致性好、易学易用的特点,并且采用了多线程。COM组件等新技术,实现了实时多任务,软件运行稳定可靠。

“组态王”软件包括由工程浏览器(TouchExplorer)、工程管理器(Proj-Manager)和画面运行系统(TouchVew)三大部分组成。在工程浏览中可以查看工程的各个组成部分,也可以完成数据库构造、定义外部设备等工作;工程管理器中内嵌了画面管理系统,用于新工程的创建和已有工程的管理。画面的开发和运行由工程浏览器调用画面制作系统touchMak和运行系统touchVew来完成。

二、工程设计

(一)设计要求

做一水位控制系统的组态,要求:动画显示水流运动。当水位高于或低于警戒水位时,报警界面出现,提示报警,并记录在报警事件中。设置登录权限,只有管理员才能启动系统,只有在此时水泵才可启动,其余权限中人员只能观看不能操作。组态中有历史曲线与数据报表,用来记录长时间过程中水位的变化情况,同时在主监控画面中也显示有即时报警与数据记录的功能。

(二)设计过程

1、新建工程

打开组态王6.53,首先新建工程“水位控制系统”,如下图所示:

2、新建画面

双击进入工程,点击新建工程画面,进入开发系统画面,确定背景属性,打开工具栏,使用图库(快捷键F2)创建所需的器件:水泵、水管、水箱、水位传感器等;并用作图工具绘制其他结构:水流等。最后,得到如下图:

图上相关部件为:按钮、文字、水位实时曲线显示窗口、实时报警显示窗口。关于这一部分后面在做分析,先画好系统模型。

3、建立仿真PLC

选择系统—设备,点击新建设备:

如图设置,最后点击确定,完成对仿真PLC 元件的设置。 4、完善数据词典

如图所示,建立组态系统所需数据变量:

共计为:水位、水泵运行、启动运行、出水阀门、历史曲线跨度、历史曲线卷动量、行。下面做具体说明:

(1)水位:新建水位变量,在弹出对话框中设置为内存整数,初始值30,最大值100。并且在报警定义中把报警限低与高打勾,底线为5,顶限为95.

(2)水泵运行:设置为I/O 离散,在连接设备中选择之前建立的新I/O 设备,寄存器器选CommErr ,数据类型为Bit ,采集频率1000毫秒,只读。 (3)启动运行:设置为内存离散

(4)出水阀门:设置与水泵运行相同。

(5)历史曲线跨度:设置为内存整数,初始值600,最大值200000。

(6)历史曲线卷动量:设置为内存实数,初始值3.000000,最大值99999。 (7)行:设置为内存整数,初始值27,最大值99999。

注:水位是高度值,从0—100的整数值,故变量选择内存整数。水泵运行与出水阀门是受仿真PLC 控制的I/O 离散量,寄存器的选择从下表中得出:

5、画面单位具体设置与动画连接

双击反应器模块,水泵模块,运行指示灯模块,阀门模块,阀门开关按钮模块,分别在

寄存器格式 寄存器范围 读写属性 数据类型 变量类型 寄存器含义 INCREAdddd 0~1000 读写 SHORT I/O 整型 自动加1 DECREAdddd 0~1000 读写 SHORT I/O 整型 自动减1 RADOMdddd 0~1000 只读 SHORT I/O 整型 随机寄存器 STA TICdddd 0~1000 读写 SHORT\BYTE LONG\FLOAT I/O 整型 I/O 实数 常量寄存器 STRINGdddd 0~1000 读写 STRING I/O 字符串 常量字符串寄存器 CommErr

——

读写

BIT

I/O 离散

通讯状态寄存器

弹出对话框中做如下设置:

双击水管模块,在弹出对话框中点击特殊动画效果为流动,并设置流动条件为-8,若水流方向相反,则可以改为+8。对于水箱水位的实时显示可以在水箱旁边写上“###L”并双击设置参数:点击模拟值输出,在弹出对话框中做图中所示设置。到此,模块部分设置完毕。

6、按钮参数设置

在工具中选择按钮工具,并在主画面中画出如图所示的按钮,分别为启动、停止、管理登陆、退出登录、主画面、水位报警、历史曲线、数据报表、退出。对于启动、停止按钮,双击选择按下时并写入命令语言:

启动按钮为:\\本站点\启动运行=1;

停止按钮为:\\本站点\启动运行=0;

对于管理登陆、退出登录、主画面、水位报警、历史曲线、数据报表、退出这些按钮则是选择弹起时并写入命令语言:

管理登陆:LogOn();

退出登录:LogOff();

主画面:ShowPicture("监控模型");

水位报警:ShowPicture("水位报警");

历史曲线:ShowPicture("历史曲线");

数据报表:ShowPicture("数据报表");

退出:Exit(0);

在管理登陆中若要显示小键盘,则可以在系统配置—设置运行系统中进行如下设置:

7、多权限登录设置

在管理登录旁边写上登录的权限名称,为多权限登录做准备。名称中显示当前登录的用户名称,权限显示当前登录用户的权限。具体设置如下所示:(1)双击名称,点击字符串输出,在表达式中写入“$用户名”以连接到登录用户名;(2)双击权限,点击模拟值输出,在表达式中写入“$访问权限” 以连接到访问权限。然后进行用户权限设置:在系统配置中点击用户配置,在对话框中双击系统管理员,设置优先级为最高999,密码为1234。然后在无组中新建操作员1与操作员2权限,分别为:操作员1可进行出水阀门的操作与组态画面的观看,其余不能操作。操作员2只可进行组态画面的观看,其余不可进行操作。故设置操作员1密码为1,权限为99,操作员2密码为2,权限为9。 并在模型中给予相应设置:在水泵、阀门、阀门开关中设置权限为90,在启动、停止中设置权限为100。对于主画面、水位报警、历史曲线、数据报表、退出的权限设置为0。如此,确保高权限可对低权限部分进行操作,而无法操作更高权限部分。 8、主画面外其余画面的设置

(1) 水位报警画面

新建一个画面,名称为“水位报警”,并用工具箱中“报警窗口”命令在画面中画出报警窗口。其余部分复制主画面中按钮粘贴即可如图所示:

同样,主画面中的实时报警窗口也是这样设置,不过窗体被缩小了。

然后做如下设置:在工程中点击报警组,新建加入报警组水箱—水箱液位,如图所示。 在水位报警画面中右键点击,选择动画连接,做如图中所示设置:

如图,先设置恰当的运行系统基准频率为500,时间变量更新频率为 1000。把使用虚拟键盘与写变量时变化时下发前面打勾,如要有声音提示则把声音提示打勾。

(2)历史曲线画面

同样新建画面,命名为历史曲线,在画面中打开工具箱中的图库,选择历史曲线加入到画面中,如上图所示。查阅组态王帮助文档知道各按钮的意义:第一排最前面的两个按钮为时间轴左端向左卷动和时间轴左端向右卷动;第一排最后两个按钮为时间轴右端向左卷动和时间轴右端向右卷动。第二排前面四个按钮为:时间轴向左平移,时间轴向右平移,时间轴向左平移两倍,时间轴向右平移两倍。

卷动百分比按钮对应卷动百分比量的输入,作用是使趋势曲线的时间轴左移或右移一个

百分比,百分比是指移动量与趋势曲线当前时间轴长度的比值。比如移动前时间轴的范围是12:00~14:00,时间长度120分钟,左移10%即12分钟后,时间轴变为11:48~13:48。

在此按钮后面有两个分别为时间轴百分比左移与时间轴百分比右移。

输入调整跨度按钮用以调整跨度时间,如输入7200,表示时间调整跨度为2小时。后面有四个不同的时间跨度可以选择。

时间轴缩放按钮显示时间轴的量程。可以缩小或者放大时间轴。后面有时间更新按钮,用以将历史曲线时间轴的右端设置为当前时间,以查看最新数据。最后是参数设置按钮,在软件运行时设置记录参数,包括记录起始时间、记录长度等。

具体设置为:

(3)数据报表画面

新建画面,命名为数据报表,在画面中用工具箱中的报表工具画出一张报表,如图所示:

实际所用24行,表示一天24小时用以记录系统在各个时间段内的运行状态,包括:水位高度、水泵运行情况、出水阀门开合情况等。建立完毕后在画面中右击,进入画面属性,选择命令语言,写入相应的命令语言:

if ($时==1) {行=5;}

if ($时==2) {行=6;}

if ($时==3) {行=7;}

if ($时==4) {行=8;}

if ($时==5) {行=9;}

if ($时==6) {行=10;}

if ($时==7) {行=11;}

if ($时==8) {行=12;}

if ($时==9) {行=13;}

if ($时==10) {行=14;}

if ($时==11) {行=15;}

if ($时==12) {行=16;}

if ($时==13) {行=17;}

if ($时==14) {行=18;}

if ($时==15) {行=19;}

if ($时==16) {行=20;}

if ($时==17) {行=21;}

if ($时==18) {行=22;}

if ($时==19) {行=23;}

if ($时==20) {行=24;}

if ($时==21) {行=25;}

if ($时==22) {行=26;}

//报表=1; 设置好报表所用各元素;

string ss; 定义函数string;

if (\\本站点\启动运行==0) 判断系统运行状态;

{ss="关";}

else

{ss="开";}

ReportSetCellString("实时报表", 行, 2, ss); 将运行状态指定到报表第二列;

ReportSetCellValue("实时报表", 行, 3, \\本站点\水位); 将水位状态指定到报表第三列;

if (\\本站点\水泵运行==0) 判断水泵运行状态;

{ss="关";}

else

{ss="开";}

ReportSetCellString("实时报表", 行, 4, ss); 将水泵状态指定到报表第四列;

if (\\本站点\出水阀门==0) 判断出水阀门状态;

{ss="关";}

else

{ss="开";}

ReportSetCellString("实时报表", 行, 5, ss); 将出水阀门状态指定到报表第五列;

9、总体命令语言设置

(1)在组态画面全部设置完毕之后,必须写入相应的程序语言,之后仿真PLC才会运行,整个组态才算是完成。所以,首先在系统—命令语言中选择应用程序命令语言,将下面程序写入:

if(启动运行==1) 判断系统运行状态;

{

if(水位<5) 判断初始水位情况;

{

水泵运行=1; 若水位低于5,则启动水泵;

}

else if(水位>95) 若水位高于95,则关闭水泵;

{

水泵运行=0;

}

}

else

{水泵运行=0;} 系统没启动,水泵不能运行;

(2)关于报警命令语言

在命令语言中选择事件命令语言,新建事件命令语言,事件描述为:\\本站点\$新报警==1 在发生时框中写入下面程序:

ShowPicture("提示报警");

\\本站点\$新报警=0;

用来实现到达报警条件时系统自动报警的效果。

(3)主画面命令语言

右击主画面,选择画面属性—画面命令语言,写入:

if(\\本站点\水泵运行==1) 水泵运行状态;

{

\\本站点\水位=\\本站点\水位+4; 水泵运行时,每秒水位加4;

}

if(\\本站点\出水阀门==1) 阀门状态;

{

\\本站点\水位=\\本站点\水位-3; 阀门打开时,每秒水位减3;

}

else{}

三、运行效果

对于建立好的组态进行仿真运行,点击画面中文件—切换到View进入演示状态。

在登入管理员权限后,点击运行按钮,在点击水泵,示意水泵抽水,在点击阀门,示意阀门放水,由于进水速度快于出水速度,故系统在正常运行一段时间后,水位会过高,此时系统报警,系统自动关闭水泵,只打开阀门出水,在水位低于底线时,系统再次报警,此时,系统自动打开水泵,从而循环运行。详细见运行图:

登入虚拟键盘示意

管理员登入

操作员1登入

操作员2登入

系统正常运行状态

水位报警窗口

历史曲线窗口

数据报表窗口

系统报警显示

系统运行基本达到预期要求,如有不满意的地方,可以返回修改。

四、课程设计体会

本次集散控制系统课程设计,通过用组态王对某一系统来进行组态来进行组态王软件的学习,结合各种帮助文档以与从图书馆与网上搜索,找到有助于自己学习的资料,基本上懂得了组态王的操作,实现了用组态王进行组态研究的目地,由此推展开来带动了我对于控制理论的更加深入的学习与研究,这对于将来的学习与研究来说意义重大。

相关主题
相关文档
最新文档