VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 6663|回复: 11

[求助] vb与RS485通讯

[复制链接]
发表于 2013-6-18 13:21:51 | 显示全部楼层 |阅读模式
之前做的全部是vb与rs232之间的通讯。

现在要做个vb与rs485之间的通讯,读取地址码分别为10与11两块仪表里的数据,读数据指令为01H。仪表的数据传输方式为“异步10位:1位起始,8位数据,1位停止,无校验位。”

有哪位大侠以前做过这个,给个建议,谢谢。


在该版块下没有找到相关的资料。
发表于 2013-6-18 16:58:27 | 显示全部楼层
rs232和rs485只是在接口上电气特性上不一样。编程没影响!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-18 21:12:06 | 显示全部楼层
仪表如果是rs232接口,它就是连续发送,则可通过mscomm控件,根据超级终端发送的数据格式直接截取数据就OK了。

而rs485却不一样。
回复 支持 反对

使用道具 举报

发表于 2013-6-18 21:44:09 | 显示全部楼层
软件没有差别,但485不能用于同时收发的场合
回复 支持 反对

使用道具 举报

发表于 2013-6-18 21:46:18 | 显示全部楼层
其实编程都差不多,只是注意RS232是可以连续发送接收的,而485就要看情况了。有些设备没有返回数字串,这种设备只接收,那就可以连续发;有些设备它每接收一条数字串,就要返回一串数据,所以不能发得太快,除非用广播指令发。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-18 22:28:19 | 显示全部楼层
我之前采集的仪表为rs232接口:
Private Sub MSComm1_OnComm()
Dim Sinput As String
Dim bzw As Integer

Select Case MSComm1.CommEvent

Case comEventRxOver

     MSComm1.InBufferCount = 0

Case comEvReceive

  Sinput = MSComm1.Input

      bzw= InStr(1, Sinput, " ~", vbTextCompare)
      

      dqsj= (Val(Mid$(sinput, bzw+ 3, 7)))

End Select
End Sub
________________________________
上面程序中dqsj为全局变量,在窗口加载时,打开com1口,则可读到dqsj为仪表的数据。

******************************************

但是现在的仪表却只有RS485接口,它跟计算机的硬件连接肯定是要通过RS232转RS485转换器。

该RS485接口的仪表的通讯协议为:

一、数据传输方式:异步10位:1位起始,8位数据,1位停止,无校验位。
二、机号(地址):01和02----共两块表,要读出两块表中数据。
三、读写命令:
    ①读数据(03H)一次读完“瞬时量”,“班产量”,“累积量”和“给定值”4个量,4个量均为浮点数。
    ②写数据(10H):写“给定值”,浮点数。
四、数据存储地址(起始地址)
0000H:16字节(8个字)依次为:瞬时量,班产量,累积量和给定值。

****************************************
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-19 12:51:00 | 显示全部楼层
wwswwswws、guojin007
可能之前读数的方法一直不科学,到了485的时候就碰到难题了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-19 20:53:48 | 显示全部楼层
是不是沉得太快。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-20 13:13:22 | 显示全部楼层
高手都太忙。
回复 支持 反对

使用道具 举报

发表于 2013-6-23 23:02:41 | 显示全部楼层
有地址码和读指令的仪表通常支持MODBUS协议
LZ提问时并没有说清楚协议的细节,
建议先找资料了解一下MODBUS协议的仪表通信方法。
网上也能找到MODBUS协议的VB源码。
注意MODBUS的不同工作方式。
另外LZ也没说波特率是多少。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2021-12-4 20:58

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表