扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用 vb.net socket通信
成都创新互联2013年开创至今,先为琅琊等服务建站,琅琊等地企业,进行企业商务咨询服务。为琅琊企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
Dim th As Threading.Thread
2 Dim tcpl As System.Net.Sockets.TcpListener
3
4 Private Sub Form1_Load()Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
5 th = New System.Threading.Thread(New System.Threading.ThreadStart(AddressOf MyListen))
6 th.Start()
7 End Sub
8
9 Public Sub SendMessage()Sub SendMessage(ByVal IP As String, ByVal SendMsg As String)
10 Try
11 If IP "" Then
12 Dim tcpc As New System.Net.Sockets.TcpClient(IP, 5656)
13 Dim tcpStream As Net.Sockets.NetworkStream = tcpc.GetStream
14 Dim reqStream As New IO.StreamWriter(tcpStream)
15 reqStream.Write(SendMsg)
16 reqStream.Flush()
17 tcpStream.Close()
18 tcpc.Close()
19 End If
20 Catch ex As Exception
21 MsgBox(ex.Message.ToString)
22 End Try
23 End Sub
24 Private Sub MyListen()Sub MyListen()
25 Try
26 Dim ipAddress As System.Net.IPAddress = System.Net.Dns.Resolve(System.Net.Dns.GetHostName).AddressList(0)
27 tcpl = New System.Net.Sockets.TcpListener(ipAddress, 5656)
28 tcpl.Start()
29 While True
30 Dim s As System.Net.Sockets.Socket = tcpl.AcceptSocket()
31 Dim MyBuffer(1024) As Byte
32 Dim i As Integer
33 i = s.Receive(MyBuffer)
34 If i 0 Then
35 Dim lstrRec As String
36 Dim j As Integer
37 For j = 0 To i - 1
38 TextBox1.Text += Chr(MyBuffer(j)) ","
39 Next
40 End If
41 End While
42 Catch ex As Exception
43 MsgBox(ex.Message.ToString)
44 End Try
45 End Sub
46
47 Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
48 SendMessage("192.168.0.61", TextBox2.Text)
49 End Sub
tcp协议是一个世界公开的协议,既然你在vb端能搞定如何进行数据通讯,1200就很简单了。
在1200侧你只需建立一个tcp的连接即可,连接类型为未指定,之后按照你自己的要求确定谁是客户机,谁是服务器就好了,具体的建立连接的步骤可以参照1200的文档,你可以在下面的文档的通讯一章找到如何建立TCP连接的过程
西门子 S7-1200 PLC Smart Plus 技术参考Version 1.8
n年前用VB做过几个不同形式的工控系统。
1)VB很适合作上位机的用户界面(UI)
2)一般地,上位机与现场设备或现场控制设备之间,采用RS232C/485/422通信。所以,掌握串行通信原理,比如,什么是同步传输,什么是异步传输,什么是奇偶校验,什么是CRC校验,什么是面向字符(字节)的传输,什么是透明传输,等等,这些概念对构建一个上位系统非常重要。对于VB6而言,就是掌握MSCOMM控件;对于VB.NET而言,掌握SerialPort
3)有的时候,上位机于现场设备之间的通信,采用特定的接口板块。例如,在上位机PCI卡槽中插入特定功能的接口版。VB通过操纵这些接口版,与设备通信。通常,接口版制造商提供DLL形式的编程接口,VB调用这些DLL即可操纵这些接口版。所以,需要掌握VB调用DLL的知识。
4)工业以太网得到越来越多的应用,VB可以通过工业以太网操纵设备。这需要掌握Socket编程。对vb6而言,就是WinSock控件;对VB.NET就是SOCKET类
可以使用vb.net编程。支持串口、以太网接口。
vb对新手来说上手快,容易理解,是最好的选择了。
vb.net在工业控制应用上是比较多的。
关于串口通讯的问题:
很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。
建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。
关于以太网通讯:
在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。
但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。
或者,干脆不用TCP,用UDP解决也可以。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流