1、S7-300/400与 S7-200SMART之间的以太网 S7通信S7通信是 S7系列 PLC基于 MPI、PROFIBUS、ETHERNET 网络的一种优化的通信协议,主要用于 S7-300/400PLC之间的通信。经过测试发现 S7-300/400通过集成的 PN口或 CP343-1/CP443-1与 S7-200 SMART PLC 之间的 S7通信也是可以成功的, 但是需要 S7-300/400侧编程调用PUT/GET指令。注意:1.S7-200 SMART CPU 与 S7-300/400 CPU 之间的 S7通信未经西门子官方测试,本文档仅供客户测试使用,使用该种通信方式所产生的
2、任何危险需要有客户自己承担!2.S7-200 SMARTPLC V2.0 版本才开始支持 PUT/GET通信,V1.0 版本的 CPU需要升级固件后方可支持 PUT/GET。3. S7-300/400若采用 CP通信时,则需要采用 Standard或 Advanced类型通信模块,CP343-1 Lean 模块不支持。 4.本文仅介绍 S7-300集成 PN口与 S7-200 SMART CPU S7通信。S7通信介绍S7通信是 S7系列 PLC基于 MPI、PROFIBUS、ETHERNET 网络的一种优化的通信协议,主要用于 S7-300/400PLC之间的通信。S7-300/400通过以
3、太网接口与 S7-200 SMART PLC 之间的 S7通讯经过测试是可以成功的,但是需要 S7-300/400侧编程调用 PUT/GET指令,见表 1所示。表 1 PUT 和 GET :S7-400 S7-300 描述 简要描述 SFB 14 FB 14 读数据 单边编程读访问。SFB 15 FB 15 写数据 单边编程写访问。 S7-300/400根据使用通信接口(集成的 PN口或 CP343-1/CP443-1)不同,调用的功能块来源也不同。通信接口为 S7-300 集成 PN接口时,需要使用 Standard Library中 PUT/GET指令,如图 1所示。图 1 S7-300P
4、N接口需采用 Standard Library通信接口为 S7-300 CP通信模块时,需要使用 SIMATIC_NET_CP 库中 PUT/GET指令,如图 2所示。图 2 S7-300 CP模块接口需采用 SIMATIC_NET_CP库S7-400 CPU不区分通信接口,需要使用 System Function Blocks 中的SFB14/SFB15指令块,如图 3所示。图 3 S7-400 需采用 SFB程序块 硬件及网络组态本文以采用 1个 315-2PN/DP,1 个 S7-200 SMART PLC为例,介绍它们之间的S7通信。 在 STEP7中创建一个新项目,项目名称为 S7-
5、300-SMART。插入 1个 S7-300站,在硬件组态中插入 CPU 315-2 PN/DP。如图 4所示。 图 4 STEP7 项目中插入 S7-300站点设置 CPU 315-2PN/DP的 IP地址:192.168.0.1,如图 5所示。硬件组态完成后,即可下载该组态。 图 5 设置 CPU PN IP地址打开“NetPro”设置网络参数,选中 CPU 315-2PN/DP,在连接列表中建立新的连接。步骤如图 6所示。 图 6 NetPro组态视图中插入新连接选择 Unspecified 站点,选择通讯协议 S7 connection,点击 Apply,如图7所示。 图 7 组态新连
6、接在弹出的 S7 connection属性对话框中,勾选 Establish an active connection,设置 Partner address:192.168.0.2(S7-200 SMART PLC IP 地址),如图 8所示。 图 8 设置 S7连接参数点击 “Address Details“ ,再弹出来的对话框设置 Partner 的 Slot 为 1,如图 9所示。点击 OK 即可关闭该对话框。 图 9 设置“address details”参数网络组态创建完成后,需要编译,如图 10所示。 图 10 保存并编译连接网络组态编译无错,鼠标先点击 CPU 315-2PN/D
7、P ,然后点击下载按钮下载网络组态,步骤如图 11所示。 图 11 下载组态连接程序编程可以通过 SFB/FB 14 “GET“,从远程 CPU中读取数据。S7-300:在 REQ的上升沿处读取数据。在 REQ的每个上升沿处传送参数ID、ADDR_1 和 RD_1。在每个作业结束之后,可以分配新数值给 ID、ADDR_1 和RD_1参数。S7-400:在控制输入 REQ的上升沿处启动 SFB。在此过程中,将要读取的区域的相关指针(ADDR_i)发送到伙伴 CPU。远程伙伴返回此数据。在 下一个 SFB/FB调用处,已接收的数据被复制到组态的接收区(RD_i)中。必须要确保通过参数ADDR_i和
8、 RD_i定义的区域在长度和数据类型方面 要相互匹配。通过状态参数 NDR数值为 1来指示此作业已完成。只有在前一个作业已经完成之后,才能重新激活读作业。远程 CPU可以处于 RUN或 STOP工作状态。如果 正在读取数据时发生访问故障,或如果数据类型检查过程中出错,则出错和警告信息将通过 ERROR和 STATUS输出表示。通过使用 SFB/FB 15 “PUT“,可以将数据写入到远程 CPU。S7-300:在 REQ的上升沿处发送数据。在 REQ的每个上升沿处传送参数ID、ADDR_1 和 SD_1。在每个作业结束之后,可以给 ID、ADDR_1 和 SD_1参数分配新数值。S7-400:
9、在控制输入 REQ的上升沿处启动 SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴 CPU。 远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要确保通过参数 ADDR_i和 SD_i定义的区域在编号、长度和数据类 型方面相互匹配。如果没有产生任何错误,则在下一个 SFB/FB调用时,通过状态参数 DONE来指示,其数值为 1。只有在最后一个作业完成之后,才能再次激活写作业。远程 CPU可以处于 RUN或 STOP模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过 ERROR和 STAT
10、US输出 表示。打开 SIMATIC 315 PN-1的 OB1,在 OB1中依次调用 FB14,FB15 如图 12、图 13所示:图 12 FB14调用表 2.FB14参数说明 : 参数 描述 数据类 型 存储区 描述 REQ INPUT BOOL I、Q、M、D、 L 上升沿触发调用功能块 ID INPUT WORD M、D、常数 地址参数 IDNDR OUTPUT BOOL I、Q、M、D、 L 为 1时,接收数据成功 ERROR OUTPUT BOOL I、Q、M、D、 L 接收到新数据 STATUS OUTPUT WORD I、Q、M、D、 L 故障代码 S7-300: ADDR_
11、1S7-400: ADDR_i(1 i 4) IN_OUT ANY M、DI、Q、M、D、 T、C 从 S7-200 SMART的数据地址中读取数据;V 区数据对应 DB1。 S7-300: RD_1S7-400: RD_i(1 i 4) IN_OUT ANY S7-300:M、DS7-400 I、Q、 M、D、T、C 本站接收数据地址 图 13 FB15调用表 3.FB15参数说明 :参数 描述 数据类 存储区 描述 型 REQ INPUT BOOL I、Q、M、D、 L 上升沿触发调用功能块 ID INPUT WORD M、D、常数 地址参数 DONE OUTPUT BOOL I、Q、M、
12、D、 L 为 1时,发送完成 ERROR OUTPUT BOOL I、Q、M、D、 L 为 1时,有故障发生 STATUS OUTPUT WORD I、Q、M、D、 L 故障代码 S7-300: ADDR_1S7-400: ADDR_i(1 i 4) IN_OUT ANY M、DI、Q、M、D、 T、C 从 S7-200 SMART的数据地址中读取数据;V 区数据对应 DB1。 S7-300: SD_1S7-400: SD_i(1 i 4) IN_OUT ANY S7-300:M、DS7-400 I、Q、 M、D、T、C 本站发送数据地址 注意:S7-200 SMART PLC 不需要编程。 S7-200 SMART 中的 V存储区在 S7-300/400 PLC 编程中以 DB1数据块的形式体现。