机电专业技术网 我要投稿 |  资讯 |  机械 |  电气 |  软件 | 
机电专业技术网>电子电气>变频器>
赞助商连接
最新文档列表
热门文档列表

实现VB与台达变频器通信

Visual Basic的以其实用和开发周期短等特点受到广大程序员的欢迎,许多用过像VC++这些软件的程序员也开始加入VB的行列,因为它太实用了,特别在小软件的开发上。VB在工业监控方面的应用也非常广泛。今天我给大家分享一下我在做台达变频器和PC通信的经验:

串口初始化:

On Error GoTo errStr
    MSComm1.CommPort = 1
    MSComm1.Settings = "9600,o,8,1"
    MSComm1.InputMode = comInputModeBinary
    MSComm1.Handshaking = comNone
    MSComm1.OutBufferSize = 1024
    MSComm1.InBufferSize = 512
    MSComm1.InputLen = 0
    MSComm1.SThreshold = 1
    MSComm1.RThreshold = 1
    MSComm1.PortOpen = True
   Exit Sub
errStr:
   If Err.Number = 8002 Then
       MsgBox "串口不存在!", vbOKOnly Or vbInformation
   ElseIf Err.Number = 8005 Then
       MsgBox "串口已被占用!", vbOKOnly Or vbInformation
   End If

请根据串口初始化的代码来设置变频器的设置。(参考VFD-M说明书)

读变频器的当前频率:

发送到串口的数据:01 03 21 02 00 02 6F F7

其中01为设备地址;03为写命令;21 02为当前频率寄存器地址;00 02资料数(word);6F F7为检验码

在编写代码之前,可以先用串调试软件(EasyPort)调试一下,这可以确保接线没和变频器设置方面没有问题。

EasyPort使用:设定好串口波特率9600、数据位8位、校验位O、停止位1;选中Modbus协议,复选附加检验码;在发送框内直接写入01 03 21 02 00 02,点击发送即可。

在接收到的文报中,读者可以前4位和后两位都去掉,留下的数据把十六进制转换成十进制,把计算出来的结果和变频器数码管的显示是不是相符,如果不是,请检查一下变频器的设置后,再做实验。

如果在串口调试软件中得到了理想的效果后,就可着手写代码了。

发送数据:Mscomm.Output=要送的数据

接收数据:Mscomm_OnComm() 来接收

具体的代码大家自己实现啦

以下为检验代码CRC16部分:

    Function CRC16(data() As Byte) As String
      Dim CRC16Lo As Byte, CRC16Hi As Byte      CRC寄存器
      Dim CL As Byte, CH As Byte                多项式码&HA001
      Dim SaveHi As Byte, SaveLo As Byte
      Dim i As Integer
      Dim Flag As Integer
      CRC16Lo = &HFF
      CRC16Hi = &HFF
      CL = &H1
      CH = &HA0
      For i = 0 To UBound(data)
        CRC16Lo = CRC16Lo Xor data(i) 每一个数据与CRC寄存器进行异或
        For Flag = 0 To 7
          SaveHi = CRC16Hi
          SaveLo = CRC16Lo
          CRC16Hi = CRC16Hi \ 2            高位右移一位
          CRC16Lo = CRC16Lo \ 2            低位右移一位
          If ((SaveHi And &H1) = &H1) Then 如果高位字节最后一位为1
            CRC16Lo = CRC16Lo Or &H80      则低位字节右移后前面补1
          End If                           否则自动补0
If ((SaveLo And &H1) = &H1) Then 如果LSB为1,则与多项式码进行异或

上一页12 下一页

通信   实现       CRC16Lo   As   &   CRC16Hi   串口   dim   变频器   通信   实现       CRC16Lo   As   &   CRC16Hi   串口   dim   变频器  

相关文档列表
推荐文档列表
精彩推荐

机械、电气、软件综合技术网,以广大机械,电气,设计行业从业者为目标全体,提供最新的技术文章与行业资讯.