基于VB+60局域网监控软件的设计

第07卷2007盎第10期

10月

中国水运

chioaWaterTransport

VoI.7No.10

October2007

基于VB6.0局域网监控软件的设计

陈俊

摘要:本文以北京华晟高科过程控制实验系统A30C@为对象,介绍了数据采集与监控系统的原理和实现方法,着重讨论了基于vB6.0局域网监控软件的设计实现。实际运行表明,该系统运行稳定可靠,数据传送实时性强。

关键词,数据采集与监控系统服务器/客户端远程监控

中图分类号:TP393.1文献标识码:A文章编号;1006-7973(2007)10-0154-02

一、系统总体架构

本系统rh=个部分组成,第一部分是通过组态王对A3000系统进行控制。第二部分是蛆态王与VB进行数据的交换,第三部分是VB程序将收到的数据发送到与其连接的各个客户端中.使得客户端能够实时监测到现场部分的实际情况。该系

图1系统结构图

=、vB与组态王的连接

由于组态王不支持直接对低级设备(如串口)进行操作,所以组态软件和VB之间的通信不能直接实现,必须利甩DDE协议来实现o

DDE(DynamicDataExchange)即动态数据交换,它是Windows支持的兰种内部通信机制之一,是应用程序间通过共享内存进行进程问通信的一种形式。应用程序间进行数据交换称为哙话“(Conversation),申请会话端叫客户(Cfient),响应申请端叫服务器(Sa-ver).一旦客户与服务器间建立起DDE所需的数据链路就可自动进行数据交换?在本系统中则主要是使用VB访问组态壬,并向组态王请求数据

图2VB访问组态王流程图

三、局域网程序

对于远程客户端部分,利甩VB做了一个口e文件。安装运行后,只要输入IP和姓名,再点选连接,即可与服务器端相连,从而实时显示并更新相应控制系统的相关参数,其具体过程如下:

当输入fp和端口号后,点选连接健,客户端程序就会向服务器申请连接,如果此时机器有空闲连接,就会发回一个同意的消息,客户端接收到同意信息后也返回一十消息表示收到,然后开始双方开始连接,服务器端开始向客户端发送数据,在客户端的文本框里以实时更新的方式显示出来吲.下面,将分男Ⅱ介绍服务器端和客户端的程序:

1.服务嚣

服务器工作界面如下图3:

图3服务器端工作界面

在这一部分.使用的是通用的Client/Server形式。但是,这样一来就要求作为服务器的主机f即与“组态王。相连的部分)可以同时处理多十客户的请求。因此在编写服务器程序时要添加多十Winsock控件,这个控件不会显示在正在执行的窗体之中。换旬活说,Winsock控件是在后台运行

收稿日期:2007-7-11

作者简介:陈俊男(1976一)朔北工业大学电气与电子工程学院硕士讲师(430068)

研究方向:计算机控制

第10期陈俊:基于VB6.0局域网监控软件的设计155

的一种控件。在执行过程之中,不会具有任何选用、可见的控件。

在选定网络控件一wlnsock控件后。则面临通信胁议的选择…在TCP协议和UDP协议中选择一个合适的:(1)TCP协议是属于面向连接的协议.所谓的面向连接协议是指…“在悠可以交换数据之前,在两个终端设备之间必须涟接成功。”同时,在网络的基础理论中,都会特别强调TCP具有错误核对的功能。也就是说,在数据的传送过程忠,如果发生错误或是数据无法传达对方时,TCP协议将会重复尝试着重新传送数据。

(2)UDP协议是属于无面向连接协议.这种协议为适用在两个设备之间,适用于信息传送以及数据的传输方面。但是在使用时,必须注意当你将信息送出时,对方可能已经离线,因而无法接收到数据,而悠也无法实时察觉到对方已经离线。

考虑到本系统的使用环境,选择了TCP协议,程序如下:Winsock.Protocol=scld"CPProtocol

然后加入十六个Winsock控件。其中第一个取名为Listener,用来侦听局域网中的请求信号,其程序如下:Listener.LocalPort;6000确定侦听端口号Listener.Listen开始侦听

另外十五个为连接口。将其设置为动态数组形式,依次取名为Sock(0)到Sock(14)。其中令Sock(0,为初始连接口,这样,以后当客户增多时,可在这个控件基础上动态增加.由于受资源限制,在本系统中只设定最多可以同时接纳15个客户。程序如下:

Socklndex=FindFreeSocketO查找空闺的sockIfSocklndex)SockNumThen

Loadsock(Socklndex}

EndIf

ConnectState(Socklndex)?BUSY

sock(SockIndex).Tag=Socklndex

如果已有的sock都忙,而且sock数不超过15个,动态添加sock

sock(Socldndex).AcceptrcquestID接受请求然后就是数据的传精了,作为一个远程监控系统。实时性是对它最大的要求,只有保持同步数据更新,监控才有意义.所以使用了一个TextBox控件send来作为暂存器,然后通过send.text的变化来发送数据f3】,其程序如下:PrivateSubsendchange()

Fori-0Tosock.Count一1

Ifsock{0.State‘>sckCloscdThensock{”.SendDatasend.Text

DoEvents‘执行上一条指令

Next

BndSub

通过for循环语句进行信息的广播,这样就可以保证每个与服务器相连的客户端都船收到信息。

2客户端

客户端的界面如下圈4:

图4客户端工作界面

客户机一般只与一个主机相连,因此客户端程序只须一十Winsock进行连接就足够了。其连接部分程序如下:PrivateSubConnecLclick0

cHent.RemoteHost=iptext.Text服务器IP等于输入的IP

client.RemotePort=6000端口号6000

cHent.connect连接

EndSub

PrivateSubsend_Click()

DimstrAsSt丑ng

str-”d”+Forml.na/Ⅱe.Text+plctemsend.Text

FormI.cIienLSendDatasir发送数据

plctemsend.Text=“。清空

EndSub

四、结束语

本系统在实验室使用效果良好,提高了设备的使用效率,同时为进一步开发远程监控系统积累了经验。

参考文献

【11I江剑,牵永新,牛国柱基于纽态软件与VB的远程通信的实现Ⅱ1.接口与通信技术应用200例.2002

【2】梁芳.VisualBasic程序设计案例教:'Y-[MI.北京:清华大学出版社.2006

p1声春艳,李傻民,刘彬彬VisualBasic程序开发范倒宝典【M】.

北京:人民邮电出版社,2006

基于VB 6.0局域网监控软件的设计

作者:陈俊, Chen Jun

作者单位:湖北工业大学电气与电子工程学院,430068

刊名:

中国水运(学术版)

英文刊名:CHINA WATER TRANSPORT

年,卷(期):2007,7(10)

被引用次数:0次

参考文献(3条)

1.高春艳;李俊民;刘彬彬Visual Basic程序开发范例宝典 2006

2.梁芳Visual Basic程序设计案例教程 2006

3.江剑;李永新;牛国柱基于组态软件与VB的远程通信的实现[期刊论文]-微计算机信息(测控仪表自动化) 2002(9)

本文链接:https://www.360docs.net/doc/766654173.html,/Periodical_zgsy-xsb200710067.aspx

授权使用:青岛科技大学(qdkjdx),授权号:54e1331a-57e4-447c-a93f-9f00009ce799

下载时间:2011年6月12日

相关文档
最新文档