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

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

3天内不再提示

浅析通过CM1243-5实现S7-1200与S7-300之间的S7通信

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-02-06 10:37 次阅读

通过CM1243-5实现S7-1200与S7-300之间的S7通信

使用 STEP7 V12,CM1243-5 的 DP 通信接口可以做 S7 通信的客户端或服务器;S7-1200 仅支持 S7 单边通信;CM1243-5 与 S7-300 之间的 S7 通信仅需在作为客户端的一边进行组态连接和编程,而服务器端只需要准备好通信数据块即可。

以下例子描述了 CM1243-5 与 S7-300 之间的 S7 通信的两种方式:

一、CM1243-5 与 S7-300 CPU 集成 DP 接口的 S7 通信;

二、CM1243-5 与 CP342-5 之间的 S7 通信。

一、CM1243-5 与 S7-300 CPU 集成 DP 口的 S7 通信

硬件和软件需求

硬件:

① 1台 1215C + 1台 CM1243-5
② 1台 CPU315-2DP
③ DP 接头及 DP电缆
④ PC(带以太网卡)
⑤ 以太网电缆,PC adapter 编程电缆

软件:

TIA PORTAL V12 SP1 Update2

所完成的通信任务:

CM1243-5 作为客户端创建 S7 连接,将数据块 DB3 中的10个字节发送到 CPU315-2DP 的数据块 DB1 中;同时,读取 CPU315-2DP 数据块 DB2 中的10个字节存储到 1215C 的数据块 DB4 中。

CM1243-5 作为客户端

1. 使用 STEP7 V12 软件新建一个项目并完成硬件配置

在项目树“设备和网络”>“网络视图”视图下,创建两个设备的 PROFIBUS 连接。用鼠标点中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一条线到 PLC2 上的 CPU315-2DP 通信口上,松开鼠标,连接建立。

2. 组态 S7 连接

打开“网络视图”配置网络,首先点中左上角的“连接”图标,选择“S7 连接”,然后选中 PLC1 上的 CPU,鼠标右键选择“添加新连接”。如图1所示。

29339024-a497-11ed-bfe3-dac502259ad0.jpg

图1. 添加 S7 连接

然后在“创建新连接”窗口中,选择“PLC2”,并在右侧窗口中选择本地接口“CM1243-5,DP 接口”,最后再点击“添加”建立 S7 连接。如图2所示。

2957d5d8-a497-11ed-bfe3-dac502259ad0.jpg

图2. 建立 S7 连接

“S7_连接_1”为建立的连接,选中连接,在属性的“常规”条目中可查看该 S7 连接的相关信息。如图3所示。

297bb87c-a497-11ed-bfe3-dac502259ad0.jpg

图3. S7 连接信息

点击“特殊连接属性”,确认 S7 连接由 PLC1 主动建立连接(即 PLC1 为客户端)。如图4所示。

29a6a230-a497-11ed-bfe3-dac502259ad0.jpg

图4. PLC1 作为客户端

配置完网络连接,编译保存并下载。在线后可查看通信连接状态。如图5所示。

29ca2ade-a497-11ed-bfe3-dac502259ad0.jpg

图5. 通信连接状态

3. 软件编程

分别在 PLC1 中创建发送数据块 DB3 和接收数据块 DB4 ,在 PLC2 中创建接收数据块 DB1 和发送数据块 DB2 ,均定义为10字节的长度,并在 DB 块的“属性”中取消“优化的块访问”,编译并保存。如图6所示。

29edba44-a497-11ed-bfe3-dac502259ad0.jpg

图6. DB 块属性设置

在 PLC1 的 OB1 主程序中,从“指令”>“通信”>“S7 通信”下,调用 GET、PUT 通信指令,编译保存并下载。程序调用如图7所示。

2a11c164-a497-11ed-bfe3-dac502259ad0.jpg

图7. 程序调用

CALL “PUT” , %DB1 //调用 PUT,使用背景DB块:DB1
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#100 //连接号,要与连接配置中一致,创建连接时的本地连接号
DONE :=%M2.0 // 为1时,发送完成
ERROR :=%M2.1 // 为1时,有故障发生
STATUS :=%MW4 // 状态代码
ADDR_1 :=P#DB1.DBX0.0 BYTE 10 // 发送到通信伙伴数据区的地址
SD_1 :=P#DB3.DBX0.0 BYTE 10 // 本地发送数据区
CALL “GET” , %DB2 //调用 GET,使用背景DB块:DB2
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#100 //连接号,要与连接配置中一致,创建连接时的本地连接号
NDR :=%M2.2 //为1时,接收到新数据
ERROR :=%M2.3 //为1时,有故障发生
STATUS :=%MW6 //状态代码
ADDR_1 :=P#DB2.DBX0.0 BYTE 10 //从通信伙伴数据区读取数据的地址
RD_1 :=P#DB4.DBX0.0 BYTE 10 //本地接收数据地址

4. 监控结果

通过在 S7-1200 侧编程进行 S7 通信,实现两个 CPU 之间的数据交换,监控结果如图8所示。

2a4164a0-a497-11ed-bfe3-dac502259ad0.jpg

图8. 监控结果

二、CM1243-5 与 CP342-5 的 S7 通信

硬件和软件需求

硬件:

① 1台 1215C + 1台 CM1243-5
② 1台 CPU314C + 1台 CP342-5
③ DP 接头及 DP电缆
④ PC(带以太网卡)
⑤ 以太网电缆,PC adapter 编程电缆

软件:

① TIA PORTAL V12 SP1 Update2

所完成的通信任务:

① CM1243-5 作为客户端创建 S7 连接,将数据块 DB3 中的10个字节发送到 CPU314C 的数据块 DB1 中;同时,读取 CPU314C 数据块 DB2 中的10个字节存储到 1215C 的数据块 DB4 中。
② CP342-5 作为客户端创建 S7 连接,将数据块 DB3 中的10个字节发送到 1215C 的数据块 DB1 中;同时,读取 1215C 数据块 DB2 中的10个字节存储到 CPU314C 的数据块 DB4 中。

① CM1243-5 作为客户端

1. 使用 STEP7 V12 软件新建一个项目并完成硬件配置

在项目树“设备和网络”>“网络视图”视图下,创建两个设备的 PROFIBUS 连接。用鼠标点中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一条线到 PLC2 上的 CP342-5 通信口上,松开鼠标,连接建立。

2. 组态 S7 连接

打开“网络视图”配置网络,首先点中左上角的“连接”图标,选择“S7 连接”,然后选中 PLC1 上的 CPU,鼠标右键选择“添加新连接”。如图9所示。

2a774c3c-a497-11ed-bfe3-dac502259ad0.jpg

图9. 添加 S7 连接

然后在“创建新连接”窗口中,选择“PLC2”,并在右侧窗口中选择本地接口“CM1243-5,DP 接口”,最后再点击“添加”建立 S7 连接。如图10所示。

2aad226c-a497-11ed-bfe3-dac502259ad0.jpg

图10. 建立 S7 连接

“S7_连接_1”为建立的连接,选中连接,在属性的“常规”条目中可查看该 S7 连接的相关信息。如图11所示。

2acbc9b0-a497-11ed-bfe3-dac502259ad0.jpg

图11. S7 连接信息

点击“特殊连接属性”,确认 S7 连接由 PLC1 主动建立连接(即 PLC1 为客户端)。如图12所示。

2aff43da-a497-11ed-bfe3-dac502259ad0.jpg

图12. PLC1 作为客户端

配置完网络连接,编译保存并下载。在线后可查看通信连接状态。如图13所示。

2bcefa76-a497-11ed-bfe3-dac502259ad0.jpg

图13. 通信连接状态

3. 软件编程

分别在 PLC1 中创建发送数据块 DB3 和接收数据块 DB4 ,在 PLC2 中创建接收数据块 DB1 和发送数据块 DB2 ,均定义为10字节的长度,并在 DB 块的“属性”中取消“优化的块访问”,编译并保存。如图14所示。

2be2805a-a497-11ed-bfe3-dac502259ad0.jpg

图14. DB 块属性设置

在 PLC1 的 OB1 主程序中,从“指令”>“通信”>“S7 通信”下,调用 GET、PUT 通信指令,编译保存并下载。程序调用如图15所示。

2c0635ae-a497-11ed-bfe3-dac502259ad0.jpg

图15. 程序调用

CALL “PUT” , %DB1 //调用 PUT,使用背景DB块:DB1
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#100 //连接号,要与连接配置中一致,创建连接时的本地连接号
DONE :=%M2.0 // 为1时,发送完成
ERROR :=%M2.1 // 为1时,有故障发生
STATUS :=%MW4 // 状态代码
ADDR_1 :=P#DB1.DBX0.0 BYTE 10 // 发送到通信伙伴数据区的地址
SD_1 :=P#DB3.DBX0.0 BYTE 10 // 本地发送数据区
CALL “GET” , %DB2 //调用 GET,使用背景DB块:DB2
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#100 //连接号,要与连接配置中一致,创建连接时的本地连接号
NDR :=%M2.2 //为1时,接收到新数据
ERROR :=%M2.3 //为1时,有故障发生
STATUS :=%MW6 //状态代码
ADDR_1 :=P#DB2.DBX0.0 BYTE 10 //从通信伙伴数据区读取数据的地址
RD_1 :=P#DB4.DBX0.0 BYTE 10 //本地接收数据地址

4. 监控结果

通过在 S7-1200 侧编程进行 S7 通信,实现两个 CPU 之间的数据交换,监控结果如图16所示。

2c297212-a497-11ed-bfe3-dac502259ad0.jpg

图16. 监控结果

② CP342-5 作为客户端

1. 使用 STEP7 V12 软件新建一个项目并完成硬件配置

在项目树“设备和网络”>“网络视图”视图下,创建两个设备的 PROFIBUS 连接。用鼠标点中 PLC1 上的 CM1243-5 DP 通信口的粉色小方框,然后拖拽出一条线到 PLC2 上的 CP342-5 通信口上,松开鼠标,连接建立。

2. 组态 S7 连接

打开“网络视图”配置网络,首先点中左上角的“连接”图标,选择“S7 连接”,然后选中 PLC2 上的 CPU,鼠标右键选择“添加新连接”。如图17所示。

2c68db8c-a497-11ed-bfe3-dac502259ad0.jpg

图17. 添加 S7 连接

然后在“创建新连接”窗口中,选择“PLC1”,并在右侧窗口中选择本地接口“CP342-5_1”,最后再点击“添加”建立 S7 连接。如图18所示。

2cf91c7e-a497-11ed-bfe3-dac502259ad0.jpg

图18. 建立 S7 连接

“S7_连接_1”为建立的连接,选中连接,在属性的“常规”条目中可查看该 S7 连接的相关信息。如图19所示。

2d206036-a497-11ed-bfe3-dac502259ad0.jpg

图19. S7 连接信息

点击“特殊连接属性”,确认 S7 连接由 PLC2 主动建立连接(即 PLC2 为客户端)。如图20所示。

2d4847f4-a497-11ed-bfe3-dac502259ad0.jpg

图20. PLC2 作为客户端

配置完网络连接,编译保存并下载。在线后可查看通信连接状态。如图21所示。

2d57ef24-a497-11ed-bfe3-dac502259ad0.jpg

图21. 通信连接状态

3. 软件编程

分别在 PLC1 中创建发送数据块 DB1 和接收数据块 DB2 ,在 PLC2 中创建接收数据块 DB3 和发送数据块 DB4 ,均定义为10字节的长度,并在 DB 块的“属性”中取消“优化的块访问”,编译并保存。如图22所示。

2d81de2e-a497-11ed-bfe3-dac502259ad0.jpg

图22. DB 块属性设置

在 PLC2 的 OB1 主程序中,从“指令”>“通信”>“S7 通信”>“其它”下,调用 GET_S、PUT_S 通信指令,编译保存并下载。程序调用如图23所示。

2da50a34-a497-11ed-bfe3-dac502259ad0.jpg

图23. 程序调用

CALL “PUT” , %DB1 //调用 PUT,使用背景DB块:DB1
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#1 //连接号,要与连接配置中一致,创建连接时的本地连接号
DONE :=%M2.0 // 为1时,发送完成
ERROR :=%M2.1 // 为1时,有故障发生
STATUS :=%MW4 // 状态代码
ADDR_1 :=P#DB1.DBX0.0 BYTE 10 // 发送到通信伙伴数据区的地址
SD_1 :=P#DB3.DBX0.0 BYTE 10 // 本地发送数据区
CALL “GET” , %DB2 //调用 GET,使用背景DB块:DB2
REQ :=%M0.5 //系统时钟 1秒脉冲
ID :=W#16#1 //连接号,要与连接配置中一致,创建连接时的本地连接号
NDR :=%M2.2 //为1时,接收到新数据
ERROR :=%M2.3 //为1时,有故障发生
STATUS :=%MW6 //状态代码
ADDR_1 :=P#DB2.DBX0.0 BYTE 10 //从通信伙伴数据区读取数据的地址
RD_1 :=P#DB4.DBX0.0 BYTE 10 //本地接收数据地址

4. 监控结果

通过在 314C 侧编程进行 S7 通信,实现两个 CPU 之间的数据交换,监控结果如图24所示。

2dd1c74a-a497-11ed-bfe3-dac502259ad0.jpg

图24. 监控结果






审核编辑:刘清

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

    关注

    40

    文章

    5421

    浏览量

    171661
  • plc
    plc
    +关注

    关注

    5011

    文章

    13286

    浏览量

    463229
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10859

    浏览量

    211692
  • S7-300
    +关注

    关注

    8

    文章

    225

    浏览量

    34297
  • S7-1200
    +关注

    关注

    11

    文章

    331

    浏览量

    17967

原文标题:通过CM1243-5实现S7-1200与S7-300之间的S7通信

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

收藏 人收藏

    评论

    相关推荐

    S7-1200S7-1200进行S7通信的详细资料说明

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持
    的头像 发表于 08-17 10:51 2.9w次阅读
    <b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>进行<b class='flag-5'>S7</b><b class='flag-5'>通信</b>的详细资料说明

    S7-1200S7-300S7-400以太网通信数据交换的教程说明

    S7-1200S7-300S7-400以太网通信数据交换的教程说明
    发表于 12-04 08:00 1次下载
    <b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300</b>和<b class='flag-5'>S7</b>-400以太网<b class='flag-5'>通信</b>数据交换的教程说明

    S7-300通过以太网模块和S7-1200数据交换案例

    的以太网口通过交换机连接,MPI-ETH-YC01Plus 通过 NetDevice 工具配置交换命令,实现实时高效的 S7-300S7-12
    发表于 05-30 09:36 2589次阅读
    <b class='flag-5'>S7-300</b><b class='flag-5'>通过</b>以太网模块和<b class='flag-5'>S7-1200</b>数据交换案例

    S7-1200S7-300 PN口之间的以太网通信方法

    S7-1200S7-300 PN 口之间的以太网通信可以通过 UDP 协议来实现,使用的
    的头像 发表于 04-11 09:44 7063次阅读

    S7-1200S7-300 PN/S7-400 PN UDP STEP7通信

    S7-1200S7-300 PN 口之间的以太网通信可以通过 UDP 协议来实现,使用的
    的头像 发表于 04-11 10:15 4565次阅读

    S7-1200S7-300集成DP口的主从通信1200做主站,300做从站)

    使用 S7-1200S7-300 的集成 DP 接口进行主从通信,这里是将 S7-1200 做为主站,将 S7-300 做为从站,即:
    的头像 发表于 02-06 11:16 4965次阅读

    S7-1200S7-300 CP342-5的DP口的主从通信

    使用 S7-1200S7-300 用 CP342-5 进行主从通信,这里S7-1200CM1
    的头像 发表于 02-13 09:32 1630次阅读

    S7-1200 CPU与S7-300 CP STEP7 UDP通信

    S7-1200S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的
    的头像 发表于 04-08 10:48 2043次阅读

    S7-1200 CPU与S7-300 CP TIA UDP通信

    S7-1200S7-300 CP 之间的以太网通信可以通过 UDP 协议来实现,使用的
    的头像 发表于 04-08 10:49 2402次阅读

    Python Snap7实现S7-1200 PLC通信控制

    Snap7 是一个基于以太网与S7系列的西门子PLC通讯的开源库,支持包括S7系列的S7-200、S7-200 Smart、
    发表于 04-17 14:19 1次下载
    Python Snap<b class='flag-5'>7</b><b class='flag-5'>实现</b><b class='flag-5'>S7-1200</b> PLC<b class='flag-5'>通信</b>控制

    S7-1200 CPU与S7-200 SMART S7通信指南

    S7-1200 CPU 固件版本 V2.0 及其以上,本体集成的 PROFINET 通信接口可以做 S7 通信客户端。S7-1200 仅支持
    的头像 发表于 04-19 15:14 3140次阅读

    S7-1200S7-300的选型区别

    在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和多三个通信模块。以S7-300 CPU313C和S7
    的头像 发表于 05-04 15:18 1703次阅读
    <b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300</b>的选型区别

    一文解析S7-1200S7-1500 S7通信

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持
    发表于 05-15 17:13 6029次阅读
    一文解析<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7</b>-1500 <b class='flag-5'>S7</b><b class='flag-5'>通信</b>

    S7-1200下载项目程序步骤详解

    S7-1200的CPU本体上集成了PROFINET通信口,通过这个通信口可以实现CPU与编程设备的通信
    发表于 11-15 15:45 4481次阅读
    <b class='flag-5'>S7-1200</b>下载项目程序步骤详解

    西门子S7-1200S7-300PLC之间的区别有哪些?

    S7-1200作为新推出的紧凑型控制器,其产品定位在原有的SIMATIC S7-200和S7-300之间,它与S7-300的区别主要体现在硬
    的头像 发表于 01-10 10:54 1066次阅读
    西门子<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7-300</b>PLC<b class='flag-5'>之间</b>的区别有哪些?