基于JACOB的托利多電子稱與計(jì)算機(jī)通信的研究_第1頁
基于JACOB的托利多電子稱與計(jì)算機(jī)通信的研究_第2頁
基于JACOB的托利多電子稱與計(jì)算機(jī)通信的研究_第3頁
基于JACOB的托利多電子稱與計(jì)算機(jī)通信的研究_第4頁
基于JACOB的托利多電子稱與計(jì)算機(jī)通信的研究_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于的托利多電子稱與計(jì)算機(jī)通信的研究基于的托利多電子稱與計(jì)算機(jī)通信的研究在基于javasing技術(shù)開發(fā)的過磅管理系統(tǒng)中,需要與串口通信,讀取電子稱的數(shù)據(jù)。irsft的s是一個(gè)功能強(qiáng)大的串口通信控件,在vb中用它來開發(fā)串口通信程序是一個(gè)不錯(cuò)的選擇。java的jni類庫(kù)用于訪問/+代碼是比較方便的,但是用來訪問vb開發(fā)的串口通信程序卻很費(fèi)事1。jab(java-bridge)是一個(gè)開源的基于jni技術(shù)開發(fā)的類庫(kù),用于java代碼與組件之間的通信。本文利用jab在javasing中調(diào)用vb下開發(fā)的dll串口通信程序,實(shí)現(xiàn)對(duì)地磅數(shù)據(jù)的自動(dòng)讀齲一、8142系列電子秤串口數(shù)據(jù)格式與s通信控件綠華糖廠使用的

2、托利多電子秤型號(hào)是8142或是8142pr,這兩種電子秤的串口發(fā)送數(shù)據(jù)方式都是設(shè)置為連續(xù)發(fā)送,而且數(shù)據(jù)格式都是一樣的,如表1所示:其中,狀態(tài)字a、b、分別表示小數(shù)點(diǎn)位置、分度倍乘、是否超載等信息,詳細(xì)見電子稱所附說明書。限于篇幅,不再一一給出。綜上可知一幀數(shù)據(jù)共有18個(gè)字節(jié),但實(shí)際傳輸中只用了17個(gè)字節(jié),最后一個(gè)字節(jié)檢查校驗(yàn)和,一般不使用。計(jì)算機(jī)與串口通信程序的開發(fā)利用sativex控件是比較方便的2。它具有如下重要屬性:prt屬性:設(shè)置與返回通訊端口數(shù);settings屬性:設(shè)置與返回波特率,奇偶校驗(yàn)位,字符串的停頓位和數(shù)據(jù)位;prtpen屬性:設(shè)置與返回通訊端口的狀態(tài),并可開放、關(guān)閉端口;

3、input屬性:返回和刪除接收緩沖區(qū)的字符;utput屬性:寫字符串到發(fā)送緩沖區(qū)。一數(shù)據(jù)包的提取數(shù)據(jù)包的提取是利用n事件來完成的。設(shè)置s的rthreshld屬性為18,這樣當(dāng)接收緩沖區(qū)收到18個(gè)字節(jié)時(shí),就會(huì)發(fā)生s事件。由于電子稱工作于連續(xù)發(fā)送方式,即使收到18個(gè)字節(jié)仍不能保證是一個(gè)完好的數(shù)據(jù)鄭因此就必須對(duì)這18個(gè)字節(jié)做進(jìn)一步的分析,以確認(rèn)是否為有效數(shù)據(jù)。由表1的數(shù)據(jù)格式可知,正確的數(shù)據(jù)包的第一個(gè)字節(jié)為02h,第17個(gè)字節(jié)為0dh。這樣,在s事件中就可以檢測(cè)這兩個(gè)位置的字節(jié)以判斷是否為正確的數(shù)據(jù)鄭二超載檢測(cè)和負(fù)值檢測(cè)假如承受的數(shù)據(jù)超載即承受的重量超過電子秤的量程范圍或者為負(fù)值,承受數(shù)據(jù)就沒有意義

4、了,所以必須對(duì)它進(jìn)展檢測(cè)。超載檢測(cè)主要是判斷數(shù)據(jù)包中的狀態(tài)字b的2位數(shù)據(jù)是否為1,假設(shè)為1,那么為超載;假設(shè)為0,那么為正常,可以通過超載檢測(cè)。負(fù)值檢測(cè)主要是判斷狀態(tài)字b中的1位數(shù)據(jù)是否為1,假設(shè)為1,那么為負(fù)值;假設(shè)為0,那么為正常,可以通過檢測(cè)。三重量數(shù)據(jù)的析取在托利多電子秤上所顯示的重量數(shù)據(jù)在數(shù)據(jù)包中處于5到10位,有6個(gè)字節(jié),每個(gè)字節(jié)對(duì)應(yīng)于電子秤所顯示的一位數(shù)值。將每個(gè)字節(jié)轉(zhuǎn)換為字符并連接為字符串,就可以作為重量數(shù)據(jù)返回給上層調(diào)用程序了。二、電子稱數(shù)據(jù)采集dll控件的開發(fā)通信程序的開發(fā)是在vb6.0環(huán)境下完成的。點(diǎn)擊文件-新建工程,在彈出的新建工程對(duì)話框中選擇ativexdll控件選項(xiàng)

5、,新建一個(gè)工程,取名為tuled8142。并為該工程添加一個(gè)s控件。源碼主要包括兩個(gè)函數(shù)與一個(gè)n事件處理。其中g(shù)etheng函數(shù)供sing調(diào)用以設(shè)置通信格式并翻開口3。其代碼如下:publifuntingetheng()s1.prt=1s1.settings=9600,e,7,1s1.rthreshld=18s1.inputlen=18s1.inbufferunt=0s1.prtpen=trueendfuntin在n事件中判斷數(shù)據(jù)幀是否有效,并負(fù)責(zé)析取重量數(shù)據(jù),主要代碼如下:privatesubs1_n()diinbytes()asbyteinbytes=s1.inputifinbytes(0

6、)=2andinbytes(16)=13thenvalue=hr(inbytes(4)hr(inbytes(5)hr(inbytes(6)hr(inbytes(7)hr(inbytes(8)hr(inbytes(9)s1.inbufferunt=0s1.prtpen=falseexitsubendsubgetvalue函數(shù)僅供sing讀出重量值:publifuntingetvalue()asstringgetvalue=valueendfuntin接著就需要將該通信程序封裝為x控件。詳細(xì)步驟為,點(diǎn)擊文件-生成tuled8142.dll。這樣會(huì)生成tuled8142.dll文件,可以供sing使

7、用了。三、在sing中使用數(shù)據(jù)采集dll控件一jab的安裝在elipse3.2中,右鍵點(diǎn)擊工程,翻開nfiguratin對(duì)話框,將jab.jar文件參加到lasspath中。二在sing中的java讀磅值函數(shù)publistringreadheng()stringresult=ndata;intunt=0;dispathhengreader=nedispath(yujvheng.lass1);dispath.all(hengreader,beginreadheng);hile(result.equals(ndata)result=dispath.all(hengreader,getresult)

8、.tstring();if(unt+10000)break;returnresu三使用多線程實(shí)時(shí)顯示磅值在實(shí)時(shí)顯示數(shù)據(jù)的同時(shí),為了不影響正常操作的進(jìn)展,必須用多線稱實(shí)現(xiàn)數(shù)據(jù)的顯示4。以下是顯示數(shù)據(jù)的線稱類:lassdisphengthreadipleentsrunnablepublividrun()dispathhengreader=nedispath(heng4thread.lass1);hile(ishengthreadrunned)trythread.sleep(400);ath(interruptedexeptine)e.printstaktrae();stringresult=ndata;intunt=0;dispath.all(hengreader,beginreadheng);hile(result.equals(ndata)trythread.sleep(50);ath(interruptedexeptine)e.printstaktrae();result=dispath.all(hengreader,getresult).tstring();if(unt+10)break;valuehenglabel.set

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論