西门子自由口通讯

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、串口特性设置

SMB30: ppdb bbmm

pp:奇偶校验选择,00=不校验,01=偶校验,10=不校验,11=奇校验;

d:每个字符的数据位,0=8位/字符,1=7位/字符;

bbb:自由口通讯波特率(bit/s)

000=38400,001=19200,010=9600,011=4800,100=2400,101=1200,110=115.2K,111=57.6K;mm:协议选择,00=PPI/从站模式,01=自由端口协议,10=PPI/主站模式,11=保留(默认设置为00=PPI/从站模式);

二、报文接收的状态字

SMB86:nre0 0tcp;

n=1:通过用户禁止命令终止报文接收。

r=1:接收报文终止,输入参数错误或无起始或结束条件。

e=1:收到结束字符。

c=1:接收报文终止,超出最大字符数。

t=1:接收报文终止,超时。

p=1:接收报文终止,奇偶校验错误。

三、报文接收的控制字

SMB87:报文接收的控制字,en,sc,ec,il c/m,tmr,bk,0;

en:0=禁止报文接收,1=允许报文接收,每次执行RCV指令时检查允许/禁止接收报文位。sc:0=忽略SMB188,1=使用SM1B188的值检查报文的开始。

ec:0=忽略SM189,1=使用SM189的值检查报文的结束。

il:0=忽略SMW190,1=使用SMW190的值检测空闲状态。

c/m:0=定时器是字符间超时定时器,1=定时器是报文定时器。

tmr:0=忽略SMW192,1=超过SMW192中设置的时间时终止接收。

bk:0=忽略break(间断)条件,1=用break条件来检测报文的开始。

报文接收控制字节位用来定义识别报文的标准,报文的起始和结束标准均需定义。

SMB88=报文的起始字符

SMB89=报文的结束字符

SMW90=以ms为单位的空闲线时间间隔。空闲线时间结束后接收到的第一个字符是最新报文的起始字符。

SMW92=字符间/报文间定时值(用ms表示),如果超时停止接收报文。

SMW94=接收最大字符数(1-255),即使不用字符数计算来终止报文,这个值也应按希望的最大缓冲区来设置

四、接收指令的参数设置

RCV指令允许选择报文开始和结束的条件,SMB86-SMB94用于端口0,SMB186-SMB194用于端口1。

下面的il=1表示检测空闲状态,sc=1表示检测报文的起始字符,bk=1表示检测break条件,SMW90或SMW190中是以ms为单位的空闲线时间。在执行RCV指令时,有以下几种判别报文起始条件的方法:

1、空闲线时间:il=1,sc=0,bk=0,SMW90或SMW190>0。在该方式下,从执行RCV指令开始,在传输线空闲的时间大于等于SMW90或SMW190中设定的时间之后接收的第一个字符作为新报文的起始字符。

2、起始字符检测:il=0,sc=1,bk=0,忽略SMW90或SMW190。以SMB88中的起始字符作为接收到的报文开始的标志。

3、break检测:il=0,sc=0,bk=1,忽略SMW90或SMW190。以接收到的break作为接收报文的开始。

4、对通讯请求的响应:il=1,sc=0,bk=0,SMW90或SMW190=0,(设置空闲线时间为0)。执行RCV指令后就可以接收报文。若使用报文超时定时器(c/m=1),它从RCV指令执行后开始定时,时间到时强制性地终止接收。若在定时期间没有接收到报文或只接收到部分报文,则接收超时,一般用它来终止没有响应的接收过程。

5、break和一个起始字符:il=0,sc=1,bk=1,忽略SMW90或SMW190。以接收到的break 之后的第一个起始字符作为接收信息的开始。

6、空闲线和一个起始字符:il=1,sc=1,bk=0,SMW90或SMW190>0。以空闲线时间结束后接收的第一个起始字符作为接收信息的开始。

7、空闲线和一个起始字符(非法):il=1,sc=1,bk=0,SMW90或SMW190=0,除了以起始字节作为报文开始的判据外(sc=1),其他特点与4相同。

SMB87.3/SMB187.3=0时,SMW92/SMW190为字符间超时定时器,为1时为报文超时定时器。字符间超时定时器用于设置接收的字符间的最大间隔时间。只要字符间隔时间小于该设定时间,就能接收到所有信息,而与整个报文接收时间无关。

报文超时定时器用于设置最大接收信息时间,除4和7中所述特殊情况外,其他情况下在接收到第一个字节后开始定时,若报文接收时间大于该设置时间,将强制终止接收,不能接收到全部信息。

上述两种定时器的定时时间到时均强制结束接收,在SMB86/SMB186中都表现为接收超时。接收结束条件可以用逻辑表达式表示为:结束条件=ec+tmr+最大字符数,即在接收到结束字节、超时或接收字符超过最大字符数时,都会终止接收。另外,在出现奇偶检验错误(如果允许)或其他错误的情况下,也会强制结束接收。

五、总结

5.1、报文开始的标志

5.11、单条件判断

1、空闲线时间:il=1,sc=0,bk=0,SMW90或SMW190>0。在该方式下,从执行RCV指令开始,在传输线空闲的时间大于等于SMW90或SMW190中设定的时间之后接收的第一个字符作为新报文的起始字符。

总结:接收报文起始条件:执行RCV后传输线空闲时间大于设定的空闲时间后接收到的第

一个字符作为起始字符。

报文定时开始条件:当空闲线时间超过设定后接收到第一个字符后开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。2、起始字符检测:il=0,sc=1,bk=0,忽略SMW90或SMW190。以SMB88中的起始字符作为接收到的报文开始的标志。

相关文档
最新文档