您现在所在的是:

电脑编程

回帖:8个,阅读:2175 [上一页] [1] [下一页]
* 帖子主题:

请教VB程序

1184
空心菜
文章数:116
年度积分:50
历史总积分:1184
注册时间:2004/10/9
发站内信
发表于:2006/3/11 16:30:00
#0楼
请教一下,下面的代源是什么意思
Private Sub Combo2_Change()

Select Case Combo2.Text
Case "50 KB"
m_Timing0 = Val("&H09")
m_Timing1 = Val("&H1C")
Case "100KB"
m_Timing0 = Val("&H04")
m_Timing1 = Val("&H1C")
Case "125KB"
m_Timing0 = Val("&H03")
m_Timing1 = Val("&H1C")
Case "250KB"
m_Timing0 = Val("&H01")
m_Timing1 = Val("&H1C")
Case "500KB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H1C")
Case "800KB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H16")
Case "1  MB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H14")
End Select
主要是M_TIMING有什么作用?
Dim tmptime As Boolean
Dim str As String
Dim strdata As String
Dim i As Integer
Dim j As Integer
Dim ID As Long
Dim d As Integer
Dim n As Integer
       

Sub Send(ID As Long, str As String)   '向电机发送命令
   Dim data(7) As Byte
   Dim frameinfo As VCI_CAN_OBJ
   Dim tmpstr As String
   Dim tmpID As Long

   tmpID = Val(ID)
   strdata = " "
   i = 0
   For i = 0 To 7
      strdata = Left(str, 2)
      If Len(strdata) = 0 Then
         Exit For
      End If
      str = Right(str, Len(str) - 2)
      data(i) = Val("&H" + strdata)
   Next
   
   frameinfo.DataLen = i
   frameinfo.ExternFlag = 0
   frameinfo.RemoteFlag = 0
   frameinfo.SendType = 2
   frameinfo.ID = tmpID
   For j = 0 To i - 1
       frameinfo.data(j) = data(j)
   Next
   If VCI_Transmit(4, 0, 0, frameinfo, 1) <> 1 Then
       MsgBox ("发送数据失败")
   End If

     
End Sub
用的是不是串口通讯指令啊?
2826
流客
文章数:794
年度积分:50
历史总积分:2826
注册时间:2005/8/28
发站内信
发表于:2006/3/11 18:11:00
#1楼
没看到有通讯指令.这玩意我光看程序解释不了.也许看到界面还有点可能性.或者你把VB的程序上传上来.
1184
空心菜
文章数:116
年度积分:50
历史总积分:1184
注册时间:2004/10/9
发站内信
发表于:2006/3/11 18:32:00
#2楼
Private Sub Combo2_Change()

Select Case Combo2.Text
Case "50 KB"
m_Timing0 = Val("&H09")
m_Timing1 = Val("&H1C")
Case "100KB"
m_Timing0 = Val("&H04")
m_Timing1 = Val("&H1C")
Case "125KB"
m_Timing0 = Val("&H03")
m_Timing1 = Val("&H1C")
Case "250KB"
m_Timing0 = Val("&H01")
m_Timing1 = Val("&H1C")
Case "500KB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H1C")
Case "800KB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H16")
Case "1  MB"
m_Timing0 = Val("&H00")
m_Timing1 = Val("&H14")
End Select
这段指令是设置波特率的,
主要是M_TIMING有什么作用?

1184
空心菜
文章数:116
年度积分:50
历史总积分:1184
注册时间:2004/10/9
发站内信
发表于:2006/3/11 18:34:00
#3楼
Dim tmptime As Boolean
Dim str As String
Dim strdata As String
Dim i As Integer
Dim j As Integer
Dim ID As Long
Dim d As Integer
Dim n As Integer
       

Sub Send(ID As Long, str As String)   '向电机发送命令
   Dim data(7) As Byte
   Dim frameinfo As VCI_CAN_OBJ
   Dim tmpstr As String
   Dim tmpID As Long

   tmpID = Val(ID)
   strdata = " "
   i = 0
   For i = 0 To 7
      strdata = Left(str, 2)
      If Len(strdata) = 0 Then
         Exit For
      End If
      str = Right(str, Len(str) - 2)
      data(i) = Val("&H" + strdata)
   Next
   
   frameinfo.DataLen = i
   frameinfo.ExternFlag = 0
   frameinfo.RemoteFlag = 0
   frameinfo.SendType = 2
   frameinfo.ID = tmpID
   For j = 0 To i - 1
       frameinfo.data(j) = data(j)
   Next
   If VCI_Transmit(4, 0, 0, frameinfo, 1) <> 1 Then
       MsgBox ("发送数据失败")
   End If

     
End Sub
用的是不是串口通讯指令啊?

这个我已不知是什么,不是有MSCOMM通讯,而是用SEND通讯,这样可能吗
1184
空心菜
文章数:116
年度积分:50
历史总积分:1184
注册时间:2004/10/9
发站内信
发表于:2006/3/11 18:43:00
#4楼
在VB中有没有send这条指令,有没有具体的用法?
2826
流客
文章数:794
年度积分:50
历史总积分:2826
注册时间:2005/8/28
发站内信
发表于:2006/3/11 21:15:00
#5楼
你继续问吧,光靠这些代码没有界面.我也等着有人能回答.send指令我好象没看到过.
978
woxujun
文章数:22
年度积分:50
历史总积分:978
注册时间:2005/9/6
发站内信
发表于:2006/3/14 10:59:00
#6楼
Send是你自定义的一个函数(过程)啊! 只是生成了一个数据帧frameinfo! 真正发送数据的是VCI_Transmit(4, 0, 0, frameinfo, 1)这句话,而VCI_Transmit这个函数是在别处声明的一个动态库接口函数吧? 我是这样想的,不知道对否!
1184
空心菜
文章数:116
年度积分:50
历史总积分:1184
注册时间:2004/10/9
发站内信
发表于:2006/3/14 13:38:00
#7楼
XIEXIE,对的,
Declare Function VCI_Transmit Lib "ControlCAN.dll" (ByVal DeviceType As Long, ByVal DeviceInd As Long, ByVal CANInd As Long, ByRef Send As VCI_CAN_OBJ, ByVal length As Long) As Long
通过“Controlcan.dll"来进行串口通讯,我想请教一下,这个动态库文件在源代码中好像没有,我这个源代码是从另外一到电脑拷出来的,不知道还能不能进行外部通讯了?
978
woxujun
文章数:22
年度积分:50
历史总积分:978
注册时间:2005/9/6
发站内信
发表于:2006/3/16 9:14:00
#8楼
没有这个动态库,VCI_Transmit 这个函数就没法调用了,当然不能喽! 要不向那个人要动态库,要不弄到接口说明和通信协议,自己写!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004