怎样用LABVIEW写的串口通信程序与485总线中接在同一个串口上的多个站点实现通信

怎样用LABVIEW写的串口通信程序与485总线中接在同一个串口上的多个站点实现通信,第1张

485支持总线式链接,只要用双绞线中的一条线把所有设备的485 DATA+连起来,再用双绞线的另一条线把所有设备的485 DATA-都连起来,就可以实现多点通信了。这里需要注意几个问题:

接在485总线网络里面的设备总数不要大于32个。否则就应该使用485中继器

在9600波特率或以下,最远两个设备间不能超过1200米,否则也需要中继器

采用上位机发指令,下位机应答方式通信。上位机发送的指令必须带地址码,下位设备收到指令检查地址码一致才应答,地址码不一致则忽略

有可能需要加120欧姆左右的适配电阻

1.有人在发送数据之前,先关闭了串口中断!等待发送完毕后,再打开串口中断。

这样,在发送数据的等待期间内,如果收到了数据,将不能进入中断函数,也就不会保存的这个新收到的数据。

这种处理方法,就会遗漏收到的数据。

2.有人在发送数据之前,并没有关闭串口中断,当 TI = 1 时,是可以进入中断程序的。

但是,却在中断函数中,将 TI 清零!

这样,在主函数中的while(TI ==0);,将永远等不到发送结束的标志。

3.还有人在中断程序中,并没有区分中断的来源,反而让发送引起的中断,执行了接收中断的程序。

对此,做而论道发表自己常用的方法:

接收数据时,使用“中断方式”,清除 RI 后,用一个变量通知主函数,收到新数据。

发送数据时,也用“中断方式”,清除 TI 后,用另一个变量通知主函数,数据发送完毕。

这样一来,收、发两者基本一致,编写程序也很规范、易懂。

更重要的是,主函数中,不用在那儿死等发送完毕,可以有更多的时间查看其它的标志。

1、rs-485接口的最大传输距离标准值为4000英尺,实际上可达3000米,另外rs-232接口在总线上只允许连接1个收发器,即单站能力。

2、rs-485接口在总线上是允许连接多达128个收发器,具有多站能力,这样用户可以利用单一的rs-485接口方便地建立起设备网络。

3、rs232接口信号电平值较高,易损坏接口电路的芯片,又因为与ttl 电平不兼容故需使用电平转换电路方能与ttl电路连接。

4、传输速率较低,在异步传输时,波特率为20kbps;因此在南方的老树51cpld开发板中,综合程序波特率只能采用19200,也是这个原因。

扩展资料:

以往,PC与智能设备通讯多借助RS232、RS485、以太网等方式,主要取决于设备的接口规范。但RS232、RS485只能代表通讯的物理介质层和链路层,如果要实现数据的双向访问,就必须自己编写通讯应用程序,但这种程序多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于单一设备类型,程序不具备通用性。

在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的设备间要想互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从(Slave)设备。

*** 作步骤如下:

1、15PIN公接头第5脚、第6脚为,I/OE、I/OF,第12脚、第13脚为,+5VOut、Ground。

2、9PIN母插头第3脚、第4脚为,RS-485B、RS-485A,第5脚、第9脚为Ground、+5V。

3、将电阻依上图接至最后一颗装置之接头上。

4、使用视展控制卡485联机时,需先使用RS232通讯至马达,写入以下程序方可执行视展控制卡485联机功能,程序代码如下:SADDR1OCHN(RS4,1,N,9600,1,8,C)END最后再搭配RS-232转RS-485转换器即可。

以上就是关于怎样用LABVIEW写的串口通信程序与485总线中接在同一个串口上的多个站点实现通信全部的内容,包括:怎样用LABVIEW写的串口通信程序与485总线中接在同一个串口上的多个站点实现通信、两个51单片机485串口通信接收数据出错原因大概发送三、五次会有一次全部接收正确。程序如下:、232串口和485串口的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9782072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存