之前所说的通信方式,耦合器都基于 PROFINET 周期性 IO 数据交换,这种通信的输入/输出数据量Zui大不能超过各1440 个字节,可以满足绝大多数的应用场合。
如果我们的实际应用中,需要更多的通信数据量,之前的模式将不能满足需求,我们可以考虑的通信模式,即基于数据记录的非周期数据访问方式。此种方式需要两侧的CPU 编程调用 “RDREC” 和“WRREC”(SFB52/53)完成非周期模式下读/写数据记录的操作。
3.1
传输类型 STO 和 PUB
组态数据记录传输类型分两种:一种叫 Storage 类型,简称 STO,一种叫 Publisher 类型,简称PUB。
1、STO 类型数据记录的传输规则:
PN/PN 耦合器中的每条 STO 类型Zui多缓存 8 个数据记录。
缓冲存储器将按照先进先出 (FIFO) 的原则进行操作。
如果缓冲区已满,而发送方的 CPU 仍尝试将数据记录写入 PN/PN耦合器中,则耦合器拒绝接收该条数据记录。
须等待接收方的 CPU 至少接收一个数据记录后,发送方的 CPU 才能再向 PN/PN耦合器的缓冲区发送一个新的数据记录。
2、PUB 类型数据记录的传输规则相对简单得多:
它不缓冲任何数据记录。
在接收方的 CPU 接收数据记录之前,如果发送方的 CPU 又发送了新的数据记录,则将覆盖上一个数据记录。结果是,接收方的 CPU只能接收到Zui后一个数据记录。
3.2
跨网络数据记录
“
PN/PN 耦合器自固件版本 V2.0 起支持跨网络的数据记录传输。一侧的 CPU 将数据记录传输到一侧的 CPU,每侧分别Zui多4 个 CPU。如下图所示,发送方的 CPU 组态 RD WRITE STO 或 PUB 类型,接收方的 CPU 组态 RD READSTO 或 PUB 类型。
3.3
本地数据记录
自固件版本 V4.2 起 PN/PN 耦合器支持本地数据记录传输,每个插槽Zui多可以将4096 字节的数据,以非周期的方式从一个 CPU(发送器)传输到同一侧的Zui多 3 个 CPU(接收器)中。
如下图,不需要组态另一侧的 CPU,CPU1 通过写数据记录程序块将数据发送给CPU2/CPU3/CPU4,CPU2/CPU3/CPU4 需要调用读数据记录程序块获得数据,虚拟插槽可以选择 LOCAL RDSTO 或者 PUB 类型。
4
“
上文介绍的所有功能既可以单独使用,也允许多种类型混合组态。在使用上我们需要注意 PN/PN耦合器的版本是否支持所选功能。
西门子一共推出了3个型号的PN/PN耦合器。分别是2006,2009和2017年发布的,外观如下图所示:
我们也列出了三款PN/PN耦合器功能对比,如下图所示: