精品视频一区二区观看,欧美一区二区视频三区,日韩一区二区三区不卡,欧美中文综合在线视频,欧美综合网亚洲综合网

      ? ? ? ?

      咨詢電話

      ENGLISH0755-88840386
      新聞中心

      咨詢電話

      0755-88840386
      您的位置:首頁 > 學(xué)習(xí)專題 > 專業(yè)技術(shù)專題 > 工業(yè)自動化稱重儀表>詳情頁

      博達數(shù)字傳感器軟件的開發(fā)接口

      發(fā)布時間:2020-01-03 10:19:24 |來源:網(wǎng)絡(luò)轉(zhuǎn)載

      在純軟件數(shù)字秤稱重方案中,稱重軟件工作時,計算機需要和數(shù)字傳感器通訊,獲取傳感器內(nèi)碼。因此,要用到數(shù)字傳感器通訊協(xié)議。一般情況下,傳感器廠家出于安全、防作弊考慮,不對外公開協(xié)議。為了方便用戶開發(fā)稱重軟件(本文僅針對博達公司的數(shù)字傳感器的稱重軟件),博達公司提供了專用的通訊函數(shù)庫(ScalePort.dll)。用戶在開發(fā)軟件時,可以通過調(diào)用庫中的函數(shù),獲取數(shù)字傳感器的內(nèi)碼。使用此函數(shù)庫時,不需要其他的通訊控件。

      ScalePort.dll 有兩種功能:

      ①從儀表串口讀取重量

      ②從數(shù)字傳感器讀取內(nèi)碼

      為了區(qū)分儀表和數(shù)字傳感器,將RS485- 232轉(zhuǎn)換器獲取內(nèi)碼的方式命名為“boast”

      在VB6 中調(diào)用和調(diào)用Win32 API 類似,源碼如下:

      ①Private Declare Function OpenScalePort Lib“ScalePort.dll” (ByVal ComPort As String, ByValseting As String, ByVal fangshi As String) As Long

      ' 打開稱重串口, 參數(shù): 串口號, 通訊參數(shù), “start”

      ②Private Declare Function CloseScalePort Lib“ScalePort.dll” () As Long' 關(guān)閉稱重串口

      ③Private Declare Function LoadCellReadDataLib “ScalePort.dll” (ByVal LoadCellType AsString, ByVal LoadCellNumber As Long, ByValntime As Long) As String

      ' 數(shù)字傳感器連續(xù)讀內(nèi)碼指令( 參數(shù)1:“boast”;參數(shù)2:傳感器數(shù)目;參數(shù)3:單只傳感器讀寫周期(毫秒為單位))

      Private Sub Command1_Click()'打開按鈕

      If OpenScalePort(Combo2.Text, Text1.Text, Combo3.Text)= 1 Then ' 打開串口,①

      If Combo1.Text=“boast” Then

      Timer1.Enabled=True' 讀傳感器

      End If

      Command1.Enabled=False

      Else

      MsgBox “串口打開不成功!”, vbInformation+vbOKOnly, “提示”

      End If

      End Sub

      Private Sub Command2_Click()' 關(guān)閉按鈕Timer1.Enabled=False

      e=CloseScalePort' 關(guān)閉串口②

      Command1.Enabled=True

      End Sub

      Private Sub Form_Unload(Cancel As Integer)e=CloseScalePort' 關(guān)閉串口②

      End Sub

      ' 通過485~232 轉(zhuǎn)換器,讀數(shù)字傳感器內(nèi)碼,用戶不用擔心效率問題,在調(diào)用OpenScalePort ' 函數(shù)時,ScalePort.dll 已經(jīng)在后臺創(chuàng)建了獨立的串口采集線程,將傳感內(nèi)碼存儲到內(nèi)存中

      Private Sub Timer1_Timer()' 使用定時器,從內(nèi)存中讀內(nèi)碼。

      DoEvents

      Dim b As String ' 從串口返回的內(nèi)碼字符串

      Dim LoadCellNumber As Integer ' 傳感器數(shù)目

      LoadCellNumber=8' 此處以8 個傳感器為例

      b=LoadCellReadData“( boast”,LoadCellNumber,25)' 從內(nèi)存讀取全部傳感器內(nèi)碼,25 是單只傳感器讀寫周期,與USB- RS232 轉(zhuǎn)換器質(zhì)量有關(guān)③

      Text2.Text=b' 讀取的結(jié)果顯示到text2.text 中,字符串以S 開頭E 結(jié)尾,每6 個字符是一個傳感器內(nèi)碼,整個字符串長度= 傳感器個數(shù)×6+2

      If Left(b, 1)=“S” Then 判斷起始符

      For i = 0 To LoadCellNumber - 1 ' 分別獲取每只傳感器內(nèi)碼

      Label1(i).Caption = Mid(b, 2 + i×6, 6)Next i

      End If

      End Sub

      傳感器異常時,內(nèi)碼顯示:

      ①如果傳感器內(nèi)碼返回+88888 表示校驗錯誤,一般是由現(xiàn)場干擾引起。例如:大型感性負載起動,造成傳感器供壓不穩(wěn)

      ②如果傳感器內(nèi)碼返回+99999 表示傳感器未通訊,請檢查連線是否正確

      ScalePort.dll 函數(shù)庫只能獲取數(shù)字傳感器內(nèi)碼,如果要修改地址,請用《BOAST 串口調(diào)試工具v3.67》。

      獲取數(shù)字傳感器內(nèi)碼是編寫數(shù)字稱重軟件的第一步,要完成一個實用的稱重軟件,后續(xù)還有許多工作要做。如標定、調(diào)角差、零點跟蹤、開機置零等。當然,也可以參考一些市場上的主流的稱重儀表,如XK3180、XK3190A9、DS1 等,借鑒一下他們的設(shè)計思路,可以起到事半功倍的效果。筆者曾在衡器廠做過2- 3 年的售后服務(wù),所以對這些表比較熟悉。

       

       

      本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除

      分享到