- {{item.name}}
S7-1200G2之间S7通信-S7-PLCSIM
- 0
- 63
S7-1200 G2 CPU 进行 S7 通信需要使用组态的 S7 连接进行数据交换,S7 连接可在单端或双端组态。PLCSIM 支持不同项目与相同项目下的S7通信。
硬件:
CPU 1212C DC/DC/DC,V1.0
CPU 1214C DC/DC/DC,V1.0
软件:
TIA Portal V20 Upd 4
PLC Sim Upd 2
不同项目中 S7 通信
本示例中使用了 2 个 S7-1200 G2 CPU,CPU 之间采用 S7 通信。CPU 1 为 CPU 1212C ,其IP 地址为 192.168.0.212;CPU 2 为 CPU 1214C,其 IP 地址为 192.168.0.214 。通信任务是 CPU 1 作为 S7 通信客户端,调用 PUT/GET 指令读写 CPU 2 的数据,其中 “GET” 指令用于读取 CPU 2 MB100开始的共 100 字节的输入数据,“PUT” 指令用于将 100 字节的数据写入到 CPU 2 QB100开始的100个字节。CPU 2 作为 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)”。
1)添加 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 1214C ,因此伙伴方 TSAP 可设置为 03.00 或 03.01 ,设置如图 1-5 所示。
图1- 5 设置伙伴 TSAP
(2)编程
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) 在主程序 OB 1 中调用 “GET” 指令,读取伙伴 CPU 从MB100 开始 100 个字节数据并保存到”S7Connect”.receiveData,如图 1-7 所示 。

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

图1-8 调用 PUT 指令
注意:
- 使用 PUT/GET 通信时,伙伴 CPU待读写区域不支持优化访问的数据区域。
- PUT/GET 指令中参数“ID”需要与S7连接属性中的“本地ID”(参考图 1-4)一致。
(3)打开PLC SIM 并下载组态和程序
CPU 1 的组态配置与编程已经完成,打开PLC SIM 并下载组态和程序,如图1-9所示。

图1-9 PLC_1 SIM 界面
2.CPU 2 编程组态
单端组态的 S7 连接通信中,S7 通信服务器侧无需组态 S7 连接,也无需调用 PUT/GET 指令,故本例中 CPU 2 只需进行设备组态,而无需在主程序 OB1 中进行相关通信编程。
(1)设备组态
重新打开TIA 博途软件创建新项目,并将 CPU 1214C 作为新设备添加到项目中。在设备视图的巡视窗口中,将 CPU 属性作如下修改:
- “PROFINET 接口”属性中为 CPU “添加新子网”,并设置IP 地址(192.168.0.214)和子网掩码(255.255.255.0)。
- “防护与安全”属性中“连接机制”中激活“允许来自远程对象的 PUT/GET 通信访问”。
(2)打开PLC SIM 并下载组态和程序
打开当前博途的PLC SIM 并下载组态和程序,同一电脑上的两个TIA 博途项目会打开同一个仿真软件,并生成新的PLC SIM如图1-10所示。

图1-10 PLC_2 SIM 界面
3.通信状态测试
打开 CPU 1 项目或者CPU 2 项目,在网络视图中,选择 CPU ,并“转至在线”模式,在“连接”选项卡中可以对 S7 通信连接进行诊断,如图 1-11 所示。

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

图1-12 相同项目下的数据发送与接收
相同项目中S7通信
本示例在同一个 TIA 项目中使用了 2 个 S7-1200 G2 CPU,CPU 之间通过双端组态方式创建 S7 连接。CPU 1 为 CPU 1212C ,其IP 地址为 192.168.0.212;CPU 2 为 CPU 1214C,其 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-13所示。

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



西门子官方商城


{{item.nickName}}