您当前的位置:首页>>新闻中心>>行业动态

基于Delphi下电子秤的研制

时间:2017-08-08 01:37:56   点击数:

针对传统方式下计算机与外围设备通讯可视化低的缺点,以ACS-30-XB信函包裹电子秤为例,系统地介绍 PC机与8031单片机的串行通讯原理,在WHmiows 98操作系统下用Delphi语言开发实现了 ACS -30-XB电子秤的量程自 动切换和零点自动跟踪功能PC机与ACS -30 -XB电子秤之间的串行通讯,并通过配置的RS 232 C标准串行口,实现计算 机的联网管理。实验结果表明,开发的ACS-30-XB电子秤在显示精度和稳定性方面都表现出了较好的特性,同时,具有良 好的可视化界面,便于操作管理。

1.引言

电子秤作为一种自动称重的串行通信外围设备,被各 行各业广泛使用,如车辆自动称重电子磅秤,邮政系统使 用的多功能信函包裹电子秤等。这些电子秤都是通过标 准串行通讯接口——RS 232 C与计算机进行连接,并将 采集到的数据以规定的协议格式通过线路传输到计算机 中,而计算机也以同样的通讯协议接收数据并加以处理, 从而完成计算机与外围设备的串行通讯。串行通讯是指 在一根传输线路上一位一位地传送数据,其特点在于:虽 传输速度慢、效率低,但传送可靠,所用的传输线路少,特 别适合于远距离传输,因而在实际应用中被广泛使用。 传统方式下要实现计算机与外围设备的通讯,大多采用汇 编语言或C语言来实现。然而随着Windows98操作系统 的广泛使用和图形化用户界面GUI)开发工具的广泛流 行,研究基于Windows98平台下的串口通讯程序的实现方法就具有非常实际的意义。一方面他提高传统开发方 式的效率;另一方面他弥补传统程序设计语言的局限性, 可以将串口通讯程序与许多其他应用相互结合起来,如: 数据库技术等。本文将以ACS-30-XB信函包裹电子秤 为例,具体介绍串行通信的基本原理以及利用Delphi语言 如何具体实现上述电子秤的串行通讯方法。

2.ACS-30-XB电子秤简介及串行通讯原理

2.1电子秤简介

ACS-30-XB电子秤是由中国航空工业总公司开发研制的,集邮政功能与商用功能于一体的智能 型产品。该秤采用8031单片机和高精度测力传感器,具 有量程自动切换和零点自动跟踪功能,在显示精度和稳定 性方面都具有较好的表现,该秤配置RS 232 C标准串行 口,可实现计算机联网管理,为实现邮政电子化提供了 基础。

2.1.1主要技术指标

量程0 ~ 30 kg ;最小显示1 g/0 ~ 3 kg 2 g/3 ~ 6 kg; 5 g/6 ~ 15 kg; 10 g /15 ~30 kg 准确度1 /3 000 F ?S;重量显示窗:5位。

2.1.2串口功能定义

ACS - 30 - XB电子秤中8031单片机的串口功能定义 为只用TXDRXD其他脚不用。

2.1.3串口通讯协议定义

波特率2 400 b;起始位1;数据位:8;奇偶校验位: ;读数命令:61H (ASCII W数据输出格式5 ASCII码表示重量,重量单位克,各ACSII位的进制单位 依次为万位、千位、百位、十位、个位。

2.2PC机与电子秤的串行通讯原理

2.2.1系统硬件组成

系统釆用PC机作为上位机ACS - 30 - XB电子秤作 为下位机,二者通过RS 232C串行接口进行连接,传输介 质为4芯屏蔽电缆,具体连接见图1。系统釆用主从结构 进行通讯,其中RXDTXD和一根地线共同构成了一个最 简单的全双工串行通讯连接线路,可实现双向数据收发

2.2.2单片机串行通讯内部工作机制

云网客1.jpg

由于单片机TTL电平和RS 232C电平不兼容,因此 必须外接电路实现电平转换。在ACS -30 -XB电子秤 中釆用TI公司的MAX 232来实现上述转换,其接口电路 如图2所示MAX 232芯片工作时使用电源+5V需外 40. 1 W电容RS 232C总线在没有数据传送时,保 持低电平-5V?-15V;在通信时,PC机从单片机数据 源接受数据,因此必须在硬件上实现多个数据源之间相互 隔离,以免没有发送信号的单片机的低电平对正在发送的 信号形成干扰。图2MAX 232的第14脚通过一个二 极管接到RS 232C2号线上,2号线通过一个10 k^电 阻下拉至MAX 232的第6脚,这样就避免数据干扰,实现 信号的正常发送。

另外,整个系统中,由于各下位机共享串行总线,为避免冲突,系统釆用主从控制方式工作,每次通讯都由上位 机开始,由上位机分配总线的使用权,同时下位机也可请 求通讯以上报数据,但需要等待上位机将总线使用权分配 给他才能发送数据,因此每台下位机都需分配一个惟一的 地址。

云网客2.jpg

2.2.3 PC机与8031单片机串行通讯原理

依据上述通讯协议,上位机的软件以协议规定方式初 始化并打开串行端口,并向串口发送Y字符作为读数指 令,以控制下位机发送实际称重数据;上位机读数指令发 送完毕后,等待接收下位机数据;下位机在接收到读数指 令后,通过串口发送实际称重数据。上位机在接收到称重 数据后,一次串口通讯过程完成。

3.软件实现

3.1开发平台及开发工具的选择

釆用Windows98操作系统作为主控机软件开发的平 台,因为其是现今广泛使用的操作平台,具有良好的用户 界面,并且操作简便,简单易学。而Delphi作为当今快速 应用程序开发RAD)工具中的佼佼者,具有完全面向对 象、完全编译、编译后代码运行速度快且可独立运行等优 ;尤其是支持第三方的控件体系,使其具有强大的功能 扩展性,因此是首选的开发工具。

3.2 PC机与8031单片机的串口通讯的具体实现

3.2. 1 SPCOMM控件的安装

选择DelphiComponent”主菜单,再选择子菜单 Install Component …”,浏览找到下载的 Spcomm. pas 序文件,即可将其安装到System控件页中,控件类名为 T Comm

3.2.2创建新工程

Delphi中新建一个工程文件,在主窗体Form1 放置一个名为Comm1TComm控件,用于串口通信,并 在窗体上放置一个名为Edit1TEdit控件,用于显示接 收到的称重数据。

3.2.3编程实现读取电子秤上称重的数据

根据以上电子秤所用8031单片机的通信协议,可配置TComm的相应属性,从而实现PC机与8031单片机间的通信,具体实现方法如下:

在程序单兀Unit1Private节中添加以下InitPort

SendReadSignal两个过程声明,其实现代码如下:

//初始化端口子过程 procedure Tform1. InitPort begin

=Com2 

//指定端口名为Com2端口 2400 / /波特率 2 400

Comm1. StopComm; Comm1. CommName

Comm1. Baud Rate ::

云网客3.jpg

云网客6.jpg

4.结语

实验结果表明利用Delphi开发串口通讯程序,不但 程序的可读性好、编程效率高,而且利用Delphi便于开发 数据库程序的特性,很容易将串口通讯功能与数据库应用 结合起来,以更好地满足市场的需要,编写的基于Win dows 98操作系统下的信函包裹自动称重记费系统,在邮 政行业中被广泛使用,取得了较好的效益。