古詩詞大全網 - 成語故事 - 求能與PLC通信的電子秤 稱重500g左右

求能與PLC通信的電子秤 稱重500g左右

該電子秤為上海耀華稱重系統有限公司的XK3190-A9型儀表,輸出為RS-232C標準接口,波特率為600/1200/2400/4800/9600、傳輸的數據格式(10位:第壹位起始位,第10位為停止位,中間8位為數據位(ASCII編碼))。通訊方式為:1。連續方式2。指令方式。本人選:

1。連續方式:所傳送的數據為儀表顯示的當前稱重(毛重或凈重)。每幀數據由12組數據組成。格式如下:

第X字節 內容及註釋

1 02(XON) 開始

2 +或- 符號位

3 稱重數據 高位

4 稱重數據 ..

5 稱重數據 ..

6 稱重數據 ..

7 稱重數據 ..

8 稱重數據 低位

9 小數點位數 從右到左(0—4)

10 異或校驗 高四位

11 異或校驗 低四位

12 03(XOFF) 結束

異或:2異或3異或....8異或9

本程序是從網上下載的(稍作改動),調試環境為Windows Xp Professional SP2,VB6.0,在VB中與串口通訊需要引入控件MSComm串口通訊控件在Microsoft Comm Control 6.0中)。具體程序如下:控件簡稱:MSC

Dim Out(12) As Byte '接收var中的值

Dim var As Variant '接收MSC.input中的數值

Dim i As Integer, j As Integer '隨即變量,計算循環

Private Sub cmdOk_Click()

With MSC

.InputMode = comInputModeBinary '設置數據接收模式為二進制形式

.InBufferCount = 0 '清除接收緩沖區

If Not .PortOpen Then

.PortOpen = True '打開通信端口

End If

End With

End Sub

Private Sub Form_Load()

With MSC

.CommPort = 2 '設置Com1為通信端口

.Settings = "9600,N,8,1" '設置通信端口參數 9600赫茲、無校驗、8個數據位、1個停止位.

.InBufferSize = 40 '設置緩沖區接收數據為40字節

.InputLen = 1 '設置Input壹次從接收緩沖讀取字節數為1

.RThreshold = 1 '設置接收壹個字節就產生OnComm事件

End With

End Sub

Private Sub SwichVar(ByVal nNum As Integer)

Text4.Text = Text4.Text & nNum

var = Null

var = MSC.Input

Out(nNum) = var(0)

End Sub

Private Sub Form_Resize()

Text1.Width = Me.Width

Text4.Width = Me.Width

End Sub

Private Sub MSC_OnComm()

With MSC

Select Case .CommEvent '判斷通信事件

Case comEvReceive: '收到Rthreshold個字節產生的接收事件

SwichVar 1

Text1.Text = Text1.Text & Chr(Out(1))

If Out(1) = 2 Then '判斷是否為數據的開始標誌

.RThreshold = 0 '關閉OnComm事件接收

End If

Do

DoEvents

Loop Until .InBufferCount >= 3 '循環等待接收緩沖區>=3個字節

For i = 2 To UBound(Out)

SwichVar i

Text1.Text = Text1.Text & Chr(Out(i))

Next

Text1.Text = LTrim(Text1.Text)

.RThreshold = 1 '打開MSComm事件接收

Case Else

'.PortOpen = False

End Select

End With

End Sub

運行結果:

當儀表顯示:0 時

壹直重復顯示

+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B+00000001B

或:出現下列錯誤:

實時錯誤:'9' 下標越界

由於本人沒有接觸過硬件通訊編程,加之時間緊,麻煩哪位高手幫助壹下!!!!或者副少許費用也可!!!!!

怎樣把顯示正確的數據,而且顯示格式為“-+9999.99”