S7-300和S7-400 集成 PN 口如何与S7-200 ART PLC S7通信
S7 通信简介
S7 通信是 S7 系列 PLC 基千 MPI、PROFIBUS、ETHERNET 网络的一种优化的通信协议,主要用千 S7-300/400PLC 之间的通信。S7-200 ARTPLC V2.0 版本支持 ART PLC 之间的 PUT/GET 通讯,经过发现 S7-300/400 集成的 PN 口与 S7-200 ART PLC 之间的 PUT/GET 通讯也是可以成功的,但是需要 S7-300/400 侧编程调用 PUT/GET指令。S7-300/400 集成 PN 口调用的功能块的调用如图 1、图 2 所示。
要通过 S7-300/400 CPU 的 集成 PROFINET 接口实现 S7 通信,需要在硬件组态中建立连接。
2、硬件及网络组态
CPU 采用 1 个 315-2PN/DP,1 个 S7-200 ART PLC 使用以太网进行通信。
在 STEP7 中创建一个新项目,项目名称为 S7-300-ART。插入 1 个 S7-300 站,在硬件组态中插入 CPU 315-2 PN/DP。如图 3 所示。
设置 CPU 315-2PN/DP 的 IP 地址:192.168.0.1,如图 4 所示。硬件组态完成后,即可下载该组态。
打开“NetPro"设置网络参数,选中CPU 315-2PN/DP,在连接列表中建立新的连接。步骤如图 5 所示。
选择 Unspecified 站点,选择通讯协议 S7 connection,点击 Apply,如图 6 所示。
在弹出的 S7 connection 属性对话框中,勾选 Establish an active connection,设置Partner address:192.168.0.2(S7-200 ART PLC IP 地址),如图 7 所示。
点击 Address Details ,再弹出来的对话框设置 Partner 的 Slot 为 1,如图 8 所示。点击
OK 即可关闭该对话框。
网络组态创建完成后,需要编译,如图 9 所示。
网络组态编译无错,鼠标先点击 CPU 315-2PN/DP ,然后点击下载按钮下载网络组态,步骤如图 10 所示。
3、软件编程
可以通过 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 和 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:在控制输入 REQ 的上升沿处启动 SFB。在此过程中,将指向要写入数据的区域(ADDR_i)的指针和数据(SD_i)发送到伙伴 CPU。远程伙伴将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。必须要确保通过参数 ADDR_i 和 SD_i 定义的区域在编号、长度和数据类型方面相互匹配。
如果没有产生任何错误,则在下一个 SFB/FB 调用时,通过状态参数DONE 来指示,其数值为 1。只有在后一个作业完成之后,才能再次写作业。远程 CPU 可以处千RUN 或 STOP 模式。如果正在写入数据时发生访问故障,或如果执行检查过程中出错,则出错和警告信息将通过 ERROR 和 STATUS 输出表示。
打开 SIMATIC 315PN-1 的 OB1,在 OB1 中依次调用 FB14,FB15 如图 11、图 12 所示:
FB15 参数说明
S7-200 ART PLC 不需要编程。
西门子S7-400H与S7-300的以太讯
单站S7-400 CPU如何与S7-300 建立以太讯
1.网络组态
在S7-400 CPU的AS所在的单项目中点击工具栏上的按钮
,打开网络组态NetPro。在CPU上右键菜单中选择“Insert New Connection”创建新的连接:
在弹出的新窗口中选择连接伙伴方。如果S7-300 CPU和S7-400 CPU处在同一个项目中,则可以直接选择;如果处在不同的项目中,则需要选择一个“Unspecified”(未*),点击“Apply”应用即可。
在如下所示的S7连接属性设置窗口中填写通讯伙伴方的IP地址,然后点击“Address Details…”按钮:
在详细信息中修改伙伴方的槽位为2,点击OK确认。
将建立好的连接下载到S7-400站即可。
2.通讯程序调用
在通讯功能块调用之前,需要在S7-300 CPU中准备和S7-400 CPU通讯用的共享DB块。示例中创建DB50和DB51,分别对应“输出”和“输入”数据。
在S7-400 CPU侧调用“PUT(SFB14)”完成向S7-300 CPU写入数据,调用“GET(SFB15)”从S7-300 CPU侧读出数据。
具体编程组态方法请参考如下文档:
S7-可编程序控制器的S7-通讯
// ** .ad./download/docMessage.aspx?Id=3295
冗余S7-400H CPU如何与S7-300建立以太讯
1.网络组态
由于S7-300 CPU和S7-400H CPU之间无法建立S7容错连接,所以在连接创建的时候,需要分别从S7-400H CPU的两个CPU分别建立到S7-300 CPU(或者Unspecified)的连接:
图HCPU中0机架上的连接
图HCPU中1机架上的连接
从S7-400H CPU的两个CPU分别创建一个到“Unspecified”的S7连接,可以看到,这两个连接的ID号是不同的。
2.通讯程序调用
HCPU到S7-300 CPU站点的通讯链路由两个S7连接实现,如何基于这两个连接可靠地完成数据交换则是需要考虑的重点。具体的方案较多,可以采用两个连接同时工作,接受方通过判断连接状态来选择数据的方式,也可以采用“心跳信号”的方式判断出可用的连接之后再完成传输等。
用户亦可通过读取主备CPU状态的方式来选择具体的通讯连接。CPU的冗余状态可通过调用SFC51 功能块。具体参数设置请参考如下文档:
SFC 51常用功能使用入门
西门子S7-400PLC多CPU通讯传输
S7-400 多 CPU 之间通讯,使用 S7-400 底板 K 总线。此次分为以下四部分来进行详细的讲解,便于大伙的理解
1. S7-400 多 CPU 环境注意事项
2. 环境
3. 硬件组态
4. 软件编程
1.S7-400 中多 CPU 环境的注意事项
在共用 K 总线和 P 总线不分段的子机架 UR1 或 UR2 上运行
所有在一个公用外设总线(P)和通讯(K)总线上操作的 CPU 运行状态(CPU 运行系统性能)
都将自动同步。
一个复杂的大任务可以拆开到多 4 个 CPU 上来计算。
通过简单插入 CPU 实现性能的按比例升级是可能的。
增加系统资源(内存,标准区,计数器...)。
在分段子机架 CR2 上的运行
分段子机架包含有两个立的 P 总线,其中 10 个插槽在分段 1 中,8 个插槽在分段 2。
每个总线分段使用一个 CPU,I/O 模块分配到本地的 CPU 上。CPU 各自立运行,没有运行状态的同步。
公共通讯总线允许子单元间进行通讯而不需要附加硬件。
因此,2 个单的控制器可以组态到一个 CR 中。这样可以在柜子中节省空间。
成本上很节约,因为仅需一个子机架和一个电源供应单元。
S7-400 和 M7-400 CPU 都可以没有任何的限制地使用,也就是说,甚至可以将 S7 和
M7 CPU 一起放在 CR2 中。(警告:要把 M7-CPU 486-3 与 488-3 一起在 CR2 中运行,
只能使用 M7-SYS V2.0 和 STEP7 基本软件 V3.1。原来的 CPU 488-4 与 488-5 不能够
在 CR2 中运行)。
2.环境
2.1 硬件:CPU416-3 和 CPU412-2
2.2 软件:Windows XP professional SP2 、STEP7 V5.3 SP3进行 BSEND,BREV 和 USEND ,UREV通讯。
3. 硬件组态
分别设定 CPU 不同的 MPI 地址,可以通过底板 K 总线从一个 CPU对多个 CPU 编程
创建一个 S7 连接
接口为 PLC internal,从底板 K 总线通讯。
创建 2 个连接,因为要 2 种通讯方式,存盘编译无错误退出。BSEBD,BRCV(SFB12、SFB13)和 USEND,URCV(SFB8、SFB9)。BSEND 可以传输 ** K,带效验速度慢。USEND 可以传输 440 字节,不效验速度快。
分别下载 CPU 的 block 下 System data
4. 软件编程
西门子S7-400多CPU之间通讯
1.S7-400中多CPU环境的注意事项
在共用K总线和P总线不分段的子机架UR1或UR2上运行
• 所有在一个公用外设总线(P)和通讯(K)总线上操作的CPU运行状态(CPU运行系统性能)都将自动同步。
• 一个复杂的大任务可以拆开到多4个CPU上来计算。
• 通过简单插入CPU实现性能的按比例升级是可能的。
• 增加系统资源(内存,标准区,计数器...)。 但输入/输出点数不会增加。
• 可以把时间临界和非时间临界过程区域分离开来 (即:一个快速闭环控制器的快速制)。
• 多CPU可以共用一个CP模板和外部通讯。I/O 模板只能*一个CPU。 其中一个停止,其它CPU也将停止。
• 以下订货号的S7-CPU支持多CPU操作模式:
6ES7412-1XF01-0AB0
6ES7413-1XG01-0AB0
6ES7413-2XG01-0AB0
6ES7414-1XG01-0AB0
6ES7414-2XG01-0AB0
6ES7414-2XJ00-0AB0 版本 3 以上
6ES7416-1XJ01-0AB0
6ES7416-2XK00-0AB0 版本 3 以上
6ES7416-2XL00-0AB0 版本 3 以上
• M7-CPU 486-3 Pentium 75 MHz (原为:CPU 488-4)和488-3 Pentium 120 MHz (原为:CPU 488-5)目前不支持多CPU操作。
在分段子机架CR2上的运行
• 分段子机架包含有两个立的P总线,其中10个插槽在分段1中,8个插槽在分段2。
• 每个总线分段使用一个CPU,I/O模块分配到本地的CPU上。CPU各自立运行,没有运行状态的同步。
• 公共通讯总线允许子单元间进行通讯而不需要附加硬件。
• 因此,2 个单的控制器可以组态到一个CR中。这样可以在柜子中节省空间。
• 成本上很节约,因为仅需一个子机架和一个电源供应单元。
• S7-400 和M7-400 CPU都可以没有任何的限制地使用,也就是说,甚至可以将S7 和M7 CPU一起放在CR2中。(警告:要把M7-CPU 486-3 与 488-3 一起在CR2中运行,只能使用M7-SYS V2.0 和 STEP7 基本软件 V3.1。原来的CPU 488-4 与 488-5 不能够在CR2中运行)。
2.环境
2.1 硬件
CPU416-3 和 CPU412-2
2.2 软件
Windows XP professional SP2
STEP7 V5.3 SP3
进行BSEND,BREV 和USEND ,UREV通讯
3. 硬件组态
分别设定CPU不同的MPI地址,可以通过底板K总线从一个CPU对多个CPU编程
创建一个S7连接
接口为PLC internal,从底板K总线通讯。
创建2个连接,因为要2种通讯方式,存盘编译无错误退出。BSEBD,BRCV(SFB12,SFB13)和USEND,URCV(SFB8,SFB9).
BSEND可以传输 ** K,带效验速度慢。USEND可以传输440字节,不效验速度快。
分别下载CPU的block下System data
4. 软件编程
从标准系统库拷贝标准系统块,粘贴到自己的项目中
在菜单PLC-Monitor/Modify Variables下进行
可以使用强制变量和监视功能