谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

自動稱重顯示控製器儀表與計算機的數據通訊

發布時間: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的通訊, 並對通訊數據進行和必要的處理。這種方法還可以推廣應用到其他類型的稱重顯示儀表。有興趣的同行不妨一試 。

稱重顯示儀表與計算機的通訊是一項基礎的技術工作, 為采用計算機管理計量信息奠定了非常堅實的技術基礎。

 

本文源於網絡轉載,如有侵權,請聯係刪除

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8凱發K8