PCS7冗余系统和S7-12001500PROFINETIO通讯
概述在项目应用中,我们经常碰到S7-1200/1500需要与AS410H进行数据交互。就这两类控制器均支持的接口而言,有三种可能的通讯方式:Profibus、以太网和ProfinetlO。考虑到S7-1500和AS410集成的DP接口均只能用作DP主站,所以两者之间不能采用ProfibusDP的主从通讯方式。而基于以太网的通讯则需要使用开放式编程的方式来实现。当然这两类控制器之间的通讯也是可以使用ModbusTCP的方式实现数据交换。但不论哪一种方式,都需要用户编程创建并维护一条TCP的动态连接,需要占用连接资源,同时需要进行相应的编程。
400H与S7-1200/1500通过智能IO方式通信本文介绍AS410H和S7-1200/1500之间基于ProfinetIO的通讯万式,无需编程,组态简单,一个AS410H可与高达250个S7-1500节点进行通信,每个通讯任务最大可实现1440字节输入和1440字节输出的数据交换。
本文以S7-1500与AS410H通讯为例进行说明。
S7-1500配置1)在需要通讯的S7-1500的硬件组态中,找到Profinet接口的配置参数页,勾选“IO设备”,激活device功能,如下图所示。


可以给通讯接口区域重命名、修改输入/输出属性以及调整区域长度,更具体的设置可以进入到“智能设备通信”属性下每一个定义好的接口区域完成,如下图所示。

定义的接口区域的传输类型“传输如遇的类型”都是“CD”,表示建立的是“Controller-Device”之间的通讯。
属性“地址类型”表示该区域是输入还是输出,需要注意的是,此处的输入输出是针对S7-1500而言的,与AS410H中是相反的,即此处定义了一个输入接口,那在AS410中是会分配一个地址区域来对应的。
默认情况下,接口区域的“Organizationblock”属性被设置成了“自动更新”,表示该接口区数据在每个程序周期都会更新一次。

开发人员可以根据需要给S7-1500在PCS7中增加描述名称,该名称也作为GSD文件名的一部分,如下图所示。

至此,S7-1500侧的通讯配置完成。在S7-1500的编程过程中直接对定义好的输入/输出接口区地址进行读写即可。
AS410H配置
2)安装好的GSD文件会在设备目录路径“PROFINETIO→PreconfiguredStations”中,将设备拖入到AS410H的0号机架上CPU的ProfinetIO网络中即可,如下图所示。

3)可以看到,新插入的S7-1500具有之前在Portal环境下组态的通讯接口,软件自动给这些接口区域分配了地址。以“输出”为例,在PCS7中分配的QW512,而在Portal中对应的地址是IWO。接下来,按照PCS7的标准做法,给每个接口区域分配合适的过程映像分区,如下图所示。

4)双击新插入的S7-1500设备,可以查看该设备的基本信息,其中的Devicename保持了和Portal环境中一样的默认名称,建议不要在PCS7组态过程中随意修改这个名称。


5)将该GSD文件拖入AS410H的1号机架上的CPU的ProfinetIO,如下图所示。

6)0号机架与1号机架都是拖了同一个S7-1500,所以在实际S7-1500通讯过程中,需要做AS410H的主备判断,只有当为主的CPU才与S7-1500进行数据交互。即当0号机架为主时,程序中用的地址是512-513。当1号机架的CPU为主时,程序中用的地址就是514-515了。因此,我们需要用到功能块“H_Status”、“AFP”判断AS410H的主备。

7)编译保存PCS7项目的硬件组态,至此就可以在CFC中编程读写与S7-1500对应的接口地址区域即可。类似于普通的IO子站中的模块地址。
通信状态及诊断和ProfibusDP的诊断方式类似,在PCS7的硬件组态在线视图中可以看到AS410H与S7-1500的连接状态。在双方接口的在线属性中还可以读取更多的状态信息。在连接S7-1500的PNIO端口的在线信息中可以读到两个物理端口的连接状态,以及连接伙伴方的信息,如下图所示。

与此对应地,在S7-1500接口的在线信息中也可以读取到连接伙伴方的信息,如下图,具体信息与AS410H中的一致。

即使在PCS7环境中,在通过GSD组态进来的S7-1500站点的在线信息中也可以读取其详细的模块信息。


借助这些在线端口和模块信息,可以方便地判断出当前的通讯状态。只要物理连接正常,端口信息中就可以显示其连接伙伴方的信息,这对于现场通讯问题的诊断提供了更多便利。