菜鸟求助 art3058r数据采集模块读不到数据,请各位大侠指点一二 点击:344 | 回复:3



anceyfang

    
发表于:2012-06-29 20:13:14
楼主

本人初学vb,很是生疏,手头有个项目用3058r采集数据,但是折腾了两天始终不得要领,有种相当强烈的挫折感。我这个小测试程序已经简单的不能再简单了,一个按钮,一个文本输入。按下开始按钮,通过串口给3058r 下指令,读第一路的输入,输入值在文本框中显示出来,但是始终都没有数据回传回来,我的串口部分代码如下


Private Sub Command1_Click()
       CmdoutSNG(0) = "&h" + "01" ‘地址码
       CmdoutSNG(1) = "&h" + "04"  ‘功能码   读寄存器
       CmdoutSNG(2) = "&h" + "01"  ‘起始地址高位
       CmdoutSNG(3) = "&h" + "00"  ‘起始地址低位
       CmdoutSNG(4) = "&h" + "00"  ‘寄存器个数高位
       CmdoutSNG(5) = "&h" + "01" ‘寄存器个数低位
      
           MSComm1.Output = CmdoutSNG    ‘输出指令数据
   
            Delay (0.1)    ‘延时40ms
             instring = MSComm1.Input   ‘返回值
             ‘text1.Text = MSComm485.Input
           MSComm1.InBufferCount = 0      ‘清除缓冲区
          
               Text1.Text = instring

           
           
           
           
           
            On Error Resume Next
 End Sub

期待用过该模块的朋友为我指点一二,感激不尽!



楼主最近还看过



yexiaomeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 181回
  • 年度积分:0
  • 历史总积分:731
  • 注册:2005年12月19日
发表于:2012-06-29 21:19:34
1楼

楼主的数据帧少了校验和的部分,肯定不会有数据返回的。看这个帧格式,好像是MODbus的吧?楼主看看MODBUS的手册

anceyfang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2011年8月24日
发表于:2012-06-29 21:26:49
2楼
这么快就有热心人回复了, 您说的是crc循环部分吗,我这确实没加上去,当时加上的时候crc这块编译不过,我还以为是可有可无的呢,

anceyfang

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:25
  • 注册:2011年8月24日
发表于:2012-06-30 16:21:10
3楼
在楼上朋友的指点下这部分已经调通,不过是个乱码,响应值是04 02 xx xx 我该怎样把这四个十六进制的数接收到,并把后两个数取出来呢,肯定有很多大侠写过类似的例子,给俺发一个,在线等。。。。。。
SSI ļʱ