欢迎来到天天文库
浏览记录
ID:23989895
大小:78.00 KB
页数:4页
时间:2018-11-12
《【玩转485】6.数据的接收4【连载6】》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【玩转485】6.数据的接收4【连载6】上一篇文章我们搞清楚了固定长度报文,和不固定长度报文通过时间来判断报文的起始与结束的原理,本文我们先对固定长度报文方式进行编程。 1、寄存器设定 编写程序之前我们先看看对应的特殊位寄存器应该如何设置。 SMB30=2#00001001=16#9 图1-1 1)自由口模式。第0、1位。SM30.0=1、SM30.1=02)通讯速率9600bps。第2、3、4位。SM30.2=0、SM30.3=1、SM30.4=03)每个字符的数据位是8位。第5位。SM30.5=04)不选用奇偶效验。第6
2、、7位。SM30.6=0、SM30.7=0 SMB87=2#10011100=16#9C 图1-2 1)不使用中断条件作为检测信息的开始。第1位。SM87.1=02)当SMW92中的定时时间超出时终止接收。第2、位。SM87.2=13)定时器是信息定时器。第3位。SM87.3=14)使用SMW90的值检测空闲状态。第4位。SM87.4=15)不检测结束字符。第5位。SM87.5=06)不检测起始字符。第6位。SM87.6=07)允许信息接收功能。第7位。SM87.7=1注:第0位为无效位不使用,永久为0。 SMW90=4 将SM
3、W90设定成4表示报文间空闲时间大于4ms后接收的第一个字符是新信息的开始。 SMW92=6 由于我们设定SM87.3为1确定使用固定报文长度方式,假设报文长度为6个字符,那么在9600bps通讯速率下1个字符(10个位)的接收需要1.04ms,6个字符的接收就需要6.24ms,因此将SMW92设定成6表示从接收到第一个字符开始后6ms停止接收信息,同时空闲4ms后(SMW90=4)接收到的第一个字符是新信息的开始。 SMB94=255 SMB94定义接收缓冲区大小,此处定义为最大255字节。(注:接收缓冲区是用来存放接收到的数据
4、的区域,最大255字节,大家可以根据通讯情况自由定义。) 2、程序编写 图2-1 图2-2 以上就是固定报文长度方式下接收数据的程序,此处我们设定的报文长度是6个字符,下面我们通过串口调试软件给PLC发送7个字符长度(AA1122BB2345C1)的一个报文看看会发生什么情况。 图2-3 图2-4由图2-4状态表监控结果我们可以发现我们只能接收到6个字符,第7个字符C1并没有接收到。 作者:马乐 版权为技成所有,未经同意,盗取必究!
此文档下载收益归作者所有