這次換成使用 VB.NET 來撰寫程式與 SDC36 進行通訊,其他詳細的通訊說明可以參考下列文章
【Labview:使用 CPL 協定與 SDC36 控制器進行通訊,讀取控制器數據】
,在 VB.NET 撰寫與 RS-232 進行通訊的程式,可以很方便的使用 .Net 提供的 SerialPort Class
來撰寫即可。
程式畫面:
程式碼:
Imports System.IO.Ports
Imports System.Text
Public Class Form1
Dim port As New SerialPort("COM3", 9600, Parity.Even, 8, StopBits.One)
Delegate Sub SetTextCallback(ByVal str As String)
Private Sub btnGetData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetData.Click
AddHandler port.DataReceived, AddressOf DataReceived
port.RtsEnable = True
port.Open()
port.Write(New Byte() {&H2, &H30, &H31, &H30, &H30, &H58, &H52, &H53, &H2C, &H39, &H31, &H30, &H31, &H57, &H2C, &H31, &H3, &H39, &H32, &HD, &HA}, 0, 21)
End Sub
Private Sub DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
Dim buffer(port.BytesToRead) As Byte
Dim str As String
port.Read(buffer, 0, port.BytesToRead)
str = BitConverter.ToString(buffer).Replace("-", " ") & vbCrLf
str += New ASCIIEncoding().GetString(buffer)
SetText(str)
port.Close()
End Sub
Private Sub SetText(ByVal str As String)
If Me.display.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {str})
Else
Me.display.Text = str
End If
End Sub
End Class
程式碼下載:comport.zip
在程式撰寫中,如果需要進行監控的話,可以使用 Access Port 這套不錯用的軟體,而 SerialPort Terminal 這套軟體則可以讓你用來進行通訊測試,且還提供原始碼(C#)可以下載喔。
全站熱搜
留言列表