登录
首页 电脑编程
回帖 发帖
正文

主题:请教VB程序

点击:2441 回复:8

请教一下,下面的代源是什么意思
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
用的是不是串口通讯指令啊?
06-03-11 16:30
没看到有通讯指令.这玩意我光看程序解释不了.也许看到界面还有点可能性.或者你把VB的程序上传上来.
06-03-11 18:11
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有什么作用?
06-03-11 18:32
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通讯,这样可能吗
06-03-11 18:34
在VB中有没有send这条指令,有没有具体的用法?
06-03-11 18:43
你继续问吧,光靠这些代码没有界面.我也等着有人能回答.send指令我好象没看到过.
06-03-11 21:15
Send是你自定义的一个函数(过程)啊! 只是生成了一个数据帧frameinfo! 真正发送数据的是VCI_Transmit(4, 0, 0, frameinfo, 1)这句话,而VCI_Transmit这个函数是在别处声明的一个动态库接口函数吧? 我是这样想的,不知道对否!
06-03-14 10:59
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"来进行串口通讯,我想请教一下,这个动态库文件在源代码中好像没有,我这个源代码是从另外一到电脑拷出来的,不知道还能不能进行外部通讯了?
06-03-14 13:38
没有这个动态库,VCI_Transmit 这个函数就没法调用了,当然不能喽! 要不向那个人要动态库,要不弄到接口说明和通信协议,自己写!
06-03-16 09:14

工控新闻

更多新闻资讯