组态王结课大作业.docx
《组态王结课大作业.docx》由会员分享,可在线阅读,更多相关《组态王结课大作业.docx(46页珍藏版)》请在冰点文库上搜索。
组态王结课大作业
组态王结课大作业
《工业组态技术》结课论文
班级
姓名
学号
201年12月21日
一、工程的建立和定义外部设备
1、新建名为“反应车间监控软件”的工程
1、单击菜单栏“文件\新建工程”命令,弹出“新建工程向导一”对话框,如图所示。
2、单击“下一步”继续新建工程。
弹出“新建工程向导二”对话框。
单击“浏览”按钮,从弹出的路径选择对话框中选择工程路径“G:
\反应车间监控软件”。
3、单击“下一步”进入新建工程向导三。
在“工程名称”文本框中输入“饮料生产监控系统”,单击“完成”确认新建的工程,完成新建工程操作,如图。
2、定义外部设备
1.在工程浏览器的左侧选中“COM1”,在右侧双击“新建”,弹出“设备配置向导”对。
在I/O设备列表显示区中,选中PLC设备,单击符号“+”将该节点展开,再选中“亚控”,依次选中“仿真PLC”设备,选中“串行”。
如图1.4所示。
2.“反应车间监控软件”各个变量的定义
(1)在工程浏览器树型目录中选择“数据词典”,在右侧双击“新建”图标,弹出“变量属性”对话框。
定义变量原料油液位,变量设置如图。
设置完成后单击“确定”。
(2)用类似的方法建立另外4个变量:
原料油2,搅拌罐液位,催化剂液位和成品油液位。
(3)另外,由于演示工程的需要还须建立五个内存离散型变量,分别为:
原料油出料阀、原料油2出料阀、催化剂出料阀,成品油泵和成品油出料阀。
3.“反应车间监控软件”动画连接
(1)液位模拟式示值动画设置
A、打开“监控中心”画面,在画面上双击“原料油罐”图形,弹出该图库的动画连接对话框,对话框设置如下:
变量名(模拟量)选择“\\本站点\原料油液位”;填充颜色为蓝色;小值:
0,占据百分比:
0;大值:
100,占据百分比:
100。
B、单击“确定”按钮,完成原料油罐的动画连接。
这样建立连接后原料油罐液位的高度随着变量“原料油液位”的值变化而变化。
用同样的方法设置原料油2,搅拌罐催化剂罐和成品油罐的动画连接,连接变量分别为:
\\本站点\原料油2、\\本站点\搅拌罐液位、\\本站点\催化剂液位、\\本站点\成品油液位。
(2)液位数字式示值动画设置
A、双击原料油罐旁字符串“####”,弹出动画连接对话框,在此对话框中选择“模拟值输出”选项,此时弹出“模拟值输出连接”对话框,在“表达式”编辑框中选择“\\本站点\原料油液位”变量,输出格式设置为:
整数位数为2;小数位数为0;对齐方式为居左。
B、单击“确定”按钮完成动画连接的设置。
当系统处于运行状态时在文本框
“####”中将显示原料油罐的实际液位值。
用同样方法设置其它几个罐
(3)阀门动画设置
A、在画面上双击“原料油出料阀”图形,弹出该图库对象的动画连接对话框,对话框设置如下:
变量名(离散量)选择\\本站点\原料油出料阀;关闭时颜色为红色,打开时颜色为绿色。
B、单击“确定”按钮后“原料油出料阀”动画设置完毕,当系统进入运行环境时鼠标单击此阀门,其变成绿色,表示阀门已被打开,再次单击关闭阀门,从而达到了控制阀门的目的。
C、用同样方法设置其它几个阀门和泵。
(4)编写命令语言
在工程浏览器的目录显示区,选择“文件|命令语言|应用程序命令语言”,则在右边的内容显示区出现“请双击这儿进入<应用程序命令语言>对话框…”图标。
双击该图标,弹出“应用程序命令语言”编辑器,
(5)液体流动动画设置
1.数据词典中新建一个内存整型变量。
变量名:
控制水流;变量类型:
内存整型;初始值:
0;小值:
-260;大值:
11。
2.选择监控画面中原料油出料阀控制的立体管道,双击管道弹出动画连接对话框,在对话框中单击“流动”选项,弹出管道流动连接设置对话框。
在对话框中,流动条件选择“\\本站点\控制水流”变量。
3用同样方法设置“原料油2”,“成品油泵”,“催化剂出料阀”和“成品油出料阀”控制管道的液体流动动画。
管道连接变量分别为:
\\本站点\控制水流1、\\本站点\控制水流2,\\本站点\控制水流3,\\本站点\控制水流4,\\本站点\控制水流5。
4.在应用程序命令语言编辑器中输入如下语句。
if(\\本站点\原料油出料阀==1)
{\\本站点\控制水流=10;}
else
{\\本站点\控制水流=-255;}
if(\\本站点\催化剂出料阀==1)
{\\本站点\控制水流1=10;}
else
{\\本站点\控制水流1=-255;}
if(\\本站点\成品油出料阀1==1)
{\\本站点\控制水流2=10;}
else
{\\本站点\控制水流2=-255;}
if(\\本站点\成品油泵==1)
{\\本站点\控制水流3=10;}
else
{\\本站点\控制水流3=-255;}
if(\\本站点\成品油泵==1)
{\\本站点\控制水流4=10;}
else
{\\本站点\控制水流4=-255;}
if(\\本站点\原料油2出料阀==1)
{\\本站点\控制水流5=10;}
else
{\\本站点\控制水流5=-255;}
5.全部保存,切行画面。
可以看到管道中水流的效果如图。
(6)实现画面切换功能
(1)用前面建立新画面的方法,建立控制系统需要的画面。
画面名称分别为报警画面、实时曲线画面、历史曲线画面、棒图与XY插件应用画面、配方管理画面、实时报表画面、历史报表画面、数据库操作画面、增加配方画面。
(2)在主画面选择工具箱中的菜单工具,将鼠标放到监控画面的任一位置并按
住鼠标左键画一个按钮大小的菜单对象,双击弹出菜单定义对话框。
菜单项输入完毕后单击“命令语言”按钮,弹出命令语言编辑框,在编辑框中输入如图3-23所示命令语言。
单击“确认”按钮关闭对话框,当系统进入运行状态时单击菜单中的每一项,进入相应的画面中。
三、报警画面的制作
1.在工程浏览器中左边的目录树中选择“报警组”项,双击右侧图标进入“报警组定义”对话框。
单击“修改”,在弹出的“修改报警组”对话框中改名为“饮料生产”。
2.单击“增加”按钮,在“化工厂”报警组下再增加一个分组“反应车间”,如图。
3.新建画面,命名为“报警画面”。
4.在“工具箱”中单击“报警窗口”按钮,绘制出两个报警窗口,调整到合适大小,分别命名为“历史报警”、“实时报警”。
5.双击报警窗口,弹出报警窗口配置属性页。
在通用属性页中有一个实时报警窗和历史报警窗的选项,如果选择“实时报警窗”,则当前窗口将成为实时报警窗;如果选择“历史报警窗”,则当前窗口将成为历史报警窗。
以实时报警为例,如图所示。
6.单击报警窗口配置属性页中的“列属性”标签,设置报警窗口的列属性,如图3.4所示。
7.新建内存离散变量“原料油液位报警”、“催化剂液位报警”、“搅拌罐液位报警”。
8.在“数据词典”中,修改并设置变量“原料油液位”、“催化剂液位”、“搅拌罐液位”的报警定义,以设置报警值。
以“原料油液位”的报警设置为例,双击变量“原料油液位”,在弹出的“定义变量”对话框的“报警定义”选项卡中,设置“报警限”如图下图所示
9.画面左侧的四个“报警确认”设置相似,以原料油液位的报警确认为例,设置为“弹起时”的命令语言如图所示。
11、画面左下方的“报警总确认”设置为“弹起时”的命令语言为“设置为“弹起时”的命令语言如图所示。
12.为使出现报警时能自动切换至报警画面,在工程浏览器左侧目录树中选择“事件命令语言”选项,双击右边“新建”图标,在弹出的“事件命令语言”设置对话框中设置如图所示。
至此,报警画面制作完毕。
四、棒图和X-Y曲线画面的制作
1、新建画面,命名为“棒图和X-Y插件应用”。
2、点击“工具箱”的“插入控件”工具,在弹出的“创建控件”对话框中,分别选用“趋势曲线”中的“X-Y轴曲线”和“立体棒图”控件,并在画面中绘制“X-Y轴曲线”和“立体棒图”。
3、“X-Y轴曲线”控件属性采用默认,“立体棒图”控件属性设置为“三维条形图”。
4、设置画面命令语言“显示时”、“存在时”。
5、至此,棒图和X-Y曲线画面制作完毕。
最终画面如图所示。
五、实时趋势曲线的制作
1.利用“工具箱”中的“实时趋势曲线”工具,在饮料反应车间画面适当位置绘制趋势曲线。
2.双击此实时趋势曲线,弹出“实时趋势曲线”对话框,设置“曲线1”关联变量“原料油液位”,相关设置如图。
3.运用同种方法分别绘制“催化剂液位实时趋势曲线”、“搅拌罐液位趋势曲线”、至此,实时趋势曲线制作完毕,效果图如下。
六、历史趋势曲线的制作
1、新建画面,命名为“历史曲线2”。
2、利用“工具箱”中的“插入通用控件”工具,在弹出的“插入控件”中选择“历史趋势曲线”,绘制历史趋势曲线控件。
右键单击该控件,选择“控件属性”,在弹出的对话框中的“曲线”选项卡中增加四条曲线,分别对应于变量“原料罐原料重量”、“混合罐液位”、“混合罐温度”、“缓冲罐液位”,四条曲线的设置方式相同,以“混合罐液位”为例,单击“增加”按钮,在弹出的“增加曲线”对话框中设置如图。
3、坐标系的设置采用默认,至此历史趋势曲线2制作完毕,制作效果如图6.2.2所示。
运行效果图
七、配方画面的制作
1、新建画面,命名为“配方”。
2、新建内存整形变量“原料1”、“原料2”、“原料3”及内存字符串型变量“配方名称”。
3、在工程浏览器左侧目录树中选择“配方”,双击“新建”,弹出“配方定义”对话框。
选择“工具”之“表格属性”,设置名称为“新配方”、配方种类数目为4、配方变量为3。
并将表格关联变量,并填写相关数据如图所示。
保存为“G:
\反应车间监控软件\新配方.csv”。
4、利用“按钮”、“文本”工具绘制配方画面如图所示。
5、将画面中的文本“###”自上而下依次关联变量“配方名称”,“原料1”,“原料2”,“原料3”。
6、各按钮分别设置命令语言为:
上一配方:
RecipeSelectPreviousRecipe("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
RecipeLoad("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
下一配方:
RecipeSelectNextRecipe("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
RecipeLoad("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
选择配方:
RecipeSelectRecipe("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称,"请选择配方");
RecipeLoad("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
增加配方:
ShowPicture("增加配方");
删除配方:
RecipeDelete("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
7、新建画面,命名为“增加配方”,绘制效果如图所示。
文本关联变量方式与画面“配方”相同,各按钮分别设置命令语言为:
确定:
RecipeSave("G:
\反应车间监控软件\新配方.csv",\\本站点\配方名称);
ClosePicture("增加配方");
取消:
ClosePicture("增加配方");
至此,配方画面制作完毕。
选择配方后,点击增加配方按钮
八、实时报表的制作
1、新建画面,命名为“实时报表画面”。
2、新建字符串变量“实时报表名”。
3、利用“工具箱”中的“报表窗口”工具绘制两个报表窗口,分别命名为“实时”和“实时报表查询”。
结合“文本”、“按钮”工具绘制实时报表画面,并将窗口“实时”关联变量,如图所示。
4、制作下拉框,并将下拉框关联变量“实时报表名”.
5、各按钮命令语言分别设置为:
打印:
ReportPrint2("实时报表",0);
打印设置:
ReportPrintSetup("实时报表");
保存:
stringname;
stringyear;
stringmonth;
stringday;
stringhour;
stringminute;
stringsecond;
year=StrFromReal(\\本站点\$年,0,"f");
month=StrFromReal(\\本站点\$月,0,"f");
day=StrFromReal(\\本站点\$日,0,"f");
hour=StrFromReal(\\本站点\$时,0,"f");
minute=StrFromReal(\\本站点\$分,0,"f");
second=StrFromReal(\\本站点\$秒,0,"f");
name="G:
\反应车间监控软件\"+year+month+day+hour+minute+second+".rtl";
ReportSaveAs("实时",name);
显示报表:
ListClear("实时报表查询");
ListLoadFileName("实时报表查询","G:
\反应车间监控软件\*.rtl");
报表查询:
stringfilename1;
filename1="G:
\反应车间监控软件\"+\\本站点\实时报表名;
ReportLoad("实时报表查询",filename1);
ListClear("实时报表查询");
ListLoadFileName("实时报表查询","G:
\反应车间监控软件\*.rtl");
6、至此,实时报表制作完成。
九、历史报表的制作
1、新建画面,命名为历史报表。
2、新建内存字符串型变量“历史报表名”。
3、与实时报表绘制方法相同,绘制历史报表画面如图如图所示。
4、设置下拉框名为“历史报表查询”,并关联变量“历史报表名”。
各按钮命令语言设置如下:
手动打印:
ReportPrint("历史");
打印设置:
ReportPrintSetup("历史");
保存:
stringname;
name="G:
\反应车间监控软件\历史报表\"+
StrFromReal(\\本站点\$年,0,"f")+
StrFromReal(\\本站点\$月,0,"f")+
StrFromReal(\\本站点\$日,0,"f")+
StrFromReal(\\本站点\$时,0,"f")+
StrFromReal(\\本站点\$分,0,"f")+
StrFromReal(\\本站点\$秒,0,"f")+".rtl";
ReportSaveAs("历史",name);
查询:
listClear("历史报表查询");
ListLoadFileName("历史报表查询","G:
\反应车间监控软件\历史报表\*.rtl");
stringname;
name="G:
\反应车间监控软件\历史报表"+\\本站点\历史报表名;
showpicture("历史查询");
reportload("查询历史",name);
5、设置画面命令语言,如图所示。
6、为使报表能每分钟自动保存一次,在“事件命令语言”中新建,并设置如图所示。
7、新建画面,命名为“历史查询”,如图所示。
各按钮命令语言设置如下:
打印:
ReportPrint("历史");
打印设置:
ReportPrintSetup("查询历史");
历史查询:
ReportSetHistData2(2,1);
退出:
ClosePicture("历史查询");
至此历史报表制作完成。
运行效果图如下:
十、数据库功能的实现
1.外建一个数据库
首先选用Access数据库外建一个数据库,路径为“G:
\反应车间监控软件”,数据库名为mydb.mdb。
2.用Windows控制面板中自带的ODBCDataSources管理工具新建一个MicrosoftAccessDriver(*.mdb)驱动的数据源,名为:
mine,然后配置该数据源,指向刚才建立的Access数据库(即mydb.mdb),如图所示。
3.创建表格模板
(1)在工程浏览器窗口左侧“工程目录显示区”中选择“SQL访问管理器”中的“表格模板”选项,在右侧“目录内容显示区”中双击“新建”图标弹出创建表格模板对话框,在对话框中建立字段,如图所示。
(2)单击“确认”按钮完成表格模板的创建。
(建立表格模板的目的是定义数据库格式,在后面用到SQLCreatTable()函数时以此格式在Access数据库中自动建立表格。
)
2、创建记录体
在工程浏览器窗口左侧“工程目录显示区”中选择“SQL访问管理器”中记录体”选项,在右侧“目录内容显示区”中双击“新建”图标弹出创建记录体对话框,对话框设置如图所示。
单击“确认”按钮完成记录体的创建。
4.连接数据库
(1)在工程浏览器窗口的数据词典中定义一个内存整型变量,变量名为
DeviceID,变量类型为内存整型。
(2)新建一画面,名称为:
数据库操作画面。
(3)选择工具箱中的文本工具,在画面上输入文字:
数据库操作。
(4)在画面中添加一按钮,按钮文本为:
数据库连接。
(5)在按钮的弹起事件中输入如下命令语言
SQLConnect(DeviceID,"dsn=mine;uid=;pwd=");
5.创建数据库表格
在数据库操作画面中添加一按钮,按钮文本为:
创建表格。
在按钮的弹起事件中输入如下命令语言
SQLCreateTable(DeviceID,"KingTable","Table1");
6.插入记录
在数据库操作画面中添加一按钮,按钮文本为:
插入记录。
在按钮的弹起事件中输入如下命令语言
SQLInsert(DeviceID,"KingTable","bind1");
7.断开连接
在“数据库操作画面”中添加一按钮,按钮文本为:
断开数据库连接。
在按钮的弹起事件中输入如下命令语言。
SQLDisconnect(DeviceID);
8.查询记录
(1)在工程浏览器窗口的数据词典中定义五个内存变量:
变量名:
记录日期;变量类型:
内存字符串;初始值:
空
变量名:
记录时间;变量类型:
内存字符串;初始值:
空
变量名:
原料油液位返回值;变量类型:
内存实型;初始值:
0
变量名:
催化剂液位返回值;变量类型:
内存实型;初始值:
0
变量名:
成品油液位返回值;变量类型:
内存实型;初始值:
0
(2)在画面上添加五个文本框,在文本框的“字符串输出”、“模拟值输出”动画中分别连接变量\\本站点\记录日期、\\本站点\记录时间、\\本站点\原料油液位返回值、\\本站点\催化剂液位返回值、\\本站点\成品油液位返回值,用来显示查询出来的结果。
(3)再在工程浏览窗口中定义一个记录体bind2。
(4)在画面中添加一按钮,按钮文本为:
得到选择集。
(5)在按钮的弹起事件中输入如下命令语言。
SQLSelect(DeviceID,"KingTable","bind2","WhereExpr","OrderByExpr");
9.单击“文件”菜单中的“全部存”命令,保存所作设置。
10.在画面上添加四个按钮,按钮属性设置如下:
按钮文本:
第一条记录。
“弹起时”动画连接:
SQLFirst(DeviceID);
按钮文本:
下一条记录。
“弹起时”动画连接:
SQLNext(DeviceID);按钮文本:
上一条记录。
“弹起时”动画连接:
SQLPrev(DeviceID);按钮文本:
后一条记录。
“弹起时”动画连接SQLLast(DeviceID);
11.单击“文件”菜单中的“切换到VIEW”命令,进入运行系统。
运行此画面。
附录:
本工程所建的变量和所保存的文件截图
本工程保存的文件:
实时数据文件
历史数据文件
配方
数据库