SIMATIC NET OPC 服务器写 Send 条目的规则

问题:
使用 FDL 和 Send/Receive 协议写 SIMATIC NET OPC 服务器的“Send items”(发送条目)时应当注意哪些事项?n

解答:
使用 Send/Receive 或 FDL-OPC 服务器时,您总是需要两个 OPC 条目(OPC 对象)用于写/读访问。这是由 Send/Receive 和 FDL 协议的结构所决定的。n

举例:n

  • SR:[...]SEND 用于写访问n
  • SR:[...]RECEIVE 用于读访问

SIMATIC NET OPC 服务器的一个“Send item”具有下列结构:n

注意事项:
Receive 条目与 Send 条目具有相同的结构。n

SR: [连接名称]Send20,B0,20

  • “Send item”对于 FDL 和 Send/Receive 连接只有写(Write)权限。因此,不能执行读访问。n
  • 在代码字 Send 之后直接指定要发送的字节数。如果您在这里未指定一个数值,则使用缺省长度。随后 PC 必须通过 Receive 从接口获取足够的字节。n
  • 然后指定所需的数据字节以及其该值存储在 Send 邮箱中对应的起始字节地址n
  • 最后一个参数只用于表示域。指定数据类型的数据数量。(举例:REAL12,2 = 从第 12 字节起的 2 个实数;2 x 4 字节 = 8 字节)

SIMATIC Net OPC 服务器的 SEND 条目的规则
下面的例子显示了如何使用 OPC 条目访问一个包含不同数据类型的 20 字节数据块。为了将该块写入 PC,必须在同一时间将所有条目发送到 PC (使用 OPC 组 Write 作业,例如 OPCGroup.Syncwrite)。n

SIMATIC NET OPC 服务器写 Send 条目的规则

图 1:在 Send 区域声明 OPC 条目n

在本例中,始于 Byte 14 的数值区域未被应用程序占用。OPC 服务器已经预先将该区域初始化为零。

重要事项:
如果只需要写上述条目中的一个,OPC 服务器预先将整个未占用的区域初始化为零。

SIMATIC NET OPC 服务器写 Send 条目的规则

图 2:将非写条目置为零

如果您想要一个接一个地写条目,而不是同时写所有条目,则 PC 中的实际值只在写下个条目之前保持有效。

注意事项:
FDL 和 Send/Receive 协议的概念基于逐个块地传送数据。在这里,一个块中的所有值都应当被赋予条目,通过一个 Send 作业同时发送整个数据包。这样就排除了现有数值被覆盖的可能。

关键字:
SR OPC 服务器,S5 兼容通信,面向块的业务


原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc335788.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论