分布式系统中通信的设计与实现是至关重要的环节,它的数据采集站可直接与现场带有标准 RS — 232C 接口的智能仪表、PLC和单片机等链接CONTROL ENGINEERING China版权所有,并可通过扩展控制卡形成一个数据采集子网,以高速准确地获取数据。VB 的 MSCOMM 通信控件具有完善的串口数据发送和接受功能,利用它可以屏蔽对硬件的操作,简易快捷地进行串行通信编程。
一、实例分析
本文举分布式系统中两个节点间连接的实例,其中节点 A(IP地址192.168.0.1)作为服务器负责某一区域的数据采集与处理,程序内有一名为TCPServer的Winsock控件;节点B(IP地址192.168.0.2)是同级或上一级的某一节点CONTROL ENGINEERING China版权所有,作为客户机,其程序内有一名为 TCPClient 的 Winsock 控件。
节点A 服务器核心程序如下:
(1)初始化程序 (2)发送数据程序 tcpserver(Index).SendData Text1.Text (3)处理客户机连接请求程序 Private Sub TCPServer_ConnectionRequest(Index AsIntegerwww.cechina.cn, ByVal requestID As Long) Load tcpserver(Index) tcpserver(Index).Accept requestID End Sub (4)客户机数据到达处理程序 Private Sub TCPServer_DataArrival(Index As Integer, (5)关闭连接程序 节点 B 客户机核心程序如下: 设置判断是否连接标志 远程计算机IP地址 远程计算机端口 (2)申请连接程序 (3)数据到达处理程序 (4)发送数据程序 (5)关闭连接程序
tcpserver(0).RemoteHostIP = 192.168.0.2
tcpserver(0).LocalPort = 1001 'tcpserver
(0)专用于侦听
tcpserver(0).Listen
ByVal bytesTotal As Long) Dim RD As String tcpserver(Index).GetData RDCONTROL ENGINEERING China版权所有, vbString txtRD.text=RD
tcpserver(Index).SendData RD End Sub
Private Sub TCPServer_Close(Index As Integer)
tcpserver(Index).Close
Unload tcpserver(Index)
End Sub
以上程序着重说明Winsock控件的主要属性、方法和事件CONTROL ENGINEERING China版权所有,如要实现多进程(多个客户程序同时运行),可应用创建控件数 组来代表已连接的控件实例的方法处理。
Private ConnectFlag As Boolean ’
(1)初始化程序
TCPClient.RemoteHost IP= 192.168.0.1
TCPClient.RemotePort = 1001
ConnectFlag = False
If Not ConnectFlag Then
TCPClient.Close
TCPClient.Connect
D o
DoEvents
Loop Until TCPClient.State = sckConnected
ConnectFlag = True
End Sub
Private Sub TCPClient_DataArrival(ByVal bytesTotal
As Long)
Dim RD As String
TCPClient.GetData RDCONTROL ENGINEERING China版权所有, vbString
txtRD.text = RD
End Sub
TCPClient.SendData txtSD.Text
&nb


在线会议
论坛
专题
工控直播
新闻中心
子站
技术
社区


2026具身智能机器人电子制造应用研讨会
福禄克六大“法宝”帮您搞定过程仪表校准难题
中控时间序列大模型TPT免费有奖体验
爱德克SE2L进阶版安全激光扫描仪有奖预约演示
剑维软件电子半导体行业白皮书有奖下载



























