
引言文中根据项目实际需求介绍了SiemensPCS7系统中对于不在同一个多项目中组态的AS-AS之间,建立通讯连接实现数据交换的过程。此实施方案是基于西门子推荐方案的基础上,采用比较简便和高效的通讯方......
文中根据项目实际需求介绍了SiemensPCS7系统中对于不在同一个多项目中组态的AS-AS之间,建立通讯连接实现数据交换的过程。
此实施方案是基于西门子推荐方案的基础上,采用比较简便和高效的通讯方式来实现不同系统之间数据的传递和交互。
通讯基础软件平台为,硬件通讯主体包括SiemensCPU417和工业通讯卡CP443-1,众所周知,西门子通讯建立是比较灵活的,既可以用PUT/GET做单边通讯,也可以用BSEND/BRCV做双边通讯,文中案例是基于BSEND/BRCV双边通讯的通讯方式来实现数据传递和交互。
在S7程序编写和组态过程中,可以通过“SEND_R”和“REC_R”块传送一个32位REAL值或者单独的32个BOOL量,或者“SEND_BO”和“REC_BO”(128个BOOL值)实现数据交换。这些程序块在“PCS7LibraryV7x”和“”的“COMM”文件夹中。
注意事项:此通讯建立组态方式适应于单CPU之间的通讯以及单CPU和对方冗余CPU的通讯,不适应于冗余CPU和冗余CPU之间的容错通讯,冗余CPU之间的容错通讯需要在多项目中采样西门子推荐方案(插入虚拟站点的方式)来实现。
此外,2套系统物理链路上必须是在一个物理网路中。
引言文中根据项目实际需求介绍了SiemensPCS7系统中对于不在同一个多项目中组态的AS-AS之间,建立通讯连接实现数据交换的过程。
此实施方案是基于西门子推荐方案的基础上,采用比较简便和高效的通讯方式来实现不同系统之间数据的传递和交互
通讯基础软件平台为,硬件通讯主体包括SiemensCPU417和工业通讯卡CP443-1,众所周知,西门子通讯建立是比较灵活的,既可以用PUT/GET做单边通讯,也可以用BSEND/BRCV做双边通讯,文中案例是基于BSEND/BRCV双边通讯的通讯方式来实现数据传递和交互。
在S7程序编写和组态过程中,可以通过“SEND_R”和“REC_R”块传送一个32位REAL值或者单独的32个BOOL量,或者“SEND_BO”和“REC_BO”(128个BOOL值)实现数据交换。这些程序块在“PCS7LibraryV7x”和“”的“COMM”文件夹中。
注意事项:此通讯建立组态方式适应于单CPU之间的通讯以及单CPU和对方冗余CPU的通讯,不适应于冗余CPU和冗余CPU之间的容错通讯,冗余CPU之间的容错通讯需要在多项目中采样西门子推荐方案(插入虚拟站点的方式)来实现。
此外,2套系统物理链路上必须是在一个物理网路中。
项目介绍因现场需求增加一组动力设备,相关启停和连锁控制功能就近接入系统A,但是某些连锁条件需要从系统B中采集信号,由于实际现场系统A和系统B距离过远,加上系统A和系统B分别在两个不同的项目下集成的,那么如何实现不同多项目中PCS7系统信号的交互和传递呢成了一个棘手的问题?
首先是系统架构图如下图所示,2套系统分别在不同多项目的ES中集成而来。

西门子常规的推荐方案是在系统A中将系统B的硬件信息导入(导入到A系统后务必不要下载B系统硬件信息),在系统A侧建立A和系统B的S7connection通讯连接,同样在系统B中导入系统A的硬件信息,并在系统B中建立系统A的S7connection通讯连接,然后分别在系统A和系统B中调用通讯块来实现数据传递,这样的方式相对比较复杂,还要注意不同项目导入后首先需要对网络进行merge,而且要注意不能改变原项目中已经存在的通讯连接。
通讯组态根据现场实际生产情况,文中采用比较简单,灵活高效的通讯方式在工厂运行过程中,实现不同项目之间的数据交换,注意此通讯建立过程可以在CPU运行时进行增加,保险起见,还是建议把相关逻辑备份好后进行。
文中采用PLC是两套不同项目下所用的CPU417,通讯建立详细过程如下所述。
若是新建立的项目,需要相关硬件系统都组态好后,执行同样的组态过程即可。

图1组态未指定的通讯连接
在弹出的S7connection属性对话框中,勾选Establishanactiveconnection,设置Partneraddress:10.145.143.150(BSystemPLCIP地址),如图2所示

图2设置S7connection连接参数
此处总结一下,就是特别需要注意此处的TSAP号码,对于两个系统要完全对应,也就是此系统中local的TSAP是对面系统中Partner号,此系统中partner中TSAP号是对面local的TSAP号。否则,通讯无法正常建立并实现数据传递和交互。
为了直观显示和对比B系统中此处通讯信息设置,相关设置如图4所示。

图3设置A系统AddressDetails参数

图4设置B系统AddressDetails参数
从图示3和图示4得知,此处TSAP号码已经实现一一对应关系,A系统中和B系统中的TSAP号码彼此正好是镜像的关系。
此时,A系统通讯组态设置已经创建完成,需要编译和下载到A系统CPU中。

图5通讯新建连接编译和下载

图6在线查看通讯是否成功建立
程序编写在两个系统通讯已经建立的基础上,利用PCS7中通讯系统功能块实现对模拟量和布尔量的信号传递和交互,此处简单起见就布尔量信号传递举例说明。
在系统A中新增通讯系统功能块SEND_BO和REC_BO,在上述通讯连接(系统A)中的ID号需要在功能块中正确配置,如此处ID号码需要配置为7,对于R_ID号码,需要在两个系统中配置一样即可。如图7所示。
自系统A中的SEND_BO功能块上模拟前3个变量值为1进行简单测试,那么在系统B中的REC_BO功能块上应该会监控到前三个变量同样为1。这样就表明通讯数据已经在两个系统中成功传递。
组态详细步骤:双方项目中打开CFC。
分别添加一个“SEND_BO”和一个“REC_BO”块。
对每个块的“ID”管脚组态连接ID号。此例中,项目A是7,项目B是3。
对功能块的“R_ID”输入管脚组态任意数值。这个数值在一对通讯块"SEND_BO"和"REC_BO"上必须要一致。示例中,项目A的发送块和项目B的接收块的“R_ID”是9;项目A的接收块和项目B的发送块的“R_ID”是10。
另外,文中并没有对模拟量进行举例说明,模拟量的做法等同,仅仅是调用不同的功能块而已,此处不再赘述。

图7系统A中通讯功能块配置
同理,在系统B中新增通讯系统功能块SEND_BO和REC_BO,在上述通讯连接(系统B)中的ID号需要在功能块中正确配置,如此处ID号码需要配置为3,对于R_ID号码,需要在两个系统中配置一样即可。如图8所示。

图8系统B中通讯功能块配置
总结:文中所述的通讯方式非常简洁并灵活的实现不同系统下AS之间的通讯建立过程,而且可以在CPU不停机的情况下进行实施,相对于西门子官方推荐的方式组态更加高效。但是对于冗余系统之间的通讯建立过程,必须要按照官方推荐的方式,即在需要组态通讯的多项目中导入彼此系统硬件信息,仅用于后续组态连接方式进行配置。