我现在想用VB实时读取轴的位置坐标,但我编制的程序通过读取数控系统变量得到的数据的数据密度不够,大概只有16Hz(我通过在VB里设置定时器来读取变量值,定时器设置间隔过小的话,数据就全是重复的了。)而我利用机床上自带的圆测试采集数据后发现它读取的数据精度和频率都非常高。
我的程序是:
'首先利用label显示轴的实际位置数据
Label.LinkItem = "/Channel/MachineAxis/actToolBasePos[u1,1]“
'然后利用计时器把label上显示的值存到一个数组中(随后会被存入一个数据文件)
Private Sub Timer1_Timer() 'Timer1间隔为10ms
Dim i As Integer
If Timer <> testTime Then
ReDim Preserve DataBuffer(i)
DataBuffer(i) = Val(Label.Caption)
i=i+1
Else
Timer1.Enabled = False
End sub
正常数据(用西门子自带的圆测试得到的某轴位置数据,间隔值约0.07):
3.49194999999997
3.56983999999994
3.64785999999998
3.72507999999993
3.80170999999996
3.87825999999995
3.95517999999998
4.03231999999997
4.10877999999997
4.18507999999997
4.26062999999994
4.33606999999995
4.41026999999997
4.48422999999997
4.55789999999996
4.63209999999998
我的数据(隔70ms才得到一个新值,间隔值约0.8):
4.571200
4.571200
4.571200
4.571200
4.571200
4.571200
4.571200
3.738250
3.738250
3.738250
3.738250
3.738250
3.738250
2.906920
2.906920
2.906920
2.906920
2.906920
2.906920
2.906920
麻烦高手帮忙解答一下为什么我读取的数据的数据密度很小(间隔值很大),精度也很小?