6ES72162BD230XB8|新疆西门子代理商
6ES72162BD230XB8|新疆西门子代理商
6ES72162BD230XB8|新疆西门子代理商6ES72162BD230XB8|新疆西门子代理商
北京西门子交换机供应商,江苏CPU模块代理商,浙江西门子S7-200,S7-300,S7-1500,S7-1200系列代理商,
3VA2010-7JP42-0AA0 |
3VA2125-7JP42-0AA0 |
3VA2140-7JP42-0AA0 |
3VA2163-7JP42-0AA0 |
3VA2110-7JP42-0AA0 |
3VA2116-7JP42-0AA0 |
3VA2216-7JP42-0AA0 |
3VA2225-7JP42-0AA0 |
3VA2325-7JP42-0AA0 |
3VA2340-7JP42-0AA0 |
3VA2440-7JP42-0AA0 |
3VA2450-7JP42-0AA0 |
3VA2463-7JP42-0AA0 |
3VA2563-7JP42-0AA0 |
3VA2580-7JP42-0AA0 |
通过时间方式判断进行数据的接收的两种方式,我已经详细的向大家介绍了固定长度报文情况下PLC如何接收数据,本文我就向大家介绍一下当报文长度不固定的情况下我们该如何控制PLC接收信息。
首先我们回顾一下当协议中报文的长度不固定的情况下,我们是通过判断字符间的空闲时间的方式来判断一段报文的起始,通常是字符与字符之间空闲时间**过3.5个字符传输时间,我们就认为一段报文接收完毕,之后接收到的报文就是一段新的报文。下面我们来看看这个程序如何写。
1 寄存器设定
SMB30 = 2#00001001=16#9
图1-1
1) 自由口模式。第0、1位。SM30.0=1、SM30.1=0
2) 通讯速率9600bps。第2、3、4位。SM30.2=0、SM30.3=1、SM30.4=0
3) 每个字符的数据位是8位。*5位。SM30.5=0
4) 不选用奇偶效验。第6、7位。SM30.6=0、SM30.7=0
SMB87 = 2#10010100 =16#94
图1-2
1) 不使用中断条件作为检测信息的开始。*1位。SM87.1=0
2) 当SMW92中的定时时间**出时终止接收。第2、位。SM87.2=1
3) 定时器是内部字符定时器。*3位。SM87.3=0
4) 使用SMW90的值检测空闲状态。*4位。SM87.4=1
5) 不检测结束字符。*5位。SM87.5=0
6) 不检测起始字符。*6位。SM87.6=0
7) 允许信息接收功能。*7位。SM87.7=1
注:*0位为无效位不使用,*为0。
SMW90 = 4将SMW90设定成4表示报文间空闲时间大于4ms后接收的个字符是新信息的开始。
SMW92 = 4由于我们设定SM87.3 = 0确定使用报文长度不固定方式,在9600bps通讯速率下1个字符(10个位)的接收需要1.04ms,3.5个字符的时间需要3.64ms,因此将SMW92设定成4表示当字符与字符之间的空闲时间**过4ms时停止接收信息(注:SMW92不支持小数),同时空闲4ms后(SMW90 = 4)接收到的个字符是新信息的开始。
SMB94 = 255SMB94定义接收缓冲区大小,此处定义为大255字节。(注:接收缓冲区是用来存放接收到的数据的区域,大255字节,大家可以根据通讯情况自由定义。)
6ES72162BD230XB8|新疆西门子代理商 6ES72162BD230XB8|新疆西门子代理商
浔之漫智控技术(上海)有限公司专注于西门子低压电器授权代理商,西门子PLC模块总代理商,西门子模块总代理商,西门子中国一级代理商,西门子PLC一级代理商,西门子DP电缆代理商等