首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM设计的高速数据采集远程监控系统技术(2)

ARM设计的高速数据采集远程监控系统技术(2)

4 上位机的通信实现

服务器监控软件是用Visual Basic 6.0来编写的。在Visual Basic(以下简称VB)中,进行网络通信开发是非常方便的。VB除了提供丰富的控件外,还提供了各种API来进行更为高级的运用程序的开发。本装置通 过Winsock控件进行网络开发。Winsock控件对用户是不可见的,它提供了访问TCP和UDP网络服务的方便途径。在编写客户或服务器运用程序 时,不必了解TCP的细节或低级的Win—sock API。通过设置控件的属性并调用其方法就可连接到一个远程客户/服务器端,并且双向交换数据。

在本系统中作为服务器的运用软件,在Winsock控件的属性设置上要注意:

① Protocol属性。返回或设置Winsock控件所使用的协议(TCP或UDP)。

UDPFrmMain.Winsock— Server.Protocol:sckTCPProtocol

∥选择TCP协议,提高数据传输的可靠性

② LocalPort属性。返回或设置所用到的本地端口。对客户来说,该属性指定发送数据的本地端口;对于服务器来说,是指定侦听的本地端口。

FrmMain.W insock— Server.LocalPort=LocalPort— ID∥服务器端口号,最好大于1 000

③ State属性。返回控件的状态,设计时只读。用在判断监控网络状态,根据状态改变各个按键指示

灯的状态,提高操作安全性。其设置如下:

Connected— State=FrmMain.W insock— Server.State

Select Case Connected— State

Case 0 StatusBar1.Panels(3).Text= “关闭”

Case 1 StalusBar1.Panels(3).Text=“打开”

Case 2 StatusBar1.Panels(3).Text=“侦听”

4.1 Winsock控件方法

Winsock控件方法主要有以下几种:

① Listen方法。在运用程序初始化时创建套接

字并将其设置为侦听状态,等待客户机的连接请求。

Private Sub Form_ Load()

FrmMain.Winsock— Server.Listen

End Sub

② Accept方法。当有新连接时就会出现ConnectionRequest

事件,处理该事件时,运用程序应该用Accept方法接收连接。

∥当远程客户机(AT91RM9200)发出请求连接时发生

Private Sub Winsock



Server

— Connecti0nRequest( ByVal

requestID As Long)

If W insock

— Server.State < > sckClosed Then W insock—

Server.Close保证Winsock控件不是处于Close状态

W insock— —

Server.Accept requestlD

∥服务器接收客户机(A’I-91 RM9200)的请求

End Sub

③ SendData方法。服务器给客户机发送控制命

令,如开始执行、停止、数据的转存等,实现对客户机的

远程控制。

本函数按TCP模式按二进制方式发送数据包给

客户机,函数成功返回true,出错返回false。

Public Function Send— Data—

To— kehu(Winsock—Server As

Winsock,Data—

Buff()As Byte)As Boolean

On Error GoTo Er

_

Part

Send— Data— To—

kehu : False

If Connect Then //Connect是一个定义的全局变量,

保证在Winsock控件在连接状态

W insock— . Server.Se ndData Data_ Buf

End If

Send— Data— To— kehu=True

Exit Function

Err_ Pa~:

Send— Data— To— kehu = False

MsgBox“发送数据出错!错误代码=”+CStr(Er)+

“ :”+Error,vbExclamation,“错误提示”

Exit Function

End Function

4.2 Winsoek控件事件

Winsock控件事件分为以下2种。

① DataArrival事件:该事件是通信的核心部分。当给客户端发送完命令后,接收客户端返回的命令执行情况,实现对客户机运行状态的监察。如果是数据 转存命令时,还要完成接收客户机上传的采集数据和对数据的服务器存储,进一步提高系统的可靠性,其流程如图3所示。接收到FTP头数据包后, P传输数据的格式定义如图4所示。

② Error事件:只要后台处理中出现错误(例如连接失败、收发数据失败)事件都会出现,方便我们对程序的监控和调试。

在后台处理中出现错误时发生:

Private Sub W insock— Server_

Eror(ByVal Number As Inte.

ger,Description As String,ByVal Se ode As Long,ByValSource As String,ByVal HelpFile As String,ByVal Help—Context As Long,CancelDisplay As Boolean

MsgBox“网络运行出错!代码=”+CStr(Err)+“:”

+Error,vbCritical,“错误信息”

Exit Sub

End Sub

5 结束语

基于ARM的高速数据采集装置的远程监控的设计,从硬件和软件两方面看是可行的,实际制板调试结果很好地完成了远程通信任务。对工业现场的远程监控提供了新的解决方案。随着以太网的日益普及,该方案有着很强的实践意义。
返回列表