首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于VB作为上位机RS232改485通信协议有关问题

2013-06-19 
关于VB作为上位机RS232改485通信协议问题用VB作为上位机,本来是用RS232实现串口通信的,但是由于RS232的通

关于VB作为上位机RS232改485通信协议问题
用VB作为上位机,本来是用RS232实现串口通信的,但是由于RS232的通信距离短,现在希望改成485的~我上网查了下资料,知道232是全双工工作,485是半双工工作的,但是对于通信协议还是有点迷茫~现在我将我232的通信协议发上来,希望大神们帮我改一下适合于485的~而且我想知道如果485是半双工的,那么怎么控制他来开和关呢~请指教。。谢谢了!!原程序如下
 Timer1.Enabled = True

MSComm1.InBufferSize = 2
    
    MSComm1.InBufferCount = 0
    
    MSComm1.OutBufferCount = 0
    
    MSComm1.InputMode = comInputModeBinary 
    MSComm1.CommPort = 3
    MSComm1.Settings = "9600,N,8,1"
    
    MSComm1.RThreshold = 24
    
    MSComm1.InputLen = 24 
    
    MSComm1.OutBufferSize = 1
    
    Timer1.Interval = 20
[解决办法]
除了传输距离远,RS485 协议还支持一主多从。比较容易的改法:

1 从机改用 485 接口芯片。

2 主机端加一台 RS232 上行口的 RS485 集线器。这种集线器可以级联,便于扩展。

3 主机端程序要改:

  与任意一台从机会话时,必须先以地址帧(9-bit 格式)发送地址,然后切换回数据帧发送一条命令,接收一条应答。

  使用 VB 的 MSComm 控件比较麻烦的是,切换帧格式的时候,需要关闭串口,再重新打开,速度较慢。可以采用 API 或者用 VC++ 做动态库。


[解决办法]
一般,如果你的上下位机使用应答式通信,那么可以直接将232转485,如果不是应答式,收发如果有可能同时进行,则不能转换(可转为422进行通信)

方法:假设,你原来已经可以使用232进行通信,那么到电子城买两个232-485转换头,其232端直接接入上位机及其下位机,使用一485线两端分别连接到转换器的485端,即可,软件无须进行任何更改

热点排行