锅炉水位监控系统.docx
- 文档编号:27385464
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:24
- 大小:653.76KB
锅炉水位监控系统.docx
《锅炉水位监控系统.docx》由会员分享,可在线阅读,更多相关《锅炉水位监控系统.docx(24页珍藏版)》请在冰豆网上搜索。
锅炉水位监控系统
实验报告
实验编号:
名称:
锅炉水位监控
专 业:
班 级:
姓名:
指导教师:
2010年月日
一、实验目的:
1.进一步熟悉和掌握WindowsControlCenter6.0的编程软件的使用。
2.学习并掌握C语言脚本设计的应用。
3.学习并掌握锅炉水位监控系统的应用。
二、知识要点:
C语言脚本的设计
三、实验器材:
计算机、软件WindowsControlCenter6.0
四、控制要求:
左键单击水泵1启动,再开进水阀1,向锅炉1加水
右键单击水泵1启动,再开放水阀1,从锅炉1放水
左键单击水泵2启动,再开进水阀2,向锅炉2加水
右键单击水泵2启动,再开放水阀2,从锅炉2放水
左键单击水泵3启动,,向锅炉1加水
右键单击水泵3启动,,从锅炉1放水
放水阀,进水阀同时打开时,锅炉水位保持不变。
左键单击故障查询,退出系统,将退出WINCC
五、组态实验变量表:
六、实验步骤:
1.新建一个项目
文件>新建>单用户项目,并改名为“guolushuiweijiankong“
2.创建用户帐号——双击用户管理器
3.根据实验要求创建若干个内部变量
变量管理器>内部变量>新建变量,按组态变量表建立若干个内部变量;
4.创建3个画面
主画面
请按F1键按钮下还有输入帐号按钮和退出系统按钮
请按F1键
属性——
事件——
输入帐号
C脚本
#include"apdefap.h"
BOOL_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()动态链接库自动生成
#defineNO_MESSAGEBOX1
CMN_ERRORerr;
DWORDpwlevel=0;
pwlevel=(DWORD)GetPasswordLevel(lpszPictureName,lpszObjectName);
if(pwlevel==0)
return(TRUE);
else
return(PWRTCheckPermissionOnPicture(pwlevel,lpszPictureName,NO_MESSAGEBOX,&err));
}
选中输入帐号按钮——动态向导
事件
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
OpenPicture("用户账号.pdl");
}
退出系统
C脚本
#include"apdefap.h"
BOOL_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
#pragmacode("UseAdmin.DLL")
#include"pwrt_api.h"
#pragmacode()
#defineNO_MESSAGEBOX1
CMN_ERRORerr;
DWORDpwlevel=0;
pwlevel=(DWORD)GetPasswordLevel(lpszPictureName,lpszObjectName);
if(pwlevel==0)
return(TRUE);
else
return(PWRTCheckPermissionOnPicture(pwlevel,lpszPictureName,NO_MESSAGEBOX,&err));
}
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
ExitWinCC();
}
用户帐号
用户帐号
输入输出域(用户账号后)
系统画面
5.编辑画面
一号锅炉
水泵1启动
鼠标动作——
按左键——
释放左键——
按右键——
水泵1停止
鼠标动作——进水开——0
按左键——进水关——1
释放左键——出水开——0
按右键——出水关——1
锅炉水位(多边形)
属性——颜色——背景颜色
属性——填充——填充量
C脚本
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
#defineTAG_0"锅炉水位"
longi;
i=GetTagWord(TAG_0);
return((i-0)*100/(100-0));
}
输入输出域1(与锅炉水位对应)
几何——位置X——c动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("锅炉水位");
if(!
GetTagBit("进水管1")&&!
GetTagBit("出水管1"))(value=value);
if(GetTagBit("出水管1")&&GetTagBit("出水开"))(value=value-1);
if(GetTagBit("进水管1")&&GetTagBit("进水开"))(value=value+1);
if(value>99)(value=0);
else
value=value;
SetTagDWord("锅炉水位",value);
return(299);
}
输入/输出——
状态显示1(进水阀1上方彩色水流)
状态——
其他——显示——
进水阀1
事件――鼠标――按左键――C动作
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
BOOLstate;
state=!
GetTagBit("进水管1");
SetTagBit("进水管1",(short)state);
}
状态显示5(进水阀1下方彩色水流)
属性——状态——当前状态
输入输出域2(对应进水管1中的两段彩色水流)
输入/输出——输出值——
几何——位置X——C动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("水流1");
if(!
GetTagBit("进水管1"))(value=0);
if(value>1)(value=0);
if(GetTagBit("进水开"))
value=value+1;
SetTagDWord("水流1",value);
return(value);
}
状态显示12(放水阀1左侧彩色水流)
放水阀1
属性——鼠标——按左键——C动作
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
BOOLstate;
state=!
GetTagBit("出水管1");
SetTagBit("出水管1",(short)state);
}
状态显示7(放水阀1右侧彩色水流)
输入输出域5(对应出水管1中的两段彩色水流)
几何——位置X——C动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("水流1_2");
if(!
GetTagBit("出水管1"))(value=0);
if(value>1)(value=0);
if(GetTagBit("出水开"))
value=value+1;
SetTagDWord("水流1_2",value);
return(value);}
二号锅炉
与一号锅炉完全类似,只需将所有变量的编号1改为2即可,在此不再赘叙。
三号锅炉
水泵3启动
按左键——C动作
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
SetTagBit("水流3_2",0);
SetTagBit("出水管3",0);
SetTagBit("水流3",1);
SetTagBit("进水管3",1);
}
按右键——C动作
C脚本
#include"apdefap.h"
voidOnRButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
SetTagBit("水流3",0);
SetTagBit("进水管3",0);
SetTagBit("水流3_2",1);
SetTagBit("出水管3",1);
}
水泵3停止
按左键——C动作
C脚本
#include"apdefap.h"
voidOnLButtonDown(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName,UINTnFlags,intx,inty)
{
SetTagBit("水流3",0);
SetTagBit("水流3_2",0);
SetTagBit("进水管3",0);
SetTagBit("出水管3",0);
}
锅炉水位3(多边形9)
填充——填充量——C动作
C脚本
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("锅炉水位3");
if(!
GetTagBit("进水管3")&&!
GetTagBit("出水管3"))(value=value);
if(GetTagBit("出水管3"))(value=value-1);
if(!
GetTagBit("出水管3")&&GetTagBit("进水管3"))(value=value+1);
if(value>99)(value=0);
else
value=value;
SetTagDWord("锅炉水位3",value);
return(value);
}
输入输出域7(对应锅炉水位3)
几何——位置X——C动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDv;
v=GetTagDWord("锅炉水位3");
if(!
GetTagBit("进水管3")&&!
GetTagBit("出水管3"))(v=v);
if(GetTagBit("出水管3"))(v=v-1);
if(!
GetTagBit("出水管3")&&GetTagBit("进水管3"))(v=v+1);
if(v>99)(v=0);
else
v=v;
SetTagDWord("锅炉水位3",v);
return(970);
}
状态显示10(三号锅炉右侧彩色水流)
输入输出域8(对应状态显示10)
几何——位置X——C动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("水流3");
if(!
GetTagBit("进水管3"))(value=0);
if(value>1)(value=0);
else
value=value+1;
SetTagDWord("水流3",value);
return(value);
}
状态显示11(三号锅炉右下侧彩色水流)
输入输出域9(对应状态显示11)
几何——位置X——C动作
C脚本(触发器为250ms)
#include"apdefap.h"
long_main(char*lpszPictureName,char*lpszObjectName,char*lpszPropertyName)
{
DWORDvalue;
value=GetTagDWord("水流3_2");
if(!
GetTagBit("出水管3"))(value=0);
if(value>1)(value=0);
if(GetTagBit("出水管3"))value=value+1;
SetTagDWord("水流3_2",value);
return(value);}
8.实验总结
基本掌握锅炉水位监控C脚本开发,基本熟悉和掌握了WindowsControlCenter6.0编程软件的使用。
C脚本开发时,WindowsControlCenter6.0的C编程的许多符号(如:
括号,引号)要在英文输入法环境下才能生效。
9.不足之处
打开放水阀,关进水阀,当锅炉的水位为零时,放水阀依然在放水,这有点不符合现实工况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 锅炉 水位 监控 系统