谘詢電話
ENGLISH0755-88840386發布時間:2020-04-13 15:14:52 |來源:網絡轉載
1. AD-4322A 稱重顯示儀表的參數設置
AD- 4322A 是日本產稱重顯示儀表 , 性能穩定 ,A/D 轉換精度高、速度快,在我公司的應用十分廣泛。其串行接口附件 OP -4 提供標準RS-232C 口 ,采用半雙工異步傳輸方式進行串行通訊。
1. 1 AD- 4322A 功能鍵的設置
1. 2 AD-4322A 發送數據時的數據格式
AD -4322A 發送的數據共 18位 ,其含義如下:
說明:
標誌 1: 超最大量程/低於最小分度值/靜止/不穩定之一
標誌 2: 淨重/毛重/皮重之一
單 位: kg/t/1b 之一
定義符 : CR 為回車符, LF 為換行符, LF 是數據發送結束的標誌 。
例如 : 某一靜止物體的淨重約為 350. 7kg ,那麽其數據格式為:
1. 3 AD-4322A 中有關通訊參數
本程序中,有關的通訊參數共 4個 :
波特率 : 2400bps
數據位 : 7 位
停止位 : 1 位
奇偶性 : 偶校驗方式
2. 通訊軟件的編製
通訊軟件采用 Turbo C 設計 , 是一個內存駐留程序 , 當通訊條件( AD-4322A 顯示的數據穩定) 滿足時,通訊結果以中斷方式采集到計算機 , 存放於內存 0000: 0200H 處。駐留程序在內存中占 200 節( 每節16 個字節) , 約 3K 。位置由係統自動分配。程序清單如下 :
/ *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) ;
/ *通訊數據在內存中的起始位置* /
main( )
{ disable( ) ; / *關閉低級到中斷* /
setvect( 0x0c, seri) ; / *設置中斷程序入口地址* /
outportb( 0x21, 0x24) ; / *向 COMI 發送通訊參數* /
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)
/ *內存駐留子程序* /
/ *功能: 結束主程序並將主程序駐留在內存中* /
{ union REGS r;
r. h. ah =0x31; / * INF 2IH 中的入口參數, 使用 31# 子功能* /
r. h. al=0;
r. x . dx =size; / *編繹, 連接後駐留內存程序的長度* /
int86( 0x21. &r. & r) ; / *係統功能調用* /
}
void interrupt seri ( void)
/ *中斷子程序* /
/ *功能: 將 AD-4422A 的數據采集過來,存放於內存 0000: 0200H 處* /
{ char far *recl =( char far *)MK FP( 0x0000, 0x0200) ;
( *rec) =inportb( 0x3f8) ; / *從 COMI 口取回一個字節* /
if ( ( *rec) ==0x0a
rec=rec1;
else
rec ++ ;
outporbt( 0x20, 0x20) ; }
3. “軟件接口—數據處理程序
通訊的結果數據存放於內存0000: 0200H 處 , 但 FOXPRO 沒有這種數據的處理能力 ,為此 ,必須製作一個“軟件接口” , 將存放於內存中的數據轉換成 FOXPRO 處理的數據形式 。
在這裏, 用 C 語言開發了一個小程序,將內存 0000: 0200H 處的數據輸出到一個文本文件 ,以便利用。程序清單如下 :
# include”dos. h”
# include”stdio . h”
char far * rec =( char far *)MK_FP( 0x0000, 0x0200) ;
/ *定義要處理的數據在內存中的位置* /
main( )
{ FILE *f. *fopen( ) ;
int i;
f=fopen( ”data . dat” ,”w”) ;
/ *data . dat 是存放通訊結果數據的文本文件* /
for( i=0; i<16; i ++ )
fpute( rec[ i] , f) ;
fclose( f) ;
exit( 0) ; }
4.結束語
上述程序在 AST4/66d 上調試通過 。實現了計算機與 AD - 4322A的通訊, 並對通訊數據進行和必要的處理。這種方法還可以推廣應用到其他類型的稱重顯示儀表。有興趣的同行不妨一試 。
稱重顯示儀表與計算機的通訊是一項基礎的技術工作, 為采用計算機管理計量信息奠定了非常堅實的技術基礎。
本文源於網絡轉載,如有侵權,請聯係刪除