//************************************************
// 定距控制
//************************************************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
// 定距控制
//************************************************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
解决方案 »
- VB重启服务器
- vba 几处语句
- 关于ADO控件的稳定问题
- 如何访问远程数据库(就是如何修改服务器上的数据库,只是用vb)
- 一个应该不难的问题(某vba中的语句,在vb中如何实现)
- 错误提示!!!!!的原因,请大家帮忙……………………
- CAD怎么设置比重系数?
- ×××自定义控件问题×××UP有分×××
- 谁能帮帮我
- 在dos下能認到光驅,而在windows下卻認不到光驅.是何原因. !!!!!!!! 一個非VB問題,請班竹高抬貴手.
- ▲▲▲ 版主,高手请进。关于用ThreadFactory创建多线程的winsock问题。
- 如何可以取得IE上安装的插件工具栏(比如ALEXA)中某一个控件的提示信息
这是一个直到循环,每执行一次循环体,测试一下变量sd,如果sd为真,那么退出循环结构。