消息接收的开始条件(STARTCOND 参数)如果满足组态的开始条件,则接收方识别到消息开始。可将以下条件定义为消息接收的开始 条件: •开始字符:在出现某个特定字符时识别到消息开始。该字符存储为消息的第一个字符。在 开始字符前收到的所有字符均会被拒绝。 •任意字符:任意字符可以定义消息开始。该字符存储为消息的第一个字符。 •线路中断:如果接收的数据流中断时间超过接收一个字符的时间长度,则认为消息开始。 •线路空闲:如果发送传输线路空闲一段时间(在位时间中指定),重新传输字符,则 认为消息开始。 •字符串(序列):如果指定字符序列出现在数据流中,则识别为消息开始。可以指定Zui 多四个字符序列,每个序列Zui多五个字符。示例:接收的十六进制消息包含以下字符:“68 10 aa 68 bb 10 aa 16”。下表中列出了组 态的开始字符序列。在成功接收到第一个字符 68H 之后将评估 开始字符序列。成功接收到第四个字符( 第二个68H)之后,已满足开始条件“1”。开始条件满足之后, 将开始评估结束条件。开始字符序列的处理可能会由于不同的原结束,如奇偶校验、 帧或字符之间的时间间隔。由于未满足开始条件, 这些错误将阻止消息的接收。数据类型 CONDITIONS 可以使用 CONDITIONS 结构定义消息传输的开始和结束条件。结构 CONDITIONS包含在 RCV_CFG 指令的背景数据块中。使用结构 CONDITIONS 可定义消息传输何时完成以及下一次消息传输何时开始的开始和结束条件。 • 可以在 START 结构中定义数据传输的开始条件。 • 可以在 END结构中定义数据传输的结束条件。 用户可为此定义一个或多个开始条件和结束条件。如果指定多个开始或结束条件,则通过 OR逻辑指令来处理这些条件。参数 数据类型 说明 STARTCOND UINT 指定开始条件(详细信息见下文)。 可为开始条件指定一个16 位的十六进制值。开始条件的值可以是: • 1:开始字符 • 2:任意字符(默认值) • 4:线路中断 • 8:线路空闲 •16:字符串 1 • 32:字符串 2 • 64:字符串 3 • 128:字符串 4 可以在 STARTCOND参数中定义多个开始条件。为此,需要指定各个条 件的值的总和。例如,如果要定义“线路空闲”或“字符串 1”或“字符 串 4”("Idle line" OR "Character string 1" OR "Character string 4") 作为开始条件,则必须指定值“152”。 IDLETIME UINT 指定开始接收之前允许的线路空闲时间Zui大值。 该参数的有效值如下: •40 个位时间(默认值) • 0 到 2500 个位时间 STARTCHAR BYTE指定开始字符。仅当组态的开始条件为“开始字符”时才启用该设置。 该参数的有效值如下: • 02 (STX):默认设置 •B#16#00 到 B#16#FF SEQ[1].CTL BYTE 字符串 1:各字符的控制序列可以使用字符的位号来定义要考虑或忽略字符串中的哪些字符。要评估 这些字符就必须置位相应的位。 • 第 0 位:1 个字符 • 第 1位:2 个字符 • 第 2 位:3 个字符 • 第 3 位:4 个字符 • 第 4 位:5 个字符 通过复位相应的位来忽略某个字符。SEQ[1].STR CHAR[5] 字符串 1:开始字符(5 个字符) SEQ[2].CTL BYTE 字符串2:忽略/比较各字符的控制序列 SEQ[2].STR CHAR[5] 字符串 2:开始字符(5 个字符)
参数 数据类型 说明ENDCOND UINT 指定结束条件(详细信息见下文)。 可为结束条件指定一个 16 位的十六进制值。结束条件的值可以是: •1:响应超时 • 2:消息超时 • 4:字符串内超时 • 8:Zui大长度 •16:N+LEN+M;有关消息长度的信息集成在消息中并将被评估。 • 32:字符串 1 也可以在 ENDCOND参数中定义多个结束条件。为此,需要指定各个结 束条件的值的总和。例如,如果要定义结束条件“Zui大长度”或“序列 1” ("Maximumlength" OR "Sequence 1"),则必须指定值“40”。 MAXLEN UINT 指定消息中字符数的Zui大值。该参数的有效值*如下: • 1 个字符(默认值) • 0 到 1024 个字符 仅当在 ENDCOND参数中设置了“Zui大长度”结束条件时,才启用该设 置。 N UINT 消息中长度字段的偏移量 该参数的有效值如下: • 0个字符(默认值) • 0 到 1024 个字符 仅当在 ENDCOND 参数中设置了“N+LEN+M”结束条件时,才启用该设置。LENGTHSIZE UINT 长度字段的大小(字节) 该参数的有效值*如下: • 0 个字节(默认值) • 1 个字节 • 2个字节 • 4 个字节 仅当在 ENDCOND 参数中设置了“N+LEN+M”结束条件时,才启用该设置。 LENGTHM UINT指定跟在长度字段后但不包含在消息长度中的结束字符数。 该参数的有效值如下: • 0 个字符(默认值) • 0 到 255 个字符仅当在 ENDCOND 参数中设置了“N+LEN+M”结束条件时,才启用该设置。参数 数据类型 说明 RCVTIME UINT指定接收消息的第一个字符的Zui长持续时间。 该参数的有效值如下: • 200 ms(默认值) • 0 到 65535 ms(步长为 1ms) 仅当在 ENDCOND 参数中设置了“应答超时”结束条件时,才启用该设 置。 MSGTIME UINT指定接收一个消息的Zui长持续时间。 该参数的有效值如下: • 200 ms(默认值) • 0 到 65535 ms(步长为 1 ms)仅当在 ENDCOND 参数中设置了“消息超时”结束条件时,才启用该设 置。 CHARGAP UINT指定接收两个连续字符之间的时间间隔。 该参数的有效值如下: • 12 个位时间(默认值) • 0 到 2500 个位时间 仅当在ENDCOND 参数中设置了“字符串内超时”结束条件时,才启用 该设置。 SEQ.CTL BYTE 字符串:各字符的控制序列可以使用字符的位号来定义要考虑或忽略字符串中的哪些字符。要评估 这些字符就必须置位相应的位。 • 第 0 位:1 个字符 • 第 1位:2 个字符 • 第 2 位:3 个字符 • 第 3 位:4 个字符 • 第 4 位:5 个字符 通过复位相应的位来忽略某个字符。SEQ.STR CHAR[5] 字符串:开始字符(5 个字符) * 这些取值范围同样适用于指定消息结束的相应硬件设置。