- {{item.name}}
S7-1200 G2 和 S7-1500 之间 S7 通信—S7-1200 G2 客户端
- 0
- 39
S7-1200 G2 CPU 进行 S7 通信需要使用组态的 S7 连接进行数据交换,S7 连接可在单端或双端组态。
硬件和软件:
CPU 1212C DC/DC/DC,V1.0
CPU 1517-3PN,V4.0
TIA Portal V20 Upd 4
不同项目中 S7 通信
CPU1 为 CPU 1212C ,其 IP 地址为 192.168.0.212;CPU2 为 CPU 1517-3PN,其 IP 地址为 192.168.0.214 。
通信任务是 CPU1 作为 S7 通信客户端,调用 PUT/GET 指令读写 CPU2 的数据,其中 “GET” 指令用于读取 CPU2 DB10 中从 DBX0.0开始的共 100 字节的输入数据,“PUT” 指令用于将 100 字节的数据写入到 CPU2 DB20 中从 DBX0.0 开始的 100 个字节。CPU2 作为 S7 通信的服务器,其不需要组态 S7 连接,也无需调用 PUT/GET 指令,只需在 CPU 属性的“保护”设置中激活“允许来自远程对象的 PUT/GET 通信访问”。
1. CPU 1 编程组态
(1)设备组态
使用 TIA 博途软件创建新项目,并将 CPU 1212C 作为新设备添加到项目中。在设备视图的巡视窗口中,将 CPU 属性作如下修改:
- “PROFINET 接口”属性中为 CPU“添加新子网”,并设置 IP 地址(192.168.0.212)和子网掩码(255.255.255.0)。
- “系统和时钟存储器”属性中激活“启用时钟存储器字节”,并设置“时钟存储器字节的地址(MB0)”。
(2)添加 S7 连接
在网络视图中为 CPU 添加未指定的 S7 连接,创建 S7 连接的操作如图 1-1所示。

图1- 1 选择 S7 连接
①点击“连接”按钮;
②下拉菜单中,选择“S7 连接”;
③点击 CPU 图标,鼠标右键菜单中选择“添加新连接”。
在弹出“创建新连接”对话框中,选择“未指定”,点击“添加”后,将会创建一条“未指定”的 S7 连接,如图 1-2 所示。
图1- 2 添加“未指定” S7 连接
①选择“未指定”;
②点击“添加”按钮,创建 S7 连接;
③未指定的 S7 连接已添加。
创建的 S7 连接将显示在网络视图右侧“连接”表中。在巡视窗口中,需要在新创建的 S7 连接属性中设置伙伴 CPU 的 IP 地址,如图 1-3 所示。
图1- 3 设置伙伴 CPU IP 地址
①“连接”选项卡中选择 S7 连接;
② 巡视窗口中选择“属性”;
③ 选择“常规”;
④ 设置伙伴方 CPU IP 地址。
S7 连接属性中“本地 ID ”中,可以查询到本地连接 ID (十六进制数值),如图 1-4 所示。该 ID 用于标识网络连接,需要与 PUT/GET 指令中“ ID ”参数保持一致。

图1- 4 S7 连接 ID
S7 连接属性中“地址详细信息”属性中需要配置伙伴方 TSAP。伙伴 TSAP 设置值与伙伴 CPU 类型有关,伙伴 CPU 侧 TSAP 可能设置值如下:
- 伙伴为 S7-1200/S7-1200 G2/S7-1500 系列 CPU: 03.00 或 03.01。
- 伙伴为 S7-300 系列 CPU :03.02:
- 伙伴为 S7-400 系列 CPU :03.XY,X 和 Y 取决于 CPU 的机架和插槽号。
本示例中,伙伴 CPU 为 CPU 1517-3PN,因此伙伴方 TSAP 可设置为 03.00 或 03.01 ,设置如图 1-5 所示。

图1- 5 设置伙伴 TSAP
(3)编程
1)在 CPU 1 程序块中添加用于 PUT/GET 数据交换的数据块 “S7Connect”,并在数据块中定义了 2 个数据类型为 Array[0..99] of Byte 变量“sendData”和“receiveData”。
“S7Connect”.receiveData为“GET”指令从伙伴 CPU 2 读取到的数据; “S7Connect”.sendData为“PUT”指令发送到 CPU 2 的数据区,如图 1-6 所示。

图1- 6 创建用于数据交换的数据块
2)在主程序 OB1 中调用“GET”指令,读取伙伴 CPU 从 DB10 开始 100 个字节数据并保存到“S7Connect”.receiveData,如图 1-7 所示 。

图1-7 调用 GET 指令
3)在主程序 OB1 中调用 “PUT” 指令,将本地数“S7Connect”.sendData 写入到伙伴 CPU 从 DB 20 开始 100 个字节区域,如图 1-8所示 。

图1-8 调用 PUT 指令
注意:
- 使用 PUT/GET 通信时,伙伴 CPU 待读写区域不支持优化访问的数据区域。
- PUT/GET 指令中参数“ID”需要与S7连接属性中的“本地 ID”(参考图 1-4)一致。
(4)下载组态和程序
CPU1 的组态配置与编程已经完成,下载组态和程序即可。
2. CPU 2 编程组态
CPU2 只需进行设备组态,创建对应的 DB 区,并把需要读写的 DB 块设置为非优化访问即可,无需进行相关通信编程。
(1)设备组态
重新打开 TIA 博途软件创建新项目,并将 CPU 1517-3PN 作为新设备添加到项目中。在设备视图的巡视窗口中,将 CPU 属性作如下修改:
- “PROFINET 接口”属性中为 CPU “添加新子网”,并设置 IP 地址(192.168.0.214)和子网掩码(255.255.255.0)。
- “防护与安全”属性中“连接机制”中激活“允许来自远程对象的 PUT/GET 通信访问”。
- 分别创建 DB10 和 DB20,选择 DB10 与 DB20 数据块的属性,取消勾选“优化的块访问”如图1-9所示。

图1-9 优化的块访问
(2)下载组态和程序
CPU 2 的组态配置与编程已经完成,下载组态和程序即可。
(3)通信状态测试
打开 CPU 1 项目或者 CPU 2 项目,在网络视图中,选择 CPU,并“转至在线”模式,在“连接”选项卡中可以对 S7 通信连接进行诊断,如图 1-10 所示。

图1-10监控 S7 连接状态
① 选择 CPU ;
② 点击“转至在线”按钮,切换到在线模式;
③“连接”选项卡中选择本地连接,“连接信息”中即可查询到连接的详细信息。
成功建立的 S7 连接,是 PUT/GET 指令数据访问成功的先决条件。连接建立后,就可以通过 “GET”指令获取伙伴 CPU 数据,调用 “PUT”指令发送数据给伙伴 CPU,如图1-11所示。

图1-11 数据传输
相同项目中 S7 通信
本示例 CPU 之间通过双端组态方式创建 S7 连接。CPU 1 为 CPU 1212C ,其 IP 地址为 192.168.0.212;CPU 2 为 CPU 1517-3PN,其 IP 地址为 192.168.0.214 。通信任务与上文“不同项目中 S7 通信”相同,不再累述。
1. S7 双端组态编程步骤
(1)设备组态
使用 TIA 博途软件创建新项目,分别将 CPU 1 和 CPU 2 作为新设备添加到项目中。在设备视图中为 CPU 1 和 CPU 2 的以太网接口添加子网并设置 IP 地址和子网掩码。
本例中需要将 CPU 1 和 CPU 2 设置在同一子网,其中 CPU 1 的 IP 地址为 192.168.0.212, CPU 2 的 IP 地址为 192.168.0.214。CPU 1 和 CPU 2 其他属性设置与上文“不同项目中 S7 通信”设置相同,不再累述。
1)组态 S7 连接
网络视图中,点击“连接”按钮,按钮右侧的下拉选项中选择“S7 连接”,选择 CPU 1 图标,鼠标右键菜单中选择“添加新连接”,相关操作可参考图 1-1 。在弹出“创建新连接”对话框中,选择指定伙伴 CPU (本例为 CPU 2),点击“添加”后,即可创建双端组态的 S7 连接,如图 1-12所示。

图1-12 创建双端组态的 S7 连接
① 选择指定伙伴 CPU;
② 点击“添加”按钮,创建 S7 连接;
注意:
单端组态的 S7 连接,只需要将连接的组态信息下载到 S7 客户端 CPU 即可,服务器端 无需下载。双端组态的 S7 连接,则需要将组态的信息下载到通信双方 CPU 。
(2)CPU 1 和 CPU 2 程序编程
CPU 1 和 CPU 2 程序编程与上文“不同项目中 S7 通信”相同,不再累述。
(3)下载组态和程序
两个 CPU 的组态配置与编程都已经完成,分别下载组态和程序即可。
2. 通信状态测试
在网络视图中,选择任一站点 ,并“转至在线”模式,在“连接”选项卡中可以对 S7 通信连接进行诊断,参考图 1-10 。成功建立的 S7 连接,当 CPU1 使用“PUT”指令发送数据时,CPU2 可接收到数据,监控结果如图1-13所示。

图1-13数据监控
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错



西门子官方商城


{{item.nickName}}