数字传感器软件开发接口

类别:最新资讯 时间:2018-03-20 点击:54 次

本文介绍了通过RS485- 232转换器,连接PC与数字传感器,获取数字传 感器内码的方法。针对数字传感器,介绍专用通讯函数库(ScalePortdll的调用接口,无须第三方控件,简单调用函数即可获取数字传感器内码。
在纯软件数字秤称重方案中,称重软件工作 时,计算机需要和数字传感器通讯,获取传感器 内码。因此,要用到数字传感器通讯协议。一般 情况下,传感器厂家出于安全、防作弊考虑,不 对外公开协议。为了方便用户开发称重软件本 文仅针对数字传感器的称重软件,公司提供了专用的通讯函数库(ScalePort.dll)。用 户在开发软件时,可以通过调用库中的函数,获 取数字传感器的内码。使用此函数库时,不需要 其他的通讯控件。
软件工作原理图如下所示:

ScalePortdll有两种功能:
①从仪表串口读取重量
②从数字传感器读取内码
为了区分仪表和数字传感器,将RS485-232 转换器获取内码的方式命名为“boast”
在VB6中调用和调用Win32 API类似,源码 如下:
① Private Declare Function OpenScalePort Lib “ ScalePortdll” (ByVal ComPort As String, ByVal seting As String, ByVal fangshi As String) As Long ’打开称重串口,参数:串口号,通讯参数,start
② Private Declare Function CloseScalePort Lib “ScalePort.dll” () As Long'关闭称重串口
③ Private Declare Function LoadCellReadData Lib “ScalePort.dll” (ByVal LoadCellType As String, ByVal LoadCellNumber As Long, ByVal ntime As Long) As String
'数字传感器连续读内码指令(参数1: “boast” ;参数2 :传感器数目;参数3 :单只传感 器读写周期(毫秒为单位))
Private Sub Command1_Click()'打开按钮 If OpenScalePort(Combo2.Text, Text1.Text, Com- bo3.Text)= 1 Then '打开串口,①
If Combo1.Text= “boast” Then Timer1.Enabled=True'读传感器 End If
Command1.Enabled=F alse Else
MsgBox “ 串 口打开不成功!”,vbInforma- tion+vbOKOnly, “提示”
End If End Sub
Private Sub Command2_Click()' 关闭按钮 Timer1.Enabled=F alse e=CloseScalePort'关闭串口② Command1.Enabled=True End Sub
Private Sub Form_Unload(Cancel As Integer) e=CloseScalePort'关闭串口②
End Sub
'通过485〜232转换器,读数字传感器内码, 用户不用担心效率问题,在调用OpenScalePort'函 数时,ScalePortdll已经在后台创建了独立的串口 采集线程,将传感内码存储到内存中
Private Sub Timer1_Timer()'使用定时器,从内 存中读内码。
DoEvents
Dim b As String '从串口返回的内码字符串 Dim LoadCellNumber As Integer '传感器数目 LoadCellNumber=8'此处以8个传感器为例 b=LoadCellReadData(aboast”, LoadCellNumber, 25)'从内存读取全部传感器内码,25是单只传感器 读写周期,与USB- RS232转换器质量有关③
Text2.Text=b'读取的结果显示到text2.text中, 字符串以S开头E结尾,每6个字符是一个传感器 内码,整个字符串长度=传感器个数x 6+2 If Left(b,1)= “S” Then'判断起始符 For i = 0 To LoadCellNumber - 1 '分别获取 每只传感器内码
Label1(i).Caption = Mid(b,2 + ix 6,6)
Next i End If End Sub
运行如下图所示:

传感器异常时,内码显示:
①如果传感器内码返回+88888表示校验错 误,一般是由现场干扰引起。例如:大型感性负 载起动,造成传感器供压不稳
②如果传感器内码返回+99999表示传感器未通讯,请检查连线是否正确
ScalePort.dll函数库只能获取数字传感器内码, 如果要修改地址,请用{BOAST串口调试工具v3. 67》如下图所示:

获取数字传感器内码是编写数字称重软件的第一步,要完成一个实用的称重软件,后续还有 许多工作要做。如标定、调角差、零点跟踪、开 机置零等。当然,也可以参考一些市场上的主流 的称重仪表,如XK3180、XK3190A9、DS1等, 借鉴一下他们的设计思路,可以起到事半功倍的 效果。笔者曾在衡器厂做过2-3年的售后服务所以对这些表比较熟悉。
 

中国领先的称重软件技术提供商

The Leading Provider of Geomatic Solutions in China

展开收起网站地图