0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实现两个CPU之间的PROFINET IO通信

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-03-08 10:41 次阅读

PN / PN Coupler —— 不在同一 TIA Portal 项目组态- HSP

PROFINET IO 通信不支持跨网段的实时通信,此外两个 PROFINET IO 控制器如果在其中没有智能设备情况下通常也无法直接进行 PROFINET IO 通信。此时,可以使用 PN/PN Coupler 来解决这些问题。

PN/PN Coupler 具有两个 PROFINET 接口,每个接口连接至不同子网。两个子网彼此电气隔离。在两个子网中 PN/PN Coupler 作为两个 IO 设备分别与不同的 IO 控制器通信,两个 IO 设备之间的数据交换就实现了不同 IO 控制器之间的通信。

实验任务

本文档要实现的任务是:S7-1200 和 S7-1500 均作为 PROFINET IO 控制器,并且两个控制器的 IP 地址不在同一网段,实现两个 CPU 之间的 PROFINET IO 通信。S7-1200 输出 10 个字节给 S7-1500;S7-1500 输出 5 个字节给 S7-1200。

具体网络结构及通信角色如图 1 所示,参数分配如表 1 所示:

afca831a-bce1-11ed-bfe3-dac502259ad0.jpg

图 1. 网络结构及通信角色

表1.

硬件 通信角色 IP地址 数据交换
S7-1200 IO 控制器 192.168.0.124 输出 10 个字节数据;输入 5 个字节数据
S7-1500 IO 控制器 192.168.2.155 输入 10 个字节数据;输出 5 个字节数据
PN/PN Coupler X1 接口 S7-1200 的 IO 设备 192.168.0.158 与 S7-1200 交互数据,并转给 PN/PN Coupler X2 接口
PN/PN Coupler X2 接口 S7-1500 的 IO 设备 192.168.2.158 与 S7-1500 交互数据,并转给 PN/PN Coupler X1 接口

要实现该通信,可以有 3 种方法:

1. S7-1200 和 S7-1500 在同一 TIA Portal 项目中:从硬件目录中添加 PN/PN Coupler 组态

2. S7-1200 和 S7-1500 不在同一 TIA Portal 项目中:一方从硬件目录中添加 PN/PN Coupler 组态,导出 GSD 文件给另一方组态

3. S7-1200 和 S7-1500 不在同一 TIA Portal 项目中:双方都使用从官网下载的 PN/PN Coupler 的 GSD 文件组态

本文档介绍第 2 种方法。

实验环境

博途软件:TIA Portal STEP7 Professional V18(导出 GSD 的项目软件版本需要至少 TIA Portal V15 才可以)

硬件如表 2 所示:

表 2.

名称 订货号 固件版本
CPU 1214C DC/DC/DC 6ES7214-1AG40-0XB0 V4.6
CPU 1515-2 PN 6ES7515-2AM01-0AB0 V2.9
PN/PN Coupler 6ES7158-3AD10-0XA0 V4.2

第一个项目组态

1. 新建一个项目,添加 CPU 1214 DC/DC/DC V4.6,名称设置为 IOController1200,如图 2 所示。

afe4665e-bce1-11ed-bfe3-dac502259ad0.jpg

图 2. 添加 S7-1200CPU

2. 在弹出的 S7-1200 安全设置对话框中设置,禁用保护 PLC 机密的 PLC 数据;取消勾选仅支持 PG/PC 和 HMI 的安全通信;将 PLC 访问保护设置为完全访问权限;最终设置结果如图 3 所示。

注意:PLC 安全设置可以根据实际需要进行设置!

b00aa864-bce1-11ed-bfe3-dac502259ad0.jpg

图 3. 安全设置概览

3. S7-1200 以太网地址设置为 192.168.0.124,如图 4 所示。

b028e388-bce1-11ed-bfe3-dac502259ad0.jpg

图 4. 设置 S7-1200 以太网地址

4. 在网络视图 > 硬件目录 > 网络组件 > 网关 > PN/PN Coupler > 6ES7 158-3AD10-0XA0,双击或者拖拽到网络视图中,如图 5 所示。

b04f1486-bce1-11ed-bfe3-dac502259ad0.jpg

图 5. 硬件目录中添加 PN/PN Coupler

5. 在 PN/PN Coupler 的设备视图,选中 X1 接口,在属性 > 常规> 以太网地址属性中设置 IP 地址为 192.168.0.158;取消勾选自动生成 PROFINET 设备名称,设置设备名称为 pnpncpuplerx1,如图 6 所示。

b0709f0c-bce1-11ed-bfe3-dac502259ad0.jpg

图 6. 设置 PN/PN Coupler X1 接口 IP 地址

6. 在网络视图中,点击网络,鼠标选中 PN/PN Coupler X1 接口,点击未分配三个字,在出现的下拉菜单中选择 IO 控制器,选择 IOController1200.PROFINET接口_1 作为 IO 控制器,如图 7 所示。

b090a8ce-bce1-11ed-bfe3-dac502259ad0.jpg

图 7. 为 PN/PN Coupler X1 接口分配 IO 控制器

7. 在 PN/PN Coupler 的设备视图,点击 X1 侧模块,属性 > 常规 > 模块参数 > 转换映射中,即可添加传输区,如图 8 所示。

b0af4bee-bce1-11ed-bfe3-dac502259ad0.jpg

图 8. 添加传输区

从图 8 中,整体看:

可以分为 PN/PN Coupler PROFINET 接口 X1 部分和 PN/PN Coupler PROFINET 接口 X2 部分;PROFINET 接口 X1 的 IO 控制器是 IOController1200 ;由于 X2 部分组态在另外一个项目中,所以此处显示 X2 部分的 IO 控制器是未知,也无具体的 IQ 地址

横向看:

传输区_1 实现的是 S7-1200 输出 10 个字节 QB2 - QB11

传输区_2 实现的是 S7-1200 输入 5 个字节 QB4 - QB9, 由于激活了数据状态,所以多出 1 个字节

8. 添加传输区后,在传输区的下方,点击导出按钮, 勾选导出 X2 (右耦合端),选择 GSD 文件导出的存储路径,点击导出按钮完成 GSD 文件的导出,如图 9 所示。

注意:导出的 GSD 文件用于另外一个项目中对 PN/PN Coupler 的组态

b0c2d236-bce1-11ed-bfe3-dac502259ad0.jpg

图 9. 导出 GSD 文件

9. 将 S7-1200 程序分别做软件和硬件的编译,下载至 CPU 中。

10. 对 PN/PN Coupler 的 X1 接口进行设备名称的分配

网络视图中,鼠标右键选中 X1 侧模块, 弹出的下拉菜单中选择分配设备名称,如图 10 所示。

弹出的“分配 PROFINET 设备名称”对话框中,点击“更新列表”搜索所连接的 IO 设备,如果设备名称“ 状态” 列显示 “未分配设备名称” 或者 “设备名称不同”,点击分配设备名称,即可分配设备名称,如图 11 所示。

b0ef537e-bce1-11ed-bfe3-dac502259ad0.jpg

图10. 选择分配设备名称

b10fc2da-bce1-11ed-bfe3-dac502259ad0.jpg

图 11. 更新列表并分配设备名称

第二个项目组态

1. 创建另外一个新项目,添加 CPU1515-2PN V2.9 ,名称设置为 IOController1500,如图 12 所示。

b130b0f8-bce1-11ed-bfe3-dac502259ad0.jpg

图 12. 添加 S7-1500 CPU

2. 在弹出的 S7-1500 安全设置对话框中设置,禁用保护 PLC 机密的 PLC 数据;取消勾选仅支持 PG/PC 和 HMI 的安全通信;将 PLC 访问保护设置为完全访问权限;最终设置结果如图 13 所示。

注意:PLC 安全设置可以根据实际需要进行设置!

b15745ec-bce1-11ed-bfe3-dac502259ad0.jpg

图 13. S7-1500 安全设置

3. S7-1500 以太网地址设置为 192.168.2.155,如图 14 所示。

b17d1768-bce1-11ed-bfe3-dac502259ad0.jpg

图 14. S7-1500 以太网地址设置

4. 点击菜单栏选项按钮,点击“管理通用站描述文件”,弹出的对话框中点击已安装的 GSD,在源路径中选择刚才导出 GSD 文件存储的正确路径,勾选待安装的 GSD 文件复选框,点击安装按钮进行安装,安装完成后等待更新硬件目录,更新完成后就可以在硬件目录中找到该 GSD 文件了。如图 15 所示。

b19a1f98-bce1-11ed-bfe3-dac502259ad0.jpg

图 15. 导入 GSD 文件

5. 在网络视图中添加 PN/PN Coupler ,查找模块按照右侧路径:硬件目录 > 其他现场设备 > PROFINET IO > Gateway > SIEMENS AG > PN/PN Coupler > PN/PN Coupler.X2 ,如图 16 所示。

b1c3203c-bce1-11ed-bfe3-dac502259ad0.jpg

图 16. 添加 PN/PN Coupler 模块

6. 网络视图中,点击网络,点击 PN/PN Coupler GSD 文件左下角未分配,选择 IOController1500.PROFINET 接口_1 为其 IO 控制器,如图 17 所示。

b1e4a0a4-bce1-11ed-bfe3-dac502259ad0.jpg

图 17. 为 PN/PN Coupler.X2 分配控制器

7. 在 PN/PN Coupler 的设备视图,选中 X2 接口,在属性 > 常规 > 以太网地址属性中设置 IP 地址为 192.168.2.158;取消勾选自动生成 PROFINET 设备名称,设置设备名称为 pnpncpuplerx2,如图 18 所示。

b2007d56-bce1-11ed-bfe3-dac502259ad0.jpg

图 18. 设置 PN/PN Coupler X2 接口 IP 地址

8. 双击 PN/PN Coupler X2 GSD 文件进入其设备视图,在设备视图的设备概览中可以查看到传输区,可以根据需要调整输入输出区的起始地址,如图 19 所示

b22e08de-bce1-11ed-bfe3-dac502259ad0.jpg

图 19. 查看调整传输区 IQ 地址

9. S7-1500 项目硬件和软件分别编译,将程序下载至 CPU 中。

10. 为 PN/PN Coupler.X2 分配设备名称,可以参考 PN/PN Coupler.X1 的方法。

调试

1. 为 PN/PN Coupler 供电

如对两个连接 (PS1 / PS2) 施加电压,则 PN/PN Coupler 自动使用 PS1 的电压源。一个电压源发生故障,则 PN/PN Coupler 自动切换到另一个电压源。

如仅将 PN/PN Coupler 连接到一个电源,则最好将其连接到 PS1。

2. 在 S7-1200 和 S7-1500 分别创建监控表,添加对应变量,S7-1200 输出的 10 个字节数据值分别修改为 1 ~ 10, S7-1500 输出的 5 个字节数值分别是 21 ~ 25, 修改数值后监视对侧接收数据正常,如图 20 所示。

b254e684-bce1-11ed-bfe3-dac502259ad0.jpg

图 20. 监控表监视数据交换





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16073

    浏览量

    176971
  • plc
    plc
    +关注

    关注

    5006

    文章

    13093

    浏览量

    461311
  • HSP
    HSP
    +关注

    关注

    0

    文章

    13

    浏览量

    14562
  • Profinet
    +关注

    关注

    6

    文章

    1031

    浏览量

    23275
  • S7-1500
    +关注

    关注

    3

    文章

    300

    浏览量

    6280

原文标题:PN / PN Coupler —— 不在同一 TIA Portal 项目组态- HSP

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现两个处理器之间通信

    你好,我打算建立通信以在两个处理器之间读写。一方面是ASIC(MCIMX6)上的四核ARM Cortex A9处理器,另一方面是FPGA(ZC7020)。我在FPGA端没有任何PCIe硬端口。因此
    发表于 04-16 09:04

    请问两个zigbee之间的串口通信怎么实现

    我想知道两个zigbee之间可不可以使用串口的方法实现数据通信,我弄了好久都不成功,不知道怎么接线,也不知道程序对不对。还有一问题就是我怎
    发表于 08-25 05:06

    如何使用RS485实现两个MCU之间通信

    RS485具有哪些优劣势?如何使用RS485实现两个MCU之间通信
    发表于 10-18 08:54

    如何使用RS485实现两个MCU之间通信

    如何使用RS485实现两个MCU之间通信
    发表于 10-22 06:48

    两个STM32之间的SPI通信怎么实现

    两个STM32之间的SPI通信怎么实现
    发表于 11-25 06:35

    两个HPM6750之间是否可以通过IO进行并行通信通信案例有吗?

    两个HPM6750之间是否可以通过IO进行并行通信通信案例有吗
    发表于 05-26 08:02

    ch340怎么实现两个单片机之间io通信

    使用ch340,怎么实现两个单片机之间io通信
    发表于 11-03 06:33

    实现PROFINET网络与串口网络之间的数据通信

    基本说明: 实现PROFINET网络与串口网络之间的数据通信,可连接多个具RS232/RS485/RS422接口(RS422接口需要订货时说明)的设备到
    发表于 04-21 15:19 1505次阅读

    STM32 Cubemax(八) ——利用HC-05实现两个单片机之间通信

    STM32 Cubemax(八) ——利用HC-05实现两个单片机之间通信文章目录STM32 Cubemax(八) ——利用HC-05实现
    发表于 11-19 12:06 58次下载
    STM32 Cubemax(八) ——利用HC-05<b class='flag-5'>实现</b><b class='flag-5'>两个</b>单片机<b class='flag-5'>之间</b>的<b class='flag-5'>通信</b>

    和12岁小同志搞创客开发:两个控制器之间如何实现通信

    本篇博客来讲讲如何实现两个控制器之间数据通信,主要包括:有线通信和无线通信种方法。
    发表于 01-14 13:32 4次下载
    和12岁小同志搞创客开发:<b class='flag-5'>两个</b>控制器<b class='flag-5'>之间</b>如何<b class='flag-5'>实现</b><b class='flag-5'>通信</b>?

    PROFINET IO控制器无法直接进行PROFINET IO通信

    PROFINET IO 通信不支持跨网段的实时通信,此外两个 PROFINET
    的头像 发表于 02-20 10:32 3261次阅读

    如何实现触摸屏与多台PLC之间无线Profinet通信

    触摸屏与PLC之间的通讯没任何难度,它们之间的通讯一般是主/从关系。在Profinet协议下,实现触摸屏与多台PLC之间无线
    的头像 发表于 03-22 09:46 2161次阅读
    如何<b class='flag-5'>实现</b>触摸屏与多台PLC<b class='flag-5'>之间</b>无线<b class='flag-5'>Profinet</b><b class='flag-5'>通信</b>?

    S7-200SMART之间进行PROFINET IO通信技术分析

    从 S7-200 SMART V2.5 版本开始,S7-200 SMART 开始支持做 PROFINET IO 通信的智能设备。从而,两个 S7-200 SMART
    发表于 07-23 15:02 3312次阅读
    S7-200SMART<b class='flag-5'>之间</b>进行<b class='flag-5'>PROFINET</b> <b class='flag-5'>IO</b><b class='flag-5'>通信</b>技术分析

    两个单片机之间串口通信的例程

    今天来分享一下两个单片机之间串口通信的例程吧!仿真文件的话,只要添加两个单片机就OK了。那么如果想用手里的单片机来实现的话,不妨接收端用电脑
    的头像 发表于 11-09 10:05 6516次阅读
    <b class='flag-5'>两个</b>单片机<b class='flag-5'>之间</b>串口<b class='flag-5'>通信</b>的例程

    使用PUT和GET指令通过S7连接在两个CPU之间交换数据

    使用 PUT 和 GET 指令通过 S7 连接在两个 CPU 之间交换数据。
    的头像 发表于 12-14 16:53 9904次阅读
    使用PUT和GET指令通过S7连接在<b class='flag-5'>两个</b><b class='flag-5'>CPU</b><b class='flag-5'>之间</b>交换数据