【玩转485】9.数据的收发【连载9】
林慧玲
发布于2015-02-15 09:35
15
0
标签:通讯
上一篇文章我向大家介绍了,通讯中要使用到的发送完成中断和接收完成中断,本文我们就利用这两个中断在一个程序中完成数据的接收和发送这两个功能。
1 主从通讯 图1-1
首先要明确一点我之前的文章给大家讲过RS485通讯方式是主从通讯,那么在数据的接收和发送中主站和从站的主要区别到底在哪呢?
对于主站主要体现在主站是必须要先发送数据,然后再接收数据,就相当于主站要先发出命令给从站,然后等待从站把执行结果反馈给主站,主站再发出下一条命令。
对于从站刚好和主站相反,从站一定是先接收数据然后再发送数据。相当于从站要先等待主站的命令,接收到命令后从站执行主站的命令,执行完成后从站把执行完成的结果再发送给主站,然后等待主站的下一个命令。
2 程序的编写 下面我们就把PLC作为从站,电脑作为主站,我们用电脑向PLC发送一段报文11 BC 3A 24 5C 2E,PLC接收到这段报文后向电脑返回一段报文21 C3 47 87 92 5F。
图 2-1
图 2-2
图 2-3
这个程序中图 2-1是主程序,图 2-2是接收完成中断程序,图 2-3 是发送完成中断程序。程序总体来说还是非常简单,由于PLC是从站所以我们主程序先激活接收指令,同时对接收完成中断和发送完成中断进行使能。在接收完成中断程序中我们调用发送指令,表示接收数据完成后PLC发送数据。在发送完成中断程序中我们调用接收指令,表示数据发送完成后PLC等待接收数据。
图 2-4
图 2-4我们可以看到是用电脑做主站,执行过一次发送后的界面,下方是发送给PLC的数据,上方是从PLC接收回来的数据,这时可能就有人要纳闷了,为什么接收回来的数据一定是21 C3 4787 92 5F 38不是其他的数值?程序里看不出来啊?其实这个很简单因为我已经给PLC的发送缓冲区预制了这组报文,如图 2-5所示。
图 2-5
后我们监控PLC的接收缓冲区可以看到PLC也接收到了发自电脑的报文。
图2-6
作者:马乐
版权为技成所有,未经同意,盗取必究!