VB 在远程管网数据传输中的应用[组图](3)
接收数据:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Winsock1.GetData Tdata()
二、VB与上位机INTOUCH的通信
动态数据交换(简称 DDE)是一种开放的、与语言无关的、基于消息的协议,它是应用程序通过共享内存进行进程间通信的一种形式。服务器程序与客户程序之间的数据交换被称做为一个“会话”,其中客户程序是初始化链接和发送数据请求的应用程序,而服务器程序则是通过执行自身的命令或发送数据来响应客户程序的应用程序。DDE协议将控制通信对象划分为应用程序名(Application)、主题名(Topic)和项目名(Item)。每次 DDE会话 由应用程序名和主题名唯一确定。客户应用程序可以通过 DDE协议和服务器应用程序的一个或多个项目建立数据链接。
在本例的DDE通信中VB应用程序为客户端,INTOUCH为服务器端。在VB里设置如下:
数据的LinkTopic项属性 设置 服务器名应用程序名|主题名,本例为: serverview|tagname
LinkItem项属性 设置为 INTOUCH中的标记名
LinkTimeout连接等待时间 50
Linkmode(连接模式)1
最后在程序中调用LINKPOKE 即可完成数据的传送。
具体程序代码如下(仅选取一个测压点为例):
Private Sub Command9_Click()
On Error GoTo ec
Winsock8.Close
Winsock8.LocalPort = 14571
Winsock8.Listen
Dim i As Integer
For i = 0 To 1
ctcy(i).LinkMode = 0
ctcy(i).LinkMode = 1
ctcy(i).Caption = 0
Next i
Exit Sub
ec: