咨询电话
ENGLISH0755-88840386发布时间:2020-01-03 10:19:24 |来源:网络转载
在纯软件数字秤称重方案中,称重软件工作时,计算机需要和数字传感器通讯,获取传感器内码。因此,要用到数字传感器通讯协议。一般情况下,传感器厂家出于安全、防作弊考虑,不对外公开协议。为了方便用户开发称重软件(本文仅针对博达公司的数字传感器的称重软件),博达公司提供了专用的通讯函数库(ScalePort.dll)。用户在开发软件时,可以通过调用库中的函数,获取数字传感器的内码。使用此函数库时,不需要其他的通讯控件。
ScalePort.dll 有两种功能:
①从仪表串口读取重量
②从数字传感器读取内码
为了区分仪表和数字传感器,将RS485- 232转换器获取内码的方式命名为“boast”
在VB6 中调用和调用Win32 API 类似,源码如下:
①Private Declare Function OpenScalePort Lib“ScalePort.dll” (ByVal ComPort As String, ByValseting As String, ByVal fangshi As String) As Long
' 打开称重串口, 参数: 串口号, 通讯参数, “start”
②Private Declare Function CloseScalePort Lib“ScalePort.dll” () As Long' 关闭称重串口
③Private Declare Function LoadCellReadDataLib “ScalePort.dll” (ByVal LoadCellType AsString, ByVal LoadCellNumber As Long, ByValntime As Long) As String
' 数字传感器连续读内码指令( 参数1:“boast”;参数2:传感器数目;参数3:单只传感器读写周期(毫秒为单位))
Private Sub Command1_Click()'打开按钮
If OpenScalePort(Combo2.Text, Text1.Text, Combo3.Text)= 1 Then ' 打开串口,①
If Combo1.Text=“boast” Then
Timer1.Enabled=True' 读传感器
End If
Command1.Enabled=False
Else
MsgBox “串口打开不成功!”, vbInformation+vbOKOnly, “提示”
End If
End Sub
Private Sub Command2_Click()' 关闭按钮Timer1.Enabled=False
e=CloseScalePort' 关闭串口②
Command1.Enabled=True
End Sub
Private Sub Form_Unload(Cancel As Integer)e=CloseScalePort' 关闭串口②
End Sub
' 通过485~232 转换器,读数字传感器内码,用户不用担心效率问题,在调用OpenScalePort ' 函数时,ScalePort.dll 已经在后台创建了独立的串口采集线程,将传感内码存储到内存中
Private Sub Timer1_Timer()' 使用定时器,从内存中读内码。
DoEvents
Dim b As String ' 从串口返回的内码字符串
Dim LoadCellNumber As Integer ' 传感器数目
LoadCellNumber=8' 此处以8 个传感器为例
b=LoadCellReadData“( boast”,LoadCellNumber,25)' 从内存读取全部传感器内码,25 是单只传感器读写周期,与USB- RS232 转换器质量有关③
Text2.Text=b' 读取的结果显示到text2.text 中,字符串以S 开头E 结尾,每6 个字符是一个传感器内码,整个字符串长度= 传感器个数×6+2
If Left(b, 1)=“S” Then 判断起始符
For i = 0 To LoadCellNumber - 1 ' 分别获取每只传感器内码
Label1(i).Caption = Mid(b, 2 + i×6, 6)Next i
End If
End Sub
传感器异常时,内码显示:
①如果传感器内码返回+88888 表示校验错误,一般是由现场干扰引起。例如:大型感性负载起动,造成传感器供压不稳
②如果传感器内码返回+99999 表示传感器未通讯,请检查连线是否正确
ScalePort.dll 函数库只能获取数字传感器内码,如果要修改地址,请用《BOAST 串口调试工具v3.67》。
获取数字传感器内码是编写数字称重软件的第一步,要完成一个实用的称重软件,后续还有许多工作要做。如标定、调角差、零点跟踪、开机置零等。当然,也可以参考一些市场上的主流的称重仪表,如XK3180、XK3190A9、DS1 等,借鉴一下他们的设计思路,可以起到事半功倍的效果。笔者曾在衡器厂做过2- 3 年的售后服务,所以对这些表比较熟悉。
本文源于网络转载,如有侵权,请联系删除