你当前的位置:首页 > 编程技巧 >

供水自动监控调度系统的设计与实现

返回文章列表 作者: 时间:04-15 来源:  字体:【

3 串口通信的实现
各测量点测得的数据的是通过RS-232标准串行接口传送到监控中心的,因为RS-232驱动能力太低,所以使用了MODEM作为中继器。监控中心读取到这些数据之后,再根据预定义好的规约分析数据,做出报警判断及进行数据存储。监控中心软件运行在Windows 2000操作系统下,为了方便对数据库编程,可以采用Delphi(Windows平台下的可视化软件开发工具)作为监控软件的开发工具。在Delphi中编写串口读写程序的方法基本可以分为两种,一是采用封装了串口读写方法的控件,二是直接调用Win32 API。使用已有控件可以提高编程效率,只需要几条简洁的语句就可以实现串口的读写,但是灵活性太差,不能完全按照个人意愿读写串口,并且有些控件的健壮性也没有得到充分的验证,所以本系统程序编写采用Win32 API(应用编程适配器:Windows的32位应用程序编程接口,一组调用操作系统或其他程序而获得访问服务的例行程序)完成。
API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。下面以处理串口接收数据的子程序为例介绍一下本系统的串口通信程序。接收消息之前应该先用clearcommerror函数处理串口通信错误并报告当前串口状态,如果出现错误向用户发出提示并退出此子程序,如果没有错误就再判断串口接收的数据数是否超过预定以缓冲区的大小。限于篇幅,本文略过这段语句,直接给出读取并处理数据的主体程序,并给出程序的注释。
procedure TMainForm.WMCOMMNOTIFY(var message:tmessage);
var
Temp : string; inputbuffer: array[0..4000>of Char;
nBytesRead, dwError:DWORD ; showReceive:string;
commstate:TCOMSTAT;//存放串口状态的结构体
begin
//略过预处理程序……
//使用readfile函数读取串口数据;在win32 API中使用文件操作函数操作串口
if(not readfile(hcomm,inputbuffer,commstate.cbInQue,nbytesread,@read_os)) then
begin
if(dwerror<>0)and(dwerror<>error_io_pending) then
begin//读取串口错误,则提示用户,并关闭所有相关句柄
messagebox(0,'readfile error','notice',mb_ok);
stop:=true;
closehandle(read_os.hEvent);
closehandle(post_event);
closehandle(hcomm);
exit;
end
else
begin
waitforsingleobject(hcomm,infinite);
getoverlappedresult(hcomm,read_os,nbytesread,false);
end;
end;
if nbytesread>0 then
begin
temp:=system.copy(inputbuffer,1,commstate.cbinque);
receivebuffer:=receivebuffer+temp;
buffer:=receivebuffer;
if (temp[length(temp)>=#13)or(temp[length(temp)>=#10)or (length(receivebuffer)>128)
//上位机和下位机定义通信规约为以ASCII的13或者10作为帧结束标志
then
begin
//若处于显示接收内容模式,显示接收到的内容
if NShowRecerve.Checked then
begin
showreceive:=buffer;
StatusBar1.Panels[2>.Text:='接受内容:'+showreceive;
end
else
StatusBar1.Panels[2>.Text:='接受内容:';
//分析故障信息
if temp[length(temp)>=#10 then
failureinfoparse(buffer);//条用故障处理子程序,此子程序分析故障类型,判断故障设备,并把故障信息记录到数据库
receivebuffer:='';//处理完一帧数据就清空缓冲区,为下一次读取做准备
end; end; end;
setevent(post_event);
end;
上位机的图形化监控软件完成调度控制中心的基本功能。上位机网络由一个应用程序服务器、两个监控工作站、一个模拟屏控制机和数据库服务器组成。上述串口读写程序就工作在应用程序服务器上。
4 结束语
本文介绍了一个供水自动监控及调度系统的设计和实现,采用了分布式控制结构,使系统处理事故和进行调度的效率有所改善和提高。但因为考虑设计成本等因素,这种设计方案并不是最优的,在以后的实践研究中会做出进一步改进。

返回文章列表      【我要投稿】 【我要评论】 【会员收藏】 【发现错误】 【打印文档
上一篇:PLC在模拟电站水轮机组自动控制系统中的应用
下一篇:下面没有链接了
文章相关
现有0条评论 | 更多评论..

我要发表看法



  如果您还不是本站会员
欢迎加入
  • ※ 评论注意事项:
  • 不是会员或未登陆发表评论,评论人名字显示为匿名。
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规。
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
  • 本站管理人员有权保留或删除评论中的任意内容。
  • 参与本评论即表明您已经阅读并接受上述条款。
站内搜索
本栏热门
计算机及通讯技术已成为工业环境中大部分解决方案的核心部分,其在系统中的比重正在迅速增加。在工业控制中,交流电机的拖动越来越多的采用变频器完成,不仅作为一个单独的执行机构,而是随着不断的智能化,同远程计算机之间可以通过各种通讯方式结合成一个有机的整体。
自来水是保障城市经济发展和人民生活的重要基础设施,是保障城市繁荣发展、人民生活以及发展国民经济不可缺少的先决条件。从另一个方面来说,我国是一个高度缺水的发展中国家,随着改革开放的不断深入和发展以及人口数量的不断增长,无论从自来水产量和质量上,社会都对城市供水提供了更高的要求。而实现水厂与供水调度系统的自动化,是保证自来水安全
西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台,也提供了一套编程接口,可使用高级语言编程通过Simatic Net访问PLC数据。
针对控制系统中上位机与S7-200系列PLC通信的实际问题,总结了几种监控计算机与S7-200系列PLC的通信方法,这几种方法在不同的控制系统中能较好解决监控计算机与S7-200系列PLC通信问题。西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATIC PLC
西门子S7-200PLC是德国西门子公司生产的小型PLC。S7-200以其高可靠性、指令丰富、内置功能丰富、强劲的通讯能力、较高的性价比等特点,在工业控制领域中被广泛应用。S7-200PLC的突出特点之一是自由口通讯功能。如何实现S7-200PLC与个人计算机的互联通信,是S7-200PLC应用

设为首页| 加入收藏| 联系我们
Copyright 2004-2007 Www.plc365.coM All Rights Reserved
免费提供PLC可编程控制器编程资料,应用案例,软件下载
请使用1024*768分辨率浏览本站以达到最佳视觉效果