永久免费国产网站_中文欧美乱码视频_欧美三级特黄片在线免费观看_亚洲综合日韩中文字幕v在线_日韩亚洲一区av_少妇高潮呻吟在线观看_日本少妇强奸中文字幕高清_欧美不卡一级黄片_国产av.无码久久_性行为视频免费国产

? ? ? ?

咨詢電話

ENGLISH0755-88840386
學(xué)習(xí)專題

咨詢電話

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

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

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

在純軟件數(shù)字秤稱重方案中,稱重軟件工作時(shí),計(jì)算機(jī)需要和數(shù)字傳感器通訊,獲取傳感器內(nèi)碼。因此,要用到數(shù)字傳感器通訊協(xié)議。一般情況下,傳感器廠家出于安全、防作弊考慮,不對(duì)外公開協(xié)議。為了方便用戶開發(fā)稱重軟件(本文僅針對(duì)博達(dá)公司的數(shù)字傳感器的稱重軟件),博達(dá)公司提供了專用的通訊函數(shù)庫(ScalePort.dll)。用戶在開發(fā)軟件時(shí),可以通過調(diào)用庫中的函數(shù),獲取數(shù)字傳感器的內(nèi)碼。使用此函數(shù)庫時(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ù): 串口號(hào), 通訊參數(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)碼,用戶不用擔(dān)心效率問題,在調(diào)用OpenScalePort ' 函數(shù)時(shí),ScalePort.dll 已經(jīng)在后臺(tái)創(chuàng)建了獨(dú)立的串口采集線程,將傳感內(nèi)碼存儲(chǔ)到內(nèi)存中

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

DoEvents

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

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

LoadCellNumber=8' 此處以8 個(gè)傳感器為例

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 個(gè)字符是一個(gè)傳感器內(nèi)碼,整個(gè)字符串長度= 傳感器個(gè)數(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

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

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

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

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

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

 

 

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

分享到