PLC怎么使用Receive_P2P(启用接收消息)指令

2019年1月7日15:45:45 发表评论 1,222 阅读

表格 13- 23 Receive_P2P(接收点对点)指令

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

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

参数和类型 数据类型 描述
PORT IN PORT 安装并组态 CM 或 CB 通信设备之后,端口标识符将出现在 PORT 功能框连接的参数助手下拉列表中。 分配的 CM 或 CB 端口值为设备配置属性“硬件标识符”。 端口符号名称在 PLC 变量表的“系统常量”(System constants) 选项卡中分配。

(默认值:0) 0)

BUFFER IN Variant 该参数指向接收缓冲区的起始位置。 该缓冲区应该足够大,可以接收最大长度消息。

不支持布尔数据或布尔数组。(默认值: 0)

NDR OUT Bool 新数据就绪且操作无错完成后,保持为 TRUE 一个执行周期时间。
ERROR OUT Bool 操作已完成但出现错误后,保持为 TRUE 一个执行周期时间。
STATUS OUT Word 执行条件代码(默认值:0) 0)
LENGTH OUT UInt 返回消息的长度(字节)(默认值:0) 0)

NDR 或 ERROR 为 TRUE 时,STATUS 值有效。 STATUS 值提供 CM 或 CB 中的接收操作终止的原因。 它通常是正值,表示接收操作成功且接收过程正常终止。 如果STATUS值为负数(十六进制值的最高有效位置位),则表示接收操作因错误条件终止,例如,奇 偶校验、组帧或超限错误。

每个 PtP 通信接口最多可缓冲 1024 字节。 这可以是一个大消息或几个较小的消息。如果 CM 或 CB 中存在多个消息,则 Receive_P2P 指令将返回最早的可用消息。随后执行 Receive_P2P 指令将返回下一个最早的可用消息。

表格 13- 25 条件代码

STATUS (W#16#...) 说明
0000 没有提供缓冲区
0094 因接收到最大字符长度,消息被终止
0095 因消息超时,消息被终止
0096 消息因字符间超时而终止
0097 消息因响应超时而终止
0098 因已满足“N+LEN+M”长度条件,消息被终止
0099 因已满足结束序列,消息被终止
8085 LENGTH 参数的值为 0 或者大小大于 4KB。
8088 LENGTH 参数或收到的长度大于 BUFFER 中指定的范围。
8090 不正确组态信息,错误信息长度,错误子模块,非法信息
81E0 因接收缓冲区已满,消息被终止
81E1 因出现奇偶校验错误,消息被终止
81E2 因组帧错误,消息被终止
81E3 因出现超限错误,消息被终止
81E4 因计算长度超出缓冲区大小,消息被终止
81E5 反向偏置信号(断线检测)
81E6 消息队列已满。 报告此错误时将不提供数据。 如果发生此情况,模块在无错误数据传送和此错误之间切换。
81E7 内部错误,指令和 CM 之间的同步错误: 当检测到顺序错误时置位
STATUS (W#16#...) 说明
81E8 消息被终止,字符间超时在尚未满足消息结束条件时就已过期
81E9 已检出 Modbus CRC 错误(仅限用于支持 Modbus 协议 CRC 生成/校验的模块)
81EA Modbus 报文过短(仅限用于支持 Modbus 协议 CRC 生成/校验的模块)
81EB 消息被终止,已超过最大信息长度
8201 ANY 指针中存在非法语法 ID
8223 写参数时出现范围长度错误。 参数整体或部分位于地址范围之外,或者使用 ANY

指针时位范围长度不为 8 的倍数。

8225 写参数时发生范围错误。 参数位于系统函数的非法范围内。
8229 写参数时发生地址对齐错误。 引用的参数位于不等于 0 的位地址。
8230 参数位于一个只读的全局 DB 中
8231 参数位于只读背景数据块
8232 参数包含大于最大允许块编号的 DB 编号(DB 编号错误)。
823A BUFFER 参数的 DB 不存在。
8280 读取模块时得到否定确认
8282 DP 从站或模块不可用

 

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

发表评论

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