双静态汽车衡称重系统的软件开发
- 发布时间:2017/11/28 16:28:19
- 浏览次数:676
随着计算机软、硬件的飞速发展,计算机巳在各行各业得到了广泛的应用。为了 适应大规模生产及大物流的需要,提高检斤速度,检斤质量及检斤数据的管理,我们把计算机网 络技术、数据库技术应用于地磅检斤系统中。本文介绍了一种通过计算机串型接口采集称重 仪表数据,用局域网和SQL关系数据库管理检斤数据,从而建立起的一套实现两台地磅互检 重车和皮车的一种客户/服务器结构的称重软件系统。zui实现了票据打印、数据存储、检索、自 动备份、远程传送等功能。
1.问题的提出
随着公司产量的不断提高,进出厂物资检斤量 也不断增大。为满足公司生产及大物流的需要,我 公司新建了两台相临的100t地磅。同时提出了双 秤互检重车和皮车的要求,即:可以在两台地磅其 中的任何一台检毛重而在另一台检皮重。这样大大 提高了检斤的效率。但是,要实现这一目的,数据的 可靠存取就成为了关键。因为在实际检斤过程中常 出现两台地磅同时检斤、同进存取数据,这样就要 同时操作同一数据库。一般的数据库都是以占的 方式打开的,所以两个或两个以上的用户在对同一 个数据库进行读、写时就会出现其中一个数据不能 写入或读出的问题,而这在检斤过程中是不允 许的。为解决此问题,我们建立和开发了一个客户/服务器结构的称重软件,采用SQLServer数据库来 解决这个问题。
2.系统的构成
称重系统主要由三台计算机(其中一台安装Win2000、SQL Server2000 做服务器);两台 670K+票据打印机;交换机;称重传感器;分线盒;称重仪表组 成。系统构成如图1所示。

地磅在检斤时,由称重传感器将重量信号转 变为电压信号,其原理如图2所示。经称重仪表进 行A/D转换后,由RS232串行接口将重量值传送给 计算机。计算机对数据进行处理后,将毛重、皮重、 净重、发货单位、收货单位、检斤时间、品名、规格、车 号、车型等存入数据库。

3.软件的设计
软件的设计主要分成数据采集、数据计算存储、 票据打印、数据查询、远程传送五个部分。采用 VB6.0编程语言开发,下面分别介绍。
①数据采集
计算机的数据采集是通过RS232串行接口与 称重仪表相连。要想与仪表实现通讯就必须知道仪 表的通讯协议。我们的称重仪表采用的是余姚太平 洋自控有限公司的PA8101,其通讯协议如下:

SOH: 报文引导信息头 ADDR:仪表地址
STX: 报文开始
BLOCK:信息块;W:数据;e:重量值的阶码;
m: 动态检测位。
ETX: 报文结束
BCC: 信息块校验和
回车
此仪表有两种通讯方式:一种是连续发送方式,另 种是命令方式。由于每台计算机只和一台仪表通讯, 因此我们采用的是*种通讯方式。用VB实现串行通 讯有多种方法,如:API函数、有VB ActiveX控件、第三 方控件及动态链接库。我们采用的是用VB控件 MSCOM的方法。先要对MSCOM进行初始化:
MSComm 1.CommPort= 1 设置串行 口为 COM1; MSComm1 .PortOpen=True 打开串行口; MSComm1.Settings="9600,n,7,1"设置串口 波 特率为9600,数据位为7,停止位为1。
用定时器控件实现每秒一次的数据采集。代码 如下:
Dim mysrr As Variant Dim mybyte As Variant DimBunin(1000) As Byte Dim iLen, i As Long Dim ComDate As Long Dim wd As Integer mysrr=Inbuf mysrr=MSComm 1. Input iLen=Len(mysrr) mybyte=mysrr For i=1 To iLen Inbuf( i) =mybyte( i)
Next i
Dim ComDat, ComDat1, ComDat2, ComDat3 As Variant
Dim ComDat4 As Double For i=0 To iLen
ComDat=ComDat + ChrS( Inbuf( i))
Next i
ComDat1=InStr( ComDat, Chr( 65))
If ComDat1=0 Then Exit Sub
ComDate=Val(Mid(ComDat,ComDat1+7,1))/求阶码 e
For i = ComDat1 + 2 To ComDat1+6
ComDat2 = ComDat2 + Mid( ComDat,i,1)
Next i
ComDat3 = Val( ComDat2)
ComDat4=ComDat3 >40 八ComDate /10 八5 求称重值 wd%=Val(Mid(ComDat,ComDat1+8,1))求动态检测 位m
②数据存储
此部分是称重系统的关键,是解决数据库共享 的核心。在系统硬件上,我们采用客户/服务器结构 如图1所示。因此,在三台计算机中的一台计算机上 安装了 Wm2000 Server 和 SQL Server2000 将其配 置成服务器。用SQL Server 2000建立数据库,通过 交换机(TP-Lmk)组成了一个小的局域网。在服务器 上分别为另两台计算机设置了帐号和密码,使其能 通过ODBC共享服务器上的数据。在数据库的操作 上采用ADO技术如图3。

在ADO使用前应*行对ADO的引用,然后 定义变量,代码如下所示:
Dim Connf As ADODB. Connection Dim Rsf As ADODB. Recordset Dim Cmdf As ADODB. Command Set Connf = New ADODB. Connection Set Rsf = New ADODB. Recordset Rsf.Supports (adAddNew)
Connf CursorLocation=adUseClient Connf.Open"DSN=car100;","",""
’打开ODBC的数据源 Rsf. Active Connection = Connf Rsf.LockType = adLockOptimistic Rsf.CursorType = adOpenDynamic Rsf.open ’打开数据库
数据存储软件设计如图4。

③数据的查询及票据打印 在进行票据打印时,先由系统对所打印的车 号、品名、发货单位、收货单位等进行查询,然后通过 代码完成打印格式的控制,zui后由Epson 670K+票 据打印机将要打印的数据项打印到巳印刷好的检斤 单内。程序代码如下:
Printer. ScaleMode=6 Printer. F ontSize= 12 Printer. CurrentX= 15 处开始打印
Printer. CurrentY=3 0 Printer.Print RsPrint RsPrint("收货单位")
Printer.EndDoc
④远程传送
在每天检斤完后,检斤员可以进行交班操作,即 将当天巳打印出票的检斤数据汇总到一个总的数据 库。同时生成一个当天检斤量的二进制文件(*.dat)。 在程序中内嵌一个调用网络拨号连接的程序,可对 直接通过Modem登录到公司内的远程服务器,将* dat文件传送过去,以便公司对其进行处理,便于公司 掌握进厂物资量及出厂产品量。代码如下:
Shell "rundll rnaui.dll,RnaDial 6692001", vbNormalFocus
4.系统的功能
该系统不但实现了双地磅互检的要求,同时 还具有数据的安全存储、查询、打印、远程传送、计算 检车数/出票数及记忆品名、发货单位、收货单位等 信息的功能。另外由于采用两台地磅共享SQL数 据库,还可以在服务器上进行数据的安全备份,定期 整理,使数据更安全,减少公司的损失。软件界面如 图 5。

5.结束语
本文所介绍的软件现巳正式应用于生产中,并 且收到了良好的使用效果。不但大大提高了效率,而 且可靠性非常高。通过客户/服务器结构的软件开 发,说明SQL Server数据库及局域网巳不仅应用于 办公系统,将其应用于工业生产及自动化控制中,对 生产和管理同样会发挥出具大的作用。