Receive_Config(动态组态串行接收参数)指令讲解

2019年1月7日15:33:42 发表评论 226 阅读

表格 13- 13 Receive_Config(接收组态)指令

STEP 7 会在插入指令时自动创建DB。

可以在设备配置属性中设置通信端口的初始静态组态,或者索性使用默认值。 可以在用户程序中执行 Receive_Config 指令来更改组态。

CPU 不永久存储使用 Receive_Config 指令设置的值。 CPU 从 RUN 模式切换到 STOP 模式和循环上电后,将恢复设备配置中组态的参数。

表格 13- 14 参数的数据类型

参数和类型 数据类型 说明
REQ IN Bool 在该输入的上升沿激活组态更改。 (默认值: False)
PORT IN PORT 安装并组态 CM 或 CB 通信设备之后,端口标识符将出现在 PORT 功能框连接的参数助手下拉列表中。 分配的 CM 或 CB 端口值为设备配置属性“硬件标识符”。 端口符号名称在 PLC 变量表的“系统常量”(System constants) 选项卡中分配。 (默认值: 0)
CONDITIONS IN CONDITIONS 如下文所述,条件数据结构指定消息开始和结束条件。
DONE OUT Bool 上一请求已完成且没有出错后,保持为 TRUE

一个扫描周期时间

ERROR OUT Bool 上一请求已完成但出现错误后,保持为 TRUE

一个扫描周期时间

STATUS OUT Word 执行条件代码(默认值: 0)

Receive_P2P  指令的开始条件

Receive_P2P 指令使用 Receive_Config 指令指定的组态来确定点对点通信消息的开始和结束。 消息开始由开始条件确定。 消息开始可以由一个开始条件或开始条件的组合来确定。 如果指定多个开始条件,则只有满足所有条件后才能使消息开始。

参数 CONDITIONS 数据类型结构的第 1 部分(开始条件)

表格 13- 15 START 条件的 CONDITIONS 结构

参数和类型 数据类型 说明
STARTCOND IN UInt 指定开始条件(默认值: 1)

· 01H - 开始字符

· 02H - 任意字符

· 04H - 线路中断

· 08H - 线路空闲

· 10H - 序列 1

· 20H - 序列 2

· 40H - 序列 3

· 80H - 序列 4

IDLETIME IN UInt 线路空闲超时所需的位时间数。 (默认值: 40).

仅与线路空闲条件一起使用。 0 到 65535

STARTCHAR IN Byte 用于开始字符条件的开始字符。 (默认值: B#16#2)
STRSEQ1CTL IN Byte 针对每个字符执行的序列 1 忽略/比较控制: (默认值:

B#16#0)

它们是为开始序列中各字符启用的位。

· 01H - 字符 1

· 02H - 字符 2

· 04H - 字符 3

· 08H - 字符 4

· 10H - 字符 5 禁用与某个字符关联的位意味着该序列位置中的任意字符均 符合条件。

STRSEQ1 IN Char[5] 序列 1 开始字符(5 个字符)。 默认值: 0
STRSEQ2CTL IN Byte 针对每个字符执行的序列 2 忽略/比较控制。

(默认值:B#16#0)

STRSEQ2 IN Char[5] 序列 2 开始字符(5 个字符)。 默认值: 0
STRSEQ3CTL IN Byte 针对每个字符执行的序列 3 忽略/比较控制。 默认值:

B#16#0

STRSEQ3 IN Char[5] 序列 3 开始字符(5 个字符)。 默认值: 0
参数和类型 数据类型 说明
STRSEQ4CTL IN Byte 针对每个字符执行的序列 4 忽略/比较控制。 默认值:

B#16#0

STRSEQ4 IN Char[5] 序列 4 开始字符(5 个字符),默认值: 0

示例 

请注意以下所接收的十六进制编码消息: "“68 10 aa 68 bb 10 aa 16”以及下表中列出的已组态开始序列。 在成功接收到第一个 68H 字符时,开始评估开始序列。 在成功接收到第四个字符(第二个 68H)时,开始条件 1 得到满足。 只要满足了开始条件,就会开始评估结束条件。

开始序列处理会因各种奇偶校验、成帧或字符间时间错误而终止。 由于不再满足开始条件,因而这些错误将导致不会有接收消息。

表格 13- 16 开始条件

开始条件 第一个字符 第一个字符 +1 第一个字符 +2 第一个字符 +3 第一个字符 +4
1 68H xx xx 68H xx
2 10H aaH xx xx xx
3 dcH aaH xx xx xx
4 e5H xx xx xx xx

Receive_P2P  指令的结束条件

消息结束由指定的结束条件确定。 消息结束由第一次出现的一个或多个已组态结束条件来确定。 主题“组态接收参数”中“消息结束条件”部分介绍了可以在 Receive_Config 指令中组态的结束条件。

可以在设备配置的通信接口的属性中组态结束条件,或者通过 Receive_Config 指令组态结束条件。 只要 CPU 从 STOP 模式切换到 RUN 模式,接收参数(开始条件和结束条件)就将恢复为设备配置设置。 如果 STEP 7 用户程序执行 Receive_Config,则这些设置将更改为 Receive_Config 的条件。

参数 CONDITIONS 数据类型结构的第 2 部分(结束条件)

表格 13- 17 END 条件的 CONDITIONS 结构

参数 参数类型 数据类型 说明
ENDCOND IN UInt 0 该参数指定消息结束条件:

· 01H - 响应时间

· 02H - 消息时间

· 04H - 字符间隙

· 08H - 最大长度

· 10H - N + LEN + M

· 20H - 序列

MAXLEN IN UInt 1 最大消息长度: 仅当选择最大长度结束条件时使用。 1 到 1024 个字节
N IN UInt 0 长度域在消息中的字节位置。 仅与 N + LEN + M

结束条件一起使用。 1 到 1022 个字节

LENGTHSIZE IN UInt 0 字节域的大小(1、2 或 4 个字节)。 仅与 N + LEN + M 结束条件一起使用。
LENGTHM IN UInt 0 指定跟在长度域后、不包含在长度域值内的字符 数。 该参数仅与 N + LEN + M 结束条件一起使用。 0 到 255 个字节
RCVTIME IN UInt 200 指定接收第一个字符所需的等待时间。 如果在指定时间内没有成功接收到字符,接收操 作将被终止且包含错误。 该参数仅与响应时间条件一起使用。 (0 到 65535 个位时间,最多 8 秒)

此参数不是消息结束条件,因为在接收到第一个 响应字符时评估即终止。 由于在预期有响应时却接收不到响应,因此仅就 其能够终止接收方操作而言,它又是一个结束条 件。 必须选择一个单独的结束条件。

MSGTIME IN UInt 200 指定在接收到第一个字符后完成接收整条消息所 需的等待时间。 只有选择了消息超时条件时,才会使用该参数。

(0 到 65535 毫秒)

参数 参数类型 数据类型 说明
CHARGAP IN UInt 12 指定字符间的位时间数。 如果字符间的位时间数超出指定值,则结束条件 得到满足。 该参数仅与字符间隙条件一起使用。

(0 到 65535 个位时间,最多 8 秒)

ENDSEQ1CTL IN Byte B#16#0 针对每个字符执行的序列 1 忽略/比较控制:

它们是为结束序列中各字符启用的位。 字符 1 是位 0,字符 2 是位 1,依此类推,字符 5 是位 4。禁用与某个字符关联的位意味着该序列位置中 的任意字符均符合条件。

ENDSEQ1 IN Char[5] 0 序列 1 开始字符(5 个字符)

表格 13- 18 条件代码

STATUS (W#16#....) 说明
81C0 所选开始条件非法
81C1 所选结束条件非法;未选择结束条件
81C2 启用了接收中断,但不允许此操作。
81C3 启用了最大长度结束条件,最大长度是 0 或大于 1024。
81C4 启用了计算长度,但 N >= 1023。
81C5 启用了计算长度,但长度不是 1、2 或 4。
81C6 启用了计算长度,但 M 值大于 255。
81C7 启用了计算长度,但计算长度大于 1024。
81C8 启用了响应超时,但响应超时为零。
81C9 启用了字符间隙超时,但该字符间隙超时为零。
81CA 启用了线路空闲超时,但该线路空闲超时为零。
81CB 启用了结束序列,但所有字符均“不相关”。
81CC 启用了开始序列(4 个中的任何一个),但所有字符均“不相关”。
81CD 关于接收消息覆盖保护选择无效的错误
81CE STOP 至 RUN 转换的接收消息缓冲区处理选择无效错误
81CF 块标题错误,例如,块类型错误或块长度错误
STATUS (W#16#....) 说明
8281 写入模块时得到否定确认
8282 DP 从站或模块不可用
82C0 重新组态被拒绝,因为一个组态正在进行
82C1 为模块可缓冲消息数量指定的值大于最大允许值。
82C2 当对固件嵌入式协议进行组态时,接收组态被拒绝。
8351 数据类型不允许用于此 Variant 指针

 

weinxin
plc入门知识问答
每一个PLC工程师都应该关注的微信公众账号,只需输入您的问题,就会有答案

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: