浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
无锡西门子PLC模块 通讯电缆经销商

无锡西门子PLC模块 通讯电缆经销商

无锡西门子PLC模块 通讯电缆经销商

无锡西门子PLC模块 通讯电缆经销商无锡西门子PLC模块 通讯电缆经销商

西门子S7-1500CPU供应商,西门子模块代理商,西门子模块一级代理商,西门子模块总代理商,西门子模块供应商,西门子模块经销商

《产品优势》:销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到!

为什么要使用时间的方式来对报文进行判断呢?其实大家可以设想这样一种情况,当我们使用起始字符和结束字符的方式来判断一段报文的开始与结束,如果在报文中间出现了起始字符或者结束字符,将会发生什么情况能?相信看过上一篇文章的朋友肯定可以发现其中的缺点,那么解决这些缺点的方法就是通过时间来判断报文的起始与停止。首先我们要明确报文一般分为固定长度和不固定长度两种形式。1 报文长度固定


.jpg

图1-1

当有些通讯协议中报文长度固定的情况下PLC接收每段报文所需的时间都是一样的,这样我们就可以根据报文的长度算出来接收报文所需的时间,然后PLC就可以从接收到个字符开始计时,计时达到设定时间就算一段报文接收完成。

这里我们打个比方,如果是通讯速率是9600bps,每个字符10个位(1个起始位、1个停止位、8个数据位、无效验位)那么我们接收一个字符就需要(1000/9600)*10≈1.04ms。如果每个报文6个字符那么PLC接收这段报文就需要6*1.04 = 6.24ms,这时我们就可以在PLC中设定从开始接收报文起6.24ms后停止接收报文,然后从新进入等待接收报文的状态。

2 报文长度不固定

.jpg

图2-1

在有的协议中报文的长度是不固定的,那这种情况下我们应该如何判断一段报文起始和停止呢?其实这个也是比较简单的当报文中字符的数量是不固定的时候,我们可以通过字符与字符之间的时间间隔来进行判断,通常情况是3.5个字符时间。那么在9600bps的通讯速率,每个字符10个位的情况下就是3.5*1.04 = 3.64ms的时间中如果PLC没有接收到数据,就认为一段报文已经接收完成,下面再接收到的数据就算一段新报文的开始。这里可能有的朋友会有疑问,如果两段报文的间隔小于3.5个字符时长那不就出问题了么?其实有这种担心的朋友主要是对485通讯收发数据的方式不够了解。由于485通讯是半双工通讯方式,所以一般都是A站点接收一个B站点发送的报文,然后给B站点发送一个报文,B站点接收到A站点发送的数据后再返给A站点一个报文。如图 2-2


.jpg

图 2-2

因此当PLC接收到一个报文后不是立刻接收下一个报文,而是先发送一个报文出去,由于发送一组报文的时间肯定大于3.5个字符时长,所以不会存在被接收的两个报文之间的时长小于3.5个字符长度的情况。


无锡西门子PLC模块 通讯电缆经销商                         无锡西门子PLC模块 通讯电缆经销商

发布时间:2023-11-04
展开全文