咨询电话

ENGLISH0755-88840386
新闻中心

咨询电话

0755-88840386
您的位置:首页 > 新闻中心>详情页

称重显示仪表与计算机的数据通讯

发布时间:2020-01-14 09:40:50 |来源:网络转载

 目前, 大多数汽车衡和轨道衡由以下三部分构成: 称体机械部分、称重传感器、称重显示仪表。称重显示仪表的主要功能是将从称重传感器出来的称重信号( mV 级模拟信号) 进行 A/D 转换, 并进行显示、打印等 。但这些功能往往不能满足实际要求 ,一般情况下 ,要将称重数据传递到计算机 , 由计算机对计量信息( 包括称重数据、物品名称 、来源、去向等) 进行统计分析 。因此将称重显示仪表的数据采集到计算机,即称重显示仪表与计算机进行通讯,显得十分重要。

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的通讯, 并对通讯数据进行和必要的处理。这种方法还可以推广应用到其他类型的称重显示仪表。有兴趣的同行不妨一试 。

称重显示仪表与计算机的通讯是一项基础的技术工作, 为采用计算机管理计量信息奠定了非常坚实的技术基础。

 

 

本文源于网络转载,如有侵权,请联系删除

分享到