关于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端,即可,软件无须进行任何更改