Приветствую.
Когда я ковырялся в коде, чтобы решить свою проблему, после того, как я заменил номера переменных на свои, у меня вроде бы такая же проблема появилась. Суть проблемы в том, что в коде есть функции с названием что-то типа safeMoveX, safeMoveY и т.д., внутри которых идет расчет максимально допустимого проезжаемого расстояния до касания на основе выставленных параметров и, если проехало всю возможную по сумме параметров длину, оно выдает такую ошибку. Только вот считает оно как-то криво. Я просто отключил эти участки функции, но тогда есть вероятность ложного "нахождения" края без касания. Эту проблему я еще не ковырял, т.к. подобрал подходящий набор параметров, чтобы края моей заготовки стабильно находились.
UPD: Убрал я выделенные жирным участки из таких функций:
Function SafeMoveX(X1, F1) As Boolean 'return 1 (error) if probe tripped
Dim Xstart
Dim Ftmp
Dim AbsIncF
SafeMoveX=True
Xstart = GetDRO(0)
Ftmp = FeedRate() 'FeedRate()
AbsIncF=GetOEMLED(49)
Code "G91"
Code "F" & F1
Sleep(125)
Call WaitProbeReady()
Code "G31 X" & X1
While IsMoving()
Wend
XHit = GetVar(2000)
Call SetLED49(AbsIncF)
If Abs(XHit - Xstart - X1) > 0.01 Then
SafeMoveX=False
PushMSG("Error! Probe tripped during X movement")
End If
SetOEMDRO(818,Ftmp)
Sleep(125)
End Function