今天继续给大家更新 RS485通讯的相关内容,不知不觉,系列文章已经发了很多了,小编经常被问到之前的文章在哪,今天就给大家把之前发过的485系列文章做了归纳,大家保存一下,之后就能拿出来随时查看这9篇系列文章啦!1、站地址概念 RS485通讯网络是一个总线形式的网络,那么网络中的主站是如何区别各个站点的呢?要知道在这个网络中,主站发出的数据网络中的每个从站都是可以接收到的(因为主站发出的高低电平是施加在整个网络上的),就像班主任讲话全班同学都可以听到一样,那么班里的同学是怎么知道班主任是叫自己呢?很明显每个人都有名字,班主任只要在发出的指令里加上他想指挥的同学的名字就可以了。
同理RS485网络里每个从站也有自己的名字,那就是站地址,主站只要在发出的报文里加上站地址信息,那么对应的从站就会执行这条报文。
下面我们一起看看如何在程序中完成这个过程。
图 1‑1 这里我们还是用PLC做从站电脑做主站,我们定义报文的第一个字符作为站地址,如果我们的从站的站地址是02,那么主站发出的报文如果第一个字符是02那么就认为这条报文是发给该从站的,从站给主站返回数据,如果主站发出的报文第一个字符不是02那么就认为该条报文是发给别的站点的,从站继续进入接收等待状态,等待下一条报文。
2、程序的编写图 2‑1 图 2‑1所示是主程序内容,看过上一篇文章的朋友肯定会发现这和数据收发那一节程序的内容是一模一样的,我们这个程序大家主要是要看接收完成中断的程序我是怎么写的。
图 2‑2图 2‑2是接收完成中断,这里我们使用字节判断指令判断接收到的报文是否是发给本站点的,2表示本站点站地址是2如果写3的话表示本站点站地址是3。
如果没有接收到站地址则继续等待接收。
图 2‑3图 2‑3所示为发送完成中断,发送完成后进入等待接收报文状态。
我们可以先在发送缓冲区将数据准备好,当主站发出的报文中的站地址和本站吻合,我们将发送缓冲区的数据返回给主站,如图 2‑4所示。
图 2‑4未完待续...前期系列文章展示:看看高手讲解RS485,其实没你想的那么难!系列1看看高手眼中的RS485有啥不一样?数据的发送(系列2)看电气大神如何玩转RS-485,数据的接收1(系列3)技术大牛的经验好文!教你学懂RS-485,数据的接收2(系列4)RS-485经典好文,如何利用时间判断的方式来接收报文?(系列5)RS-485通讯:如何对固定长度报文方式来编程?这种专业好文不多见报文长度不固定,如何控制PLC接收信息?【RS-485专业讲解】系列7「RS-485通讯」两个中断的使用,电气PLC必备,通俗易懂!系列8