湖南 西门子 6ES7223-1PL32-0XB0 销售中心
S7-1200 CPU 通过ETHERNET与S7-200 CPU 通信
S7-1200 CPU 与 S7-200 CPU 之间的以太网通信只能通过 S7 通信来实现,因为 S7-200 的以太网模块只支持S7 通信。而在 STEP7 v11中, S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端。当S7-200作为客户端,S7-1200作为服务器,见“S7-1200 CPU 通过ETHERNET与S7-200 CPU 通信”;当S7-200作为服务器,S7-1200作为客户端,由于S7-1200 仅支持 S7 单边通信,需在客户端单边组态连接和编程,而作为服务器端的S7-200只需设置为服务器准备好通信的数据就行。
硬件和软件需求及所完成的通信任务
硬件:
① S7-1200 CPU 硬件版本V2.0或更高
② S7-200 CPU + CP243-1
③ PC (带以太网卡)
④ PC/PPI 电缆
⑤ TP以太网电缆
软件:
① STEP7 V11 SP2
② STEP 7 Micro/WIN V4.0 SP9
所完成的通信任务:
① S7-1200 将通信数据区 DB1 中的212 个字节发送到 S7-200 的VB 数据区。
② S7-1200 读取 S7–200中的VB数据区存储到S7-1200 的数据区DB2 。
S7-200 Server 端的组态
1. 打开 STEP 7 Micro/WIN 软件,创建一个新项目,在“PLC”>“TYPE”选择所使用 CPU 的型号,如图1. 所示。
图1. 选择S7-200 CPU 类型
2. 选择“工具”>“以太网向导” 进入 CP243-1 的向导配置,如图2. 所示。
图2. 使用以太网向导
3. 选择CP243-1 模板的位置。
CP243-1 紧邻 CPU 安装,所以模板位置为0 ,也可以通过“读取模块”读出模板位置,如图3. 所示。
图3. 选择模板位置
4. 设置 CP243-1 模板的 IP 地址
IP 地址:192. 168. 70. 101 ,子网掩码:255. 255. 255. 0,如图4.所示。
图4. 设置网络地址
5. 设置模块所占用输出地址字节和连接数,如图5. 所示。
图5. 设置占用输出地址及网络连接数
6. 将CP243-1 定义为 Server 端,如图6. 所示。
图 6. 定义为 Server 端
注意:本例S7-200中安装的CP243-1紧邻CPU,位置为0,故TSAP地址为10.00;若CP243-1在位置为1,则TSAP地址为10.01。
7. 选择CRC校验,如图7. 所示。
图7. 选择CRC 较验
8. 为配置分配存储区
根据以态网的配置,需要一个V存储区,用户可以指定一个未用过的V存储区的起始地址,也可以点击“建议地址”按钮使用建议地址。如图8. 所示。
图8. 为配置分配存储区
9. 生成以太网用户子程序。如图9. 所示。
图9. 生成子程序
10. 调用向导中生成的子程序,并将程序下载到CPU中。如图10. 所示。
图10. 调用子程序
S7-1200 Client 端的配置编程
1. 使用 STEP7 V11软件新建一个项目并完成硬件配置,网络组态
1.1 在“项目树”>“设备组态”>“网络视图”下,按如下图片中1~6的步骤建立S7连接,如图11. 所示。
图11. 建立S7连接
1.2 按如下图片中1~3的步骤填写连接参数,如图12. 所示。
图12. 定义连接对方IP地址
1.3 在“地址详细信息”中设置通信伙伴的TSAP地址,如图13. 所示。
图13. 定义通信双方TSAP号
注意:通讯伙伴的TSAP地址设定必须与CP243-1的组态一致,如图6所示。
2. 软件编程
2.1 创建发送数据块DB1(接收区数据块DB2类似),定义为212个字节的数组,如图14.和15. 所示。
图14. 创建发送数据块DB1
图15. 定义212个字节的数组
2.2 在OB1中,从“指令”-->“S7 通信”下,调用Get、Put通信指令,程序见图16。
图16. 程序调用功能
CALL “PUT” | , %DB3 | //调用 PUT,使用背景DB块:DB3 |
REQ | :=%M0.7 | //系统时钟 2秒脉冲 |
ID | :=W#16#0100 | //连接号,要与连接配置中一致,创建连接时的连接号 |
DONE | :=%M2.0 | // 为1时,发送完成 |
ERROR | :=%M2.1 | // 为1时,有故障发生 |
STATUS | :=%MW4 | // 状态代码 |
ADDR_1 | :=P#DB1.DBX1000.0 BYTE 212 | // 发送到通信伙伴数据区的地址 |
SD_1 | :=P#DB1.DBX0.0 BYTE 212 | // 本地发送数据区 |
CALL “GET” | , %DB4 | //调用 GET,使用背景DB块:DB4 |
REQ | :=%M0.7 | //系统时钟 2秒脉冲 |
ID | :=W#16#0100 | //连接号,要与连接配置中一致,创建连接时的连接号 |
NDR | :=%M2.2 | //为1时,接收到新数据 |
ERROR | :=%M2.3 | //为1时,有故障发生 |
STATUS | :=%MW6 | //状态代码 |
ADDR_1 | :=P#DB1.DBX2000.0 BYTE 212 | //从通信伙伴数据区读取数据的地址 |
RD_1 | :=P#DB2.DBX0.0 BYTE 212 | //本地接收数据地址 |
3. 监控结果
通过在S7-1200侧编程进行S7通信,实现两个CPU之间的数据交换,监控结果如图17。
图17. S71200和S7200监控数据
注意:S7-200中V区对应于DB1,即在PUT指令中使用的通信伙伴数据区ADDR_1=P#DB1.DBX1000.0 BYTE 212在S7-200中对于为VB1000~VB1211。
如何打开项目归档文件
参考:如何打开归档项目文件
S7-1200 与 S7-300 CP343-1 S7 通信例程
本文为S7-1200 与 S7-300 CP343之间 S7 通信的几种可能情况分别提供了例程:
1. 同一项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 客户端,S7-300 作为服务器;
2. 同一项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 服务器,S7-300 作为客户端;
3. 不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 客户端,S7-300 作为服务器,双方 CPU 都采用 TIA V14 SP1编程组态;
4. 不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 服务器,S7-300 作为客户端,双方 CPU 都采用 TIA V14 SP1编程组态;
5. 不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 客户端,S7-300 作为服务器,S7-1200 使用STEP7 V14 SP1编程组态,S7-300使用 STEP 7 V5.6 编程组态;
6. 不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信,S7-1200 作为 S7 服务器,S7-300 作为客户端,S7-1200 使用STEP7 V14 SP1编程组态,S7-300使用 STEP 7 V5.6 编程组态。
注:例程中为标准版的 CP343-1,如果为CP343-1 lean,则S7-300只能作为服务器。
1.同一项目中S7-1200 与 S7-300 CP343-1 之间 S7 通信(S7-1200 作为 S7 客户端,S7-300 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.实现功能:
用于演示同一项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300 作为 S7 通信的服务器。
① S7-1200 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-300 CPU的DB11 块中。
② S7-1200 CPU将 S7-300 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
1_Same_Projects_S7-1200_As_Client.zap14
2.同一项目中S7-1200 与 S7-300 CP343-1之间 S7 通信(S7-1200 作为 S7 服务器,S7-300 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.实现功能:
用于演示同一项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300 作为 S7 通信的客户端。
① S7-300 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-1200 CPU的DB11 块中。
② S7-300 CPU将 S7-1200 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
2_Same_Projects_S7-300_As_Client.zap14
3.不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信(S7-1200 作为 S7 客户端,S7-300 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.实现功能:
用于演示不同项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300 作为 S7 通信的服务器。
① S7-1200 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-300 CPU的DB11 块中。
② S7-1200 CPU将 S7-300 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
S7-1200 项目:3_Different_Projects_S7-1200_As_Client.zap14
S7-300项目:3_Different_Projects_S7-300_As_Server.zap14
4.不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信(S7-1200 作为 S7 服务器,S7-300 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ STEP7 V14 SP1
2.实现功能:
用于演示不同项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300 作为 S7 通信的客户端。
① S7-300 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-1200 CPU的DB11 块中。
② S7-300 CPU将 S7-1200 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
S7-1200 项目:4_Different_Projects_S7-1200_As_Server.zap14
S7-300项目:4_Different_Projects_S7-300_As_Client.zap14
5.不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信(S7-1200 作为 S7 客户端,S7-300 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1编程组态;S7-300 V3.3 使用 STEP 7 V5.6 编程组态。
2.实现功能:
用于演示不同项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300 作为 S7 通信的服务器。
① S7-1200 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-300 CPU的DB11 块中。
② S7-1200 CPU将 S7-300 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
S7-1200 项目:5_Different_Projects_S7-1200_As_Client.zap14
S7-300项目:5_Different_Projects_S7-300_As_Server.zip
6.不同项目中S7-1200 与 S7-300 CP343-1之间 S7 通信(S7-1200 作为 S7 服务器,S7-300 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300 V3.3 ; CP343-1 V3.0
③ S7-1200 V4.2 使用STEP7 V14 SP1编程组态;S7-300 V3.3 使用 STEP 7 V5.6 编程组态。
2.实现功能:
用于演示不同项目中S7-1200 与 S7-300 CP343-1之间的以太网通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300 作为 S7 通信的客户端。
① S7-300 CPU将 本地 DB10块中的 10 个字节的数据发送到 S7-1200 CPU的DB11 块中。
② S7-300 CPU将 S7-1200 CPU的 DB10块中 10 个字节的数据读取到 本地DB11 块中。
S7-1200 项目:6_Different_Projects_S7-1200_As_Server.zap14
S7-300项目:6_Different_Projects_S7-300_As_Client.zip
免责声明
本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
如何打开项目归档文件
参考:如何打开归档项目文件
S7-1200 与 S7-300 PN S7 通信例程
本文为S7-1200 与 S7-300 PN 之间 S7 通信的几种可能情况分别提供了例程:
1. 同一项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器;
2. 同一项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端;
3. 不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器,双方 CPU 都采用 TIA V14 SP1 编程组态;
4. 不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端,双方 CPU 都采用 TIA V14 SP1 编程组态;
5. 不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器,S7-1200 使用STEP7 V14 SP1 编程组态,S7-300PN 使用 STEP 7 V5.6 编程组态;
6. 不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信,S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端,S7-1200 使用STEP7 V14 SP1 编程组态,S7-300PN 使用 STEP 7 V5.6 编程组态。
1.同一项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.实现功能:
例程用于演示同一项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300PN 作为 S7 通信的服务器。
① S7-1200 CPU调用 PUT 指令将本地数据区 DB10 块中的 10 个字节的数据传送到 S7-300 CPU的数据区 DB10 块中。
② S7-1200 CPU调用 GET 指令读取S7-300 CPU的数据区 DB11 块中10 个字节的数据存储到本地数据区 DB 11 块中。
S7 通信服务器设置:
S7-300PN 作为 S7 通信的服务器无需编写 S7 通信程序。
S7-1200_S7_Communication_With_S7-300PN_S7-1200_As_Client.zap14
2.同一项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.实现功能:
例程用于演示同一项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300PN 作为 S7 通信的客户端。
① S7-300PN CPU调用 PUT 指令将本地数据区 DB11 块中的 10 个字节的数据传送到 S7-1200 CPU的数据区 DB11 块中。
② S7-300PN CPU调用 GET 指令读取S7-1200 CPU的数据区 DB10 块中10 个字节的数据存储到本地数据区 DB 10 块中。
S7 通信服务器设置:
S7-1200 作为 S7 通信的服务器无需编写 S7 通信程序,但是需要在 CPU 属性"防护与安全 > 连接机制"中激活"允许来自远程对象的 PUT/GET 通信访问"。
S7-1200_S7_Communication_With_S7-300PN_S7-1200_As_Server.zap14
3.不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.实现功能:
例程用于演示不同项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300PN 作为 S7 通信的服务器。
① S7-1200 CPU调用 PUT 指令将本地数据区 DB10 块中的 10 个字节的数据传送到 S7-300 CPU的数据区 DB10 块中。
② S7-1200 CPU调用 GET 指令读取S7-300 CPU的数据区 DB11 块中10 个字节的数据存储到本地数据区 DB 11 块中。
S7 通信服务器设置:
S7-300PN 作为 S7 通信的服务器无需编写 S7 通信程序。
注意:
S7-1200 项目中创建 S7 连接时,需要在网络视图中为"S7_连接"的属性"常规 > 地址详细信息"中将伙伴 CPU 的 TSAP 设置为 03.02 。
S7-1200 项目:Different_Projects_S7-1200_As_Client.zap14
S7-300PN项目:Different_Projects_S7-300_As_Server.zap14
4.不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ STEP7 V14 SP1
2.实现功能:
例程用于演示不同项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300PN 作为 S7 通信的客户端。
① S7-300PN CPU调用 PUT 指令将本地数据区 DB11 块中的 10 个字节的数据传送到 S7-1200 CPU的数据区 DB11 块中。
② S7-300PN CPU调用 GET 指令读取S7-1200 CPU的数据区 DB10 块中10 个字节的数据存储到本地数据区 DB 10 块中。
S7 通信服务器设置:
S7-1200 作为 S7 通信的服务器无需编写 S7 通信程序,但是需要在 CPU 属性"防护与安全 > 连接机制"中激活"允许来自远程对象的 PUT/GET 通信访问"。
S7-1200 项目:Different_Projects_S7-1200_As_Server.zap14
S7-300PN项目:Different_Projects_S7-300_As_Client.zap14
5.不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信客户端,S7-300 PN 作为服务器)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ S7-1200 V4.2 使用STEP7 V14 SP1编程组态;S7-300PN V3.2 使用 STEP 7 V5.6 编程组态。
2.实现功能:
例程用于演示不同项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的客户端,S7-300PN 作为 S7 通信的服务器。
① S7-1200 CPU调用 PUT 指令将本地数据区 DB10 块中的 10 个字节的数据传送到 S7-300 CPU的数据区 DB10 块中。
② S7-1200 CPU调用 GET 指令读取S7-300 CPU的数据区 DB11 块中10 个字节的数据存储到本地数据区 DB 11 块中。
S7 通信服务器设置:
S7-300PN 作为 S7 通信的服务器无需编写 S7 通信程序。
注意:
S7-1200 项目中创建 S7 连接时,需要在网络视图中为"S7_连接"的属性"常规 > 地址详细信息"中将伙伴 CPU 的 TSAP 设置为 03.02 。
S7-1200 项目:S7-1200_As_Client.zap14
S7-300PN项目:S7-300_As_Server.zip
6.不同项目中S7-1200 与 S7-300 PN 口之间 S7 通信(S7-1200 作为 S7 通信服务器,S7-300 PN 作为客户端)
1.使用环境:
① S7-1200 V4.2
② S7-300PN V3.2
③ S7-1200 V4.2 使用STEP7 V14 SP1编程组态;S7-300PN V3.2 使用 STEP 7 V5.6 编程组态。
2.实现功能:
例程用于演示不同项目中S7-1200 与 S7-300 PN 口之间的S7通信,项目中 S7-1200 CPU 作为 S7 通信的服务器,S7-300PN 作为 S7 通信的客户端。
① S7-300PN CPU调用 PUT 指令将本地数据区 DB11 块中的 10 个字节的数据传送到 S7-1200 CPU的数据区 DB11 块中。
② S7-300PN CPU调用 GET 指令读取S7-1200 CPU的数据区 DB10 块中10 个字节的数据存储到本地数据区 DB 10 块中。
S7 通信服务器设置:
S7-1200 作为 S7 通信的服务器无需编写 S7 通信程序,但是需要在 CPU 属性"防护与安全 > 连接机制"中激活"允许来自远程对象的 PUT/GET 通信访问"。
S7-1200 项目:S7-1200_As_Server.zap14
S7-300PN项目:S7-300_As_Client.zip
免责声明
本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
如何打开项目归档文件
参考:如何打开归档项目文件
S7-1200 与 S7-1200 S7 通信例程
本文为 S7-1200 与 S7-1200 进行 S7 通信的两种可能情况分别提供了例程:
1. S7-1200 与 S7-1200 在同一项目下进行 S7 通信;
2. S7-1200 与 S7-1200 在不同项目下进行 S7 通信;
1.S7-1200 与 S7-1200 S7 通信 同一项目( 一个 S7-1200 为客户端,一个 S7-1200 为服务器)
1. 使用环境:
(1)S7-1215C V4.2与S7-1217C V4.2
(2)TIA 博途V14SP1组态
2. 实现功能:
S7-1215C作为客户端,S7-1217C作为服务器,S7-1215C读取S7-1217C的IB100~IB199,写入S7-1217C的QB100~QB199
S7_PUT_GET_Two_Side.zap14
2.S7-1200 与 S7-1200 S7 通信 不同项目( 一个 S7-1200 为客户端,一个 S7-1200 为服务器)
1. 使用环境:
(1)S7-1215C V4.2与S7-1217C V4.2
(2)TIA 博途V14SP1组态
2. 实现功能:
S7-1215C作为客户端,S7-1217C作为服务器,S7-1215C读取S7-1217C的IB100~IB199,写入S7-1217C的QB100~QB199
客户端程序:
S7_PUT_GET_Client.zap14
服务器程序:
S7_PUT_GET_Server.zap14
免责声明
本例程仅供参考,程序中的CPU版本、类型可能与用户实际使用不同,用户可能需要先对例子程序做修改和调整,才能将其用于测试。本例程的作者和拥有者对于该例程的功能性和兼容性不负任何责任,使用该例程的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。
湖南 西门子 6ES7223-1PL32-0XB0