在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程序。
图 01
2、组态连接
图 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。
图03
图 04
- 检查子网的“S7 subnetwork ID”以及这个站点的TSAP号。两个项目之间,每条连接的这两个参数必须是相同的。
注意:
由于这里已经使用了一个特定的S7连接,组态的TSAP号就确定了,不能更改。TSAP号由连接资源和机架/槽号组成。通讯的第一条连接的资源数是10,连接资源会随着后续连接继续增加。连接资源数机架号和槽号由硬件配置来定义,Rack 1对应的号是0,而Rack 2对应的号是2。槽号对应CPU所在的槽号。两个项目中建立连接时数的顺序必须一致,以保证TSAP号相同。可以在S7连接的属性中设置字网ID号。
如果多项目中的TSAP号不一致,操作如下:
- 持续增加连接直到“连接资源”中TSAP一致
- 删除所有为保证TSAP一致新增的连接
图 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)
图 06
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc324505.html