咨詢電話
ENGLISH0755-88840386發(fā)布時間:2020-01-14 09:40:50 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
目前, 大多數(shù)汽車衡和軌道衡由以下三部分構(gòu)成: 稱體機械部分、稱重傳感器、稱重顯示儀表。稱重顯示儀表的主要功能是將從稱重傳感器出來的稱重信號( mV 級模擬信號) 進(jìn)行 A/D 轉(zhuǎn)換, 并進(jìn)行顯示、打印等 。但這些功能往往不能滿足實際要求 ,一般情況下 ,要將稱重數(shù)據(jù)傳遞到計算機 , 由計算機對計量信息( 包括稱重數(shù)據(jù)、物品名稱 、來源、去向等) 進(jìn)行統(tǒng)計分析 。因此將稱重顯示儀表的數(shù)據(jù)采集到計算機,即稱重顯示儀表與計算機進(jìn)行通訊,顯得十分重要。
1. AD-4322A 稱重顯示儀表的參數(shù)設(shè)置
AD- 4322A 是日本產(chǎn)稱重顯示儀表 , 性能穩(wěn)定 ,A/D 轉(zhuǎn)換精度高、速度快,在我公司的應(yīng)用十分廣泛。其串行接口附件 OP -4 提供標(biāo)準(zhǔn)RS-232C 口 ,采用半雙工異步傳輸方式進(jìn)行串行通訊。
1. 1 AD- 4322A 功能鍵的設(shè)置
1. 2 AD-4322A 發(fā)送數(shù)據(jù)時的數(shù)據(jù)格式
AD -4322A 發(fā)送的數(shù)據(jù)共 18位 ,其含義如下:
說明:
標(biāo)志 1: 超最大量程/低于最小分度值/靜止/不穩(wěn)定之一
標(biāo)志 2: 凈重/毛重/皮重之一
單 位: kg/t/1b 之一
定義符 : CR 為回車符, LF 為換行符, LF 是數(shù)據(jù)發(fā)送結(jié)束的標(biāo)志 。
例如 : 某一靜止物體的凈重約為 350. 7kg ,那么其數(shù)據(jù)格式為:
1. 3 AD-4322A 中有關(guān)通訊參數(shù)
本程序中,有關(guān)的通訊參數(shù)共 4個 :
波特率 : 2400bps
數(shù)據(jù)位 : 7 位
停止位 : 1 位
奇偶性 : 偶校驗方式
2. 通訊軟件的編制
通訊軟件采用 Turbo C 設(shè)計 , 是一個內(nèi)存駐留程序 , 當(dāng)通訊條件( AD-4322A 顯示的數(shù)據(jù)穩(wěn)定) 滿足時,通訊結(jié)果以中斷方式采集到計算機 , 存放于內(nèi)存 0000: 0200H 處。駐留程序在內(nèi)存中占 200 節(jié)( 每節(jié)16 個字節(jié)) , 約 3K 。位置由系統(tǒng)自動分配。程序清單如下 :
/ *a. c: 主程序* /
# include”dos. h”
# include”stdio . h' ”
void tsr ( unsigned int) ;
void interrupt seri( void) ;
char far * rec =( char far *)MK_FP( 0x0000, 0x0200) ;
/ *通訊數(shù)據(jù)在內(nèi)存中的起始位置* /
main( )
{ disable( ) ; / *關(guān)閉低級到中斷* /
setvect( 0x0c, seri) ; / *設(shè)置中斷程序入口地址* /
outportb( 0x21, 0x24) ; / *向 COMI 發(fā)送通訊參數(shù)* /
outportb( 0x3fb, 0x80) ;
outportb( 0x3f8, 0x30) ;
outportb( 0x3f9, 0x00) ;
outportb( 0x3fb, 0x0a) ;
outportb( 0x3fc, 0x08) ;
outportb( 0x3f9, 0x01) ;
enable( ) ; / *開放低級別中斷* /
tar( 200) ;
}
void tsr ( unsigned int size)
/ *內(nèi)存駐留子程序* /
/ *功能: 結(jié)束主程序并將主程序駐留在內(nèi)存中* /
{ union REGS r;
r. h. ah =0x31; / * INF 2IH 中的入口參數(shù), 使用 31# 子功能* /
r. h. al=0;
r. x . dx =size; / *編繹, 連接后駐留內(nèi)存程序的長度* /
int86( 0x21. &r. & r) ; / *系統(tǒng)功能調(diào)用* /
}
void interrupt seri ( void)
/ *中斷子程序* /
/ *功能: 將 AD-4422A 的數(shù)據(jù)采集過來,存放于內(nèi)存 0000: 0200H 處* /
{ char far *recl =( char far *)MK FP( 0x0000, 0x0200) ;
( *rec) =inportb( 0x3f8) ; / *從 COMI 口取回一個字節(jié)* /
if ( ( *rec) ==0x0a
rec=rec1;
else
rec ++ ;
outporbt( 0x20, 0x20) ; }
3. “軟件接口—數(shù)據(jù)處理程序
通訊的結(jié)果數(shù)據(jù)存放于內(nèi)存0000: 0200H 處 , 但 FOXPRO 沒有這種數(shù)據(jù)的處理能力 ,為此 ,必須制作一個“軟件接口” , 將存放于內(nèi)存中的數(shù)據(jù)轉(zhuǎn)換成 FOXPRO 處理的數(shù)據(jù)形式 。
在這里, 用 C 語言開發(fā)了一個小程序,將內(nèi)存 0000: 0200H 處的數(shù)據(jù)輸出到一個文本文件 ,以便利用。程序清單如下 :
# include”dos. h”
# include”stdio . h”
char far * rec =( char far *)MK_FP( 0x0000, 0x0200) ;
/ *定義要處理的數(shù)據(jù)在內(nèi)存中的位置* /
main( )
{ FILE *f. *fopen( ) ;
int i;
f=fopen( ”data . dat” ,”w”) ;
/ *data . dat 是存放通訊結(jié)果數(shù)據(jù)的文本文件* /
for( i=0; i<16; i ++ )
fpute( rec[ i] , f) ;
fclose( f) ;
exit( 0) ; }
4.結(jié)束語
上述程序在 AST4/66d 上調(diào)試通過 。實現(xiàn)了計算機與 AD - 4322A的通訊, 并對通訊數(shù)據(jù)進(jìn)行和必要的處理。這種方法還可以推廣應(yīng)用到其他類型的稱重顯示儀表。有興趣的同行不妨一試 。
稱重顯示儀表與計算機的通訊是一項基礎(chǔ)的技術(shù)工作, 為采用計算機管理計量信息奠定了非常堅實的技術(shù)基礎(chǔ)。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請聯(lián)系刪除