在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?

在PCS 7中,对于不在同一个多项目中组态的AS之间,可以交换数据。

在S7程序中,你可以通过“SEND_R”和“REC_R”块传送一个32 位REAL值或者单独的32个BOOL量,或者“SEND_BO”和“REC_BO”(128个BOOL值)实现数据交换。这些程序块在“PCS 7 Library V7x”和“PCS 7 Library V8.x”的“COMM”文件夹中。

以下过程同样适用于使用S7 F systems组态的F-CPUs之间的安全通信,关于组态连接的详细信息参考S7 F/FHSystems 编程和操作手册2201072.

要求

无法组态多项目的容错连接。

为解决此问题,在需要组态通信的多项目中新增一个临时站点

假设已经对每个工段建立了一个多项目,并组态了硬件。两个工段在一个物理网络上。

说明


以下示例表明了两套S7-417 H CPU之间的通讯。对于标准的S7-400 CPU,不需要组态临时CPU。可以使用未指定的"S7 连接"。参考条目号17628518

1、创建一个临时性CPU

注意:不要下载这个临时CPU的硬件组态

每个项目中都需要一个临时性的CPU来组态连接。

  • 打开项目。
  • 在项目菜单中,选择“Add New Object > SIMATIC H Station”。
  • 组态需要创建连接的硬件站点。为了避免组态错误,可以把其他项目的硬件组态先导出再做相应导入。
  • 将CP连接到项目的子网上。
  • 这个临时站不需要S7程序。

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?图 01

2、组态连接

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?
图 02

两个项目中都需要建立当前CPU对临时CPU的连接。

  • 打开"NetPro" 编辑器。
  • 选中SIMATIC H站的“CPU”区域。
  • 选中菜单项“InsertCPU> New Coection...”。
  • 选择临时性组态的CPU作为连接伙伴,连接类型选择“Fault-tolerant S7 coection”。
  • 在一个项目的属性对话框中,选择“Active coection establishment”,但另一个项目中不需要做这个选择。
  • 如果需要的话修改本地ID号。示例中,CPU 1的本地ID是1,CPU 2的本地ID是2。

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?

图03

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?

图 04

  • 检查子网的“S7 subnetwork ID”以及这个站点的TSAP号。两个项目之间,每条连接的这两个参数必须是相同的。

注意:
由于这里已经使用了一个特定的S7连接,组态的TSAP号就确定了,不能更改。TSAP号由连接资源和机架/槽号组成。通讯的第一条连接的资源数是10,连接资源会随着后续连接继续增加。连接资源数机架号和槽号由硬件配置来定义,Rack 1对应的号是0,而Rack 2对应的号是2。槽号对应CPU所在的槽号。两个项目中建立连接时数的顺序必须一致,以保证TSAP号相同。可以在S7连接的属性中设置字网ID号。

如果多项目中的TSAP号不一致,操作如下:

  • 持续增加连接直到“连接资源”中TSAP一致
  • 删除所有为保证TSAP一致新增的连接

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?

图 05

3、创建S7程序

  • 每个项目中打开CFC。
  • 添加“SEND_R”和“REC_R”块。
  • 对每个块的“ID”管脚添加连接ID号。此例中,项目1是1,项目2是2。
  • 对功能块的“R_ID”输入管脚组态任意数值。这个数值在一对通讯块"SEND_R" 和"REC_R"上必须要一致。示例中,项目1的发送块和项目2的接收块的“R_ID”是6;项目1的接收块和项目2的发送块的“R_ID”是5。

注意
如果是F通信,R_ID只允许是奇数(内部使用2个ID:R_ID 和 R_ID + 1)

在PCS 7中如何向不在同一个多项目中组态的H CPU发送数据?
图 06

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

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

相关推荐

发表回复

登录后才能评论