//************************************************
            //               定距控制
           //************************************************Private Sub xmt_Click()
Dim qh As Long
Dim sx As Long
Dim xz As Long
Dim buf(26) As Byte
Dim i As Integer
Dim a As Long
Dim b As Long
qh = Val(Trim(Text2.Text))a = Val(Trim(Text3.Text))     // 上下
b = Val(Trim(Text1.Text))If qh = 0 And b = 0 And a = 0 Then
MsgBox ("请先输入要运动的距离,再点确定!")
GoTo 5
End If  If qh > 0 Then                   //走前后?
    y = Int(qh * 26.6667)
    k1 = 1
    If Option3.Value Then
    dir1 = 1     //方向
    Else
    dir1 = 0
    End If
  Else
     k1 = 0
  End If
 
 If b > 0 And a = 0 Then     //转动没上下?
    sa = 0
    sb = 0
    x = Int(b * 32000 / 360)
    k0 = 2
    If Option1.Value Then
    dir0 = 1     //方向
    Else
    dir0 = 0
    End If
    End If
  
  If b = 0 And a > 0 Then     //上下没转动?
   sa = 0
   sb = 0
    x = Int(a * 230 * 50 / 800)
    k0 = 1
    If Option5.Value Then
    dir0 = 1     //方向
    Else
    dir0 = 0
    End If
  End If
    //************************************************
  If a > 0 And b > 0 Then                           //有上下也有转动,先走一个,用On Com 事件 " D"来发来发另一个
   ss = True
    x = b * 32000 / 360     //先走的旋转,sb 为旋转量,
    sa = Int(a * 230 * 50 / 800)
    sb = 0
    k0 = 2
    If Option1.Value Then
    dir0 = 1     //方向
    Else
    dir0 = 0
    End If
    End If
If a = 0 And b = 0 Then     //    没有0口的量
 sa = 0: sb = 0
 k0 = 0
 End If    //************************************************
con = 3
Call zhenghe(x, y, buf())
    //************************************************************************************************
    //************************************************************************************************
    // 根据是不是有第二步来判断 第一次是否完成, 然后决定走底二步
6
If send(buf()) Then      //第一次发 出控制子 后 判断 有没有 下次了?
  yuandian.Enabled = False       //限制 原点  点动 的 按钮 使用
  xmt.Enabled = False
  For i = 0 To 9
  diandong(i).Enabled = False
  xunhuan1.Enabled = False
   Next i
  
      out.Caption = "正在走定长!"
    If ss Then      //判断有没有下次
      Do
      DoEvents
      
      
    Loop Until sd ——————  其中sd 为布尔型 这句话什么意思?????
      
x = sa
       k0 = 1
       k1 = 0
         If Option5.Value Then
                 dir0 = 1     //方向
         Else
              dir0 = 0
         End If
       con = 3
       Call zhenghe(x, y, buf())
        x = 0
        sd = False
   
      GoTo 6
    
       End If
 Else
MsgBox ("通讯错误,请检查PLC连接、状态!")
End If
    //************************************************************************************************
5                              //    ,没有输入量跳出来
End Sub