4.通信程序的具体实现 
        在新建VB工程后,需要执行VB工具栏“工程/部件” 命令www.cechina.cn,将Winsock控件添加到工程中, 并命名为“WskClient”。程序采用TCP/IP协议进行通信,其主要属性设定如下: 
        With WskClient 
        .Protocol = sckTCPProtocol ‘采用TCP/IP协议 
        .LocalPort = 9600 ‘本地计算机端口号 
        .RemoteHost = txtIP.Text ‘取得远程PLC的IP地址 
        .RemotePort = txtPort.Text ‘远程PLC端口号 
        .Bind 9600 ‘指定使用的本地端口 
        End With 
        初始化工作完成后向PLC提出连接请求,待PLC接受请求并发送应答信息后,客户端程序依照各种帧格式建立好要发送的信息帧,就可以与PLC进行双向的数据交流了。在这一过程中控制工程网版权所有,可建立发送失败后的重发机制,以增强通信的可靠性。 
        首先控制工程网版权所有,建立并发送“握手信息”指令(20字节),指明客户机节点号;当计算机接收到PLC返回帧(24字节)后,检查PLC是否收到命令
控制工程网版权所有
,并取得服务器和客户机节点号。当计算机接收到PLC返回的数据时
控制工程网版权所有
,会产生DataArrival事件,参数BytesTotal包含接收到的数据字节数。在DataArrival事件中,可以调用GetData方法接收数据。如果接收到Close事件,则用Close方法关闭连接。另外,可用Winsock的State属性来反映当前TCP/IP的连接状态。这里仅列举主要程序如下: 
        ‘向服务器请求连接 
        WskClient.Connect 
        TimeDelay 100 
        Do 
        DoEvents 
        Loop Until WskClient.state=sckConnected 
        ‘建立并发送FINS命令帧 
        Private Sub SendData_Click() 
        ReDim SendData (19) As Byte 
        SendData (0) = &H46‘FINS命令帧报头的第1个字节 
&n 
bsp;       …… 
        WskClient.SendData SendData() ‘发送FINS命令帧 
        End Sub 
        ‘接收PLC响应帧,并分析数据 
        Private Sub WskClient_DataArrival(ByVal bytesTotal As Long) 
        Dim i As Integer 
        ReDim ArriveData(bytesTotal) As Byte 
        wsk.GetData ArriveData
, vbArray + vbByte, bytesTotal 
        ‘接收数据,保存在ArriveData数组中 
        For i = 0 To bytesTotal - 1 
        txtArData.Text = txtArData.Text & " " & ArriveData (i) 
        Next i 
        ……‘其它数据处理 
        If ArriveData(7) <> 16 Then 
        MsgBox“接收信息丢失“ 
        ElseIf SendData(19)= ArriveData (bytesTotal-5) Then 
        MsgBox“节点地址错误“ 
        End If 
        End If 
        在接收信息后,当PLC收到传输过去的信息后,会将对应的命令反馈值传回,这个事件程序内的程序将它显示在文本框中,还可作进一步处理。主程序流程图如图4所示。

        图4 程序流程图
        若采用UDP协议,则通信的基本过程与TCP相同,只是不需要建立连接。此外,UDP应用程序可以是客户机,也可以是服务器控制工程网版权所有,而不必象TCP应用程序那样必须分别建立客户机程序和服务器程序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。因此如果网络中设备不是很多,且发送数据量不大时,可选择耗费计算机“资源”更小的UDP协议进行通信。 
        5.结束语 
        采用Winsock控件实现的上位机以太网通信程序,已成功应用于数字小样并条机监控系统中,该法简单实用,在不追加投资的情况下,实现车间设备 的网络数据实时监控的功能,达到了理想的效果。而且以VB作为监控软件的开发平台,软件的二次开发不受限制,节约成本控制工程网版权所有,并可根据需要随时对程序进行升级。为实现对控制系统进行有效的信息管理与监控,基于以太网的PLC控制系统必将有更为广泛的应用,本文的论述对解决这类问题提供了一定参考价值。