| 作者 | 主题 |
|---|---|
|
WWCWWC 至圣
经验值:79157 发帖数:9099 精华帖:157 |
楼主
主题:说说西门子200smart modbus自由口通讯的那些事4
说说西门子200smart modbus自由口通讯的那些事4 上文说到利用起始符、结束符作为接收信息的判断条件,及利用信息定时器和起始符作为接收信息的判断条件2个例子。从例子中可以看出调用接收指令RCV的先决条件是:必须设置接收信息的控制字节SMB87,用户选择接收信息的控制字节后填写实际相对应的数据,还需要根据通讯协议设置相应的参数,如通讯频率;奇、偶、无校验。话说这个通讯方式既然是自由模式,那它必定由用户自行选择各种判断信息开始和结束方式来实现通讯的,如何标定这些参数是编写通讯程序的要点。 以下说明参考【深入 浅出西门子S7-200smart PLC】内容 接收信息的开始:(如何判断信息的起始条件) 1) 空闲线定时器:采用该方式作为信息的开始时,空闲线定时器是cpu内部特定的一种定时器,当空闲线定时器时间到达,无条件地作为信息接收的开始,空闲线定时器开始之前接收的信息被忽略。 2) 起始符:采用该方式作为信息开始时,只要在接收端接收到带有该标志字符的信息,都将作为接收信息的开始,同样之前接收到的信息将被忽略。 3) 空闲线定时器、起始符:2种方式作为接收信息的开始明显优于前2种方式判断接收信息的开始,如果空闲线定时器时间到开始接收的信息没有起始符的存在,则、所接收到的信息被忽略;反之,空闲线定时器时间到开始接收信息后,有起始符,则、被判断为接收信息的开始。 4) 断开检测:如果通讯线路上的信息数据保持“0”值的时间大于一个完整字符传输所需要的时间,则、判断为通讯断开,一个完整的字符传输时间需要包含信息的起始位、数据位、校验位、停止位之和。这个还与所设置的通讯频率有关,假设通讯频率设置为9600bps/S,即一秒时间允许传输9600个位信息。如果一个字符包含1个起始位、8个数据位、1个校验位和1个停止位,这样,这个字符就包含着11个位的信息,所需要传输的时间为:(11/9600)*1000(mS)= 1.1458mS。当信息传输时间大于断开检测时间,则、信息被忽略,反之,在断开时间范围内的数据被记录并存放到接收数据缓冲区。 5) 断开检测、起始符:当断开条件满足后,接收信息中包含起始符信息,则、判断接收信息正确。反之、接收信息被忽略。 6) 任意字符:它是空闲线检测的特例,在该条件下把所有接收的信息作为接收信息的起始,并把接收到的信息存放在数据缓冲区。 接收信息的结束:(如何判断信息的结束条件) 1) 结束符:采用该方式作为接收信息的结束时,当接收信息数据内存在带有该字符信息时,则判断接收信息的结束。 2) 字符间定时器:当接收信息的一个字符结束后,到下一个字符结束的时间,每一个字符结束后都会重新启动这个定时器,如果定时器时间到,则、判断接收信息的结束。 3) 消息定时器:当接收信息指令启动后,立即启动这个定时器,当这个定时器时间到后,则、判断接收信息的结束。一般在选定通讯速率下最长的信息所需要的时间的1.5倍,如果接收的信息长度不固定,不建议使用该定时器作为信息的结束。 为查阅方便列表:启用接收信息SM87.7 = 1 是必须选择的 时间单位:mS 说明:-表示忽略;∨表示需要设置;×表示不设置 上述这张表格有助于用户快速查找对应的接收信息的控制字节及各定时器的设置。 最大接收字符个数:SMB94/194 (1 ~ 255个字符) 当设置该字符数据时(必选项目),如果接收到的字符数据超过该设置值,超出部分的数据被忽略。 奇、偶校验:用户允许选择奇、偶进行对数据的检验或者无校验,当选择校验后,校验的结果出现错误时接收信息被终止执行。 用户终止:当设置en = 0;SM87.7 = 0,无条件终止接收信息。 用户根据实际需要有目的地选择接收信息的起始和结束的组合,是编写自由口通讯的关键之一。 常用接收信息的设置: 空闲线定时器的设置:一般设置为在选定的通讯速率下,一个字符所需要的时间的3倍。 如、通讯速率为9600bps,一个字符约为11个位信息。则、3 * (11/9600) * 1000 = 4 mS 起始符:一般设置一个通讯数据中不使用的字符作为接收信息的起始。如、16#3A 结束符:与设置起始符的原理一致,选择在通讯字符间不使用的字符作为结束符。如、16#0A 字符间定时器:一般设置为在选定的通讯速率下,每一个字符所需要传输时间的1.5倍。 消息定时器:一般设置为通讯字符最长的一串字符所需要的时间的1.5倍。 如果启用起始符和结束符的具体字符中无法规避与通讯数据字符的重合,则需要启用2个以上是判断条件。如、起始符+空闲线定时器作为信息的起始条件。同样,结束信息也可以用2个以上的判断条件作为信息的结束。如、结束符+消息定时器。 继续、、、、、、 |