在串口通信模块接收数据之前,必须对模块的接收参数进行设置。以RS232模块为例,在通信模块Properties(属性)选项卡中选择RS232 interface选项下的Receive message config-uration(接收消息设置)选项,参数设置如下所述。
1.消息帧起始条件设置
消息帧起始条件可设置为以任意字符开始或者以特殊条件开始,如图7-5所示。
1)以任意字符开始:任何字符都可作为消息帧的起始字符。此设置为默认设置。
2)以特殊条件开始:以特定字符作为消息帧的起始字符。具体设置有以下四种,可任选其中的一种或几种的组合,选择组合条件(条件③或④只能选择其中之一)时按列表先后次序来判断是否符合消息帧起始条件。
①通过换行识别消息开始:当接收端的数据线检测到逻辑0信号(高电平)并持续超过一个完整字符传输时间(包括起始位、数据位、校验位和停止位),并以此作为消息帧的开始。
②通过空行识别消息开始,窄时间:当接收端的数据线空闲(逻辑1信号、低电平)并持续多少个位的时间,并以此作为消息帧的开始,如图7-6所示。默认设置为40个位时间,最大值为65535,但不能超过8s的时间。

图7-5 消息帧起始条件设置

图7-6 用空闲时间检测来启动接收指令
③通过单个字符识别消息开始,消息开始字符(HEX):以单个特定字符作为消息帧的开始。默认设置为0x02(HEX),即STX(ASCII)。
④通过字符序列识别消息开始,要定义的字符序列数:以某个字符序列作为消息帧的开始。在此设定多少个字符序列,默认设置为1。最多可设置4个字符序列。每个字符序列均可选择启用或不启用,满足其中任何一个启用的字符序列均作为一个消息帧的开始。每个字符序列最多可包含5个字符。每个字符均可被选择是否检测该字符,如果不选择表示任意字符均可,如果选择该项则输入该字符对应的ASCII码值。
2.消息帧结束条件设置
消息帧结束条件可设置为如图7-7所示6个条件中的一种或几种,只要满足选中的一个条件,即判断消息帧结束。这6个条件的具体含义如下所述。
1)通过消息超时识别消息结束:通过检测消息时间超过设定时间来判断消息帧结束。消息时间从检测到消息帧起始字符后开始计时,计时时间达到设定值后判断帧结束,如图7-8所示。默认设置为200ms,范围为0~65535ms。
2)通过响应超时识别消息结束:通过检测响应时间超过设定时间来判断消息帧结束。响应时间从传输结束开始计时,计时时间在接收到有效的消息帧的起始字符序列前达到设定值时判断帧结束。默认设置为200ms,范围为0~65535ms。
(https://www.xing528.com)
图7-7 消息帧结束条件设置

图7-8 使用消息定时器来检测消息帧结束
注意:在选择此项消息帧结束条件的同时应同时选择其他消息帧结束条件。
3)通过字符间超时识别消息结束:通过检测接收到相邻字符间的时间间隔(使用字符间定时器来检测消息帧结束,如图7-9所示超过设定时间来判断消息帧结束。默认设置为12个位信号的时间长度,范围为0~65535个位信号长度。最大不超过8s。

图7-9 使用字符间定时器来检测消息帧
4)通过最大长度识别消息结束:通过检测消息长度达到设定的字节数来判断消息帧结束。默认设置为0B,最大值为1024B。
5)从消息读取消息长度:消息内容本身包含消息的长度,通过从消息帧中获取的消息长度来判断消息帧结束。从消息内容中提取消息的长度需要设置如图7-10所示的参数。

图7-10 从消息内容中提取消息长度
6)通过字符序列识别消息结束:以一个字符序列作为消息帧的结束。每个字符序列最多可包含5个字符。每个字符均可被选择是否检测该字符,如果不选择该项表示任意字符均可,如果选择该项则输入该字符对应的ASCII码值。在这个字符序列中第一个被选择的字符前面的字符不作为消息帧结束的检测条件。在最后一个被勾选的字符后面的字符仍作为消息帧结束的检测条件。下面举例说明,如图7-11所示。

图7-11 字符序列作为消息帧的结束
如果检测到两连续的0x7A,并接着两个字符,则判断消息帧结束。在0x7A 0x7A前的字符不计入字符序列,在0x7A 0x7A后的两个字符计入字符序列,而不论其是什么字符,且一定要收到两个字符。
除了通过界面来设置RS232端口的接收参数,也可以通过程序来设置。将程序编辑窗口右侧的Instructions(指令)窗口中的Extended instructions(扩展指令)→Communications(通信)→Point to point(点对点)下的RCVCFG功能块拖动到编程窗口中,在弹出的对话框中设置其背景数据块为RCVCFGDB。
注意:通过RCVCFG功能块设置的参数会覆盖RS 232端口的接收参数设置窗口的设置,但此设置在掉电后不保存。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
