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

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

3天内不再提示

S7-1200与S7-1200/S7-1500不同项目下UDP通信

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2023-01-10 09:19 次阅读

S7-1200 与 S7-1200/S7-1500 不同项目下 UDP 通信

S7-1200 与 S7-1200 之间的以太网通信可以通过 UDP 协议来实现。本列中使用TSEND_C,TRCV_C指令建立双方的UDP通讯。TSEND_C,TRCV_C指令在两台PLC间必须成对存在。

此外S7-1200 与 S7-1500 在不同项目下UDP通信也可以参考本文档。

一、硬件及软件环境

硬件:

① 两台 S7-1200 CPU V4.4
② PC(带以太网卡)
③ TP电缆(以太网电缆)

软件:
STEP7 V16

二、PLC_1 CPU配置

1. 通讯关系

d6e22032-9033-11ed-bfe3-dac502259ad0.png

图1. 连接关系

2. 组态CPU的硬件配置

1. 打开 STEP7 v16 软件并新建项目

在 STEP7 v16的 “Portal 视图” 中创建一个新项目。

2. 添加硬件并命名PLC

在“项目树” 下双击 “添加新设备”,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为PLC_1。

d6ff3640-9033-11ed-bfe3-dac502259ad0.png

图2. 添加CPU

3. 组态系统时钟

在CPU 属性中定义的时钟位, 在 “项目树” > “PLC_1” > “设备组态” 中,选中 CPU ,然后在下面的属性窗口中,“属性” > “常规”>“系统和时钟存储器” 下,勾选“启用系统存储器字节”及“启用时钟存储器字节”。

d71d43c4-9033-11ed-bfe3-dac502259ad0.png

图3. 系统位与时钟位

4. 组态PROFINET通讯接口

在CPU的属性窗口中,“属性” > “常规”>“PROFINET接口[X1]”>“以太网地址”下,点击添加新子网,分配PLC_1 CPU IP地址:192.168.0.2,子网掩码:255.255.255.0。

d73e4600-9033-11ed-bfe3-dac502259ad0.png

图4. 组态PROFINET接口

5. 编译CPU的硬件组态并下载

在设备视图下,“编辑”菜单 > “编译”。

在设备视图下,“在线”菜单 > “下载到设备”。

3. 建立通讯用DB

在项目树下添加新块,分别命名为PLC1_Rcv,PLC1_Send。

在 DB 块中建立用于接收及发的数据数组(本例中建立100个byte)。

建立完成 DB 后,右键点击 DB 块,在打开的快捷菜单中打开 DB 的属性,去除 DB 的“优化的块访问属性”,见图6。

d75adb6c-9033-11ed-bfe3-dac502259ad0.png

图5. 建立通讯用DB块

d772ff30-9033-11ed-bfe3-dac502259ad0.png

图6. 去除DB块的优化属性

4. 配置 TSEND_C 指令

从指令表(图7)加入指令块 TSEND_C 到主程序中。

d78424b8-9033-11ed-bfe3-dac502259ad0.png

图7. 加入 TSEND_C功能块

点击指令块上的开始组态按钮,打开“连接参数”组态窗口。

d7a07a8c-9033-11ed-bfe3-dac502259ad0.png

图8. 组态连接参数

图8中的参数

端点:连接伙伴未在同一项目中,此处选择未指定。

连接类型:UDP,此处使用UDP通讯。

连接ID:不能和CPU中的其它通讯ID冲突 。

连接数据:此处新建连接。

端口:本例中双边通讯端口定为2000。

配置TSEND_C指令管脚

d7bf13ac-9033-11ed-bfe3-dac502259ad0.png

图9. TSEND_C功能块

参数说明:

输入接口参数:

REQ:此处使用时钟脉冲信号,上升沿执行发送作业。

LEN:发送数据长度,此值必须小于或者等于DATA中指定的发送区长度,单位:字节(此参数默认为隐藏参数,可以点击功能块底部箭头显示)。示例中发送10个Byte到接收区。

DATA:指向发送数据区的指针。p#db3.dbx0.0 byte 20:起始地址为db3.dbx0.0,长度为20个byte。此处指向的地址及长度必须小于或者等于DB3块中的建立的数据长度。

输出接口参数:

DONE:发送作业成功完成时,会显示一个循环周期的1。抓取DONE位状态程序见诊断程序中的图30。

ERROR:当功能块出现错误时为1。

STATUS:功能块的运行状态。错误状态的抓取程序见诊断程序中的图31。

5. 配置 TRCV_C 指令

从指令表(图10)加入指令块 TRCV_C 到主程序中

d7dd1712-9033-11ed-bfe3-dac502259ad0.png

图10. 加入 TRCV_C 功能块

点击指令块上的开始组态按钮,打开“连接参数”组态窗口,并选择图8中组态好的参数块。

d7fd1364-9033-11ed-bfe3-dac502259ad0.png

图11. 组态连接参数

配置TRCV_C指令管脚

d8227a28-9033-11ed-bfe3-dac502259ad0.png

图12. TRCV_C 功能块

参数说明:

输入接口参数:

EN_R:启用接收功能 ,此处设置为1,一直打开接收。

LEN:接收数据长度,必须和通讯伙伴的发送长度设置一致。单位:字节(此参数默认为隐藏参数,可以点击功能块底部箭头显示)。

DATA:指向接收数据区的指针。p#db4.dbx0.0 byte 20:起始地址为db4.dbx0.0,长度为20个byte。此处指向的地址及长度必须小于或者等于DB4块中的建立的数据长度。

输出接口参数:

DONE:接收作业成功完成时,会显示一个循环周期的1。抓取DONE位状态程序见诊断程序中的图32。

RCVD_LEN:接收到的字节数。

ERROR:当功能块出现错误时为1。

STATUS:功能块的运行状态。错误状态的抓取程序见诊断程序中的图33。

6. 检查通讯DB块

在“程序块”-“系统块”-“程序资源”下,双击打开DB块“PLC_1_Send_DB”。

d83b1e48-9033-11ed-bfe3-dac502259ad0.png

图13. 检查通讯连接DB

红色框内填写通讯伙伴的IP(此处为PLC_2的IP地址)和端口

三、PLC_2 CPU配置

1. 连接关系

d8632e6a-9033-11ed-bfe3-dac502259ad0.png

图14. 连接关系

2. 组态CPU的硬件配置

1. 打开 STEP7 v16 软件并新建项目

在 STEP7 v16的 “Portal 视图” 中创建一个新项目。

2. 添加硬件并命名PLC

在“项目树” 下双击 “添加新设备”,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为PLC_2。

d86e9d86-9033-11ed-bfe3-dac502259ad0.png

图15. 添加CPU

3. 组态系统时钟

在CPU 属性中定义的时钟位, 在 “项目树” > “PLC_2” > “设备组态” 中,选中 CPU ,然后在下面的属性窗口中,“属性” > “常规”>“系统和时钟存储器” 下,勾选“启用系统存储器字节”及“启用时钟存储器字节”。

d71d43c4-9033-11ed-bfe3-dac502259ad0.png

图16. 系统位与时钟位

4. 组态PROFINET通讯接口

在CPU的属性窗口中,“属性” > “常规”>“PROFINET接口[X1]”>“以太网地址”下,点击添加新子网,分配PLC_2 CPU IP地址:192.168.0.3,子网掩码:255.255.255.0。

d8983fba-9033-11ed-bfe3-dac502259ad0.png

图17. 组态PROFINET接口

5. 编译CPU的硬件组态并下载 。

在设备视图下,“编辑”菜单 > “编译”。

在设备视图下,“在线”菜单 > “下载到设备”。

3. 建立通讯用DB

在项目树下添加新块,分别命名为SeverRcv,SeverSend。

在 DB 块中建立用于接收及发的数据数组(本例中建立100个byte)。

建立完成 DB 后,右键点击 DB 块,在打开的快捷菜单中打开 DB 的属性,去除 DB 的“优化的块访问属性”,见图19。

d8a74a32-9033-11ed-bfe3-dac502259ad0.png

图18. 建立通讯用DB块

d8bfb5cc-9033-11ed-bfe3-dac502259ad0.png

图19. 去除DB块的优化属性

4. 配置 TSEND_C 指令

从指令表(图20)加入指令块 TSEND_C 到主程序中。

d78424b8-9033-11ed-bfe3-dac502259ad0.png

图20. 加入 TSEND_C功能块

点击指令块上的开始组态按钮,打开“连接参数”组态窗口。

d8e4c4de-9033-11ed-bfe3-dac502259ad0.png

图21. 组态连接参数

图21中的参数:

端点:连接伙伴未在同一项目中,此处选择未指定。

地址:在伙伴侧写入服务器的通讯地址。

连接类型:UDP,此处使用UDP通讯。

连接ID:不能和CPU中的其它通讯ID冲突 。

连接数据:此处新建连接。

主动建立连接:选择主动建立连接的为客户端,另外一侧为服务器,本例中伙伴CPU为服务器,本地CPU主动建立连接。

端口:本例中双边通讯端口定为2000。

配置TSEND_C指令管脚

d90cbce6-9033-11ed-bfe3-dac502259ad0.png

图22. TSEND_C功能块

参数说明:

输入接口参数:

REQ:此处使用时钟脉冲信号,上升沿执行发送作业。

LEN:发送数据长度,此值必须小于或者等于DATA中指定的发送区长度,单位:字节(此参数默认为隐藏参数,可以点击功能块底部箭头显示)。示例中发送10个Byte到接收区。

DATA:指向发送数据区的指针。p#db3.dbx0.0 byte 20:起始地址为db3.dbx0.0,长度为20个byte。此处指向的地址及长度必须小于或者等于DB3块中的建立的数据长度。

输出接口参数:

DONE:发送作业成功完成时,会显示一个循环周期的1。抓取DONE位状态程序见诊断程序中的图30。

ERROR:当功能块出现错误时为1。

STATUS:功能块的运行状态。错误状态的抓取程序见诊断程序中的图31。

5. 配置 TRCV_C 指令

从指令表(图23)加入指令块 TRCV_C 到主程序中。

d7dd1712-9033-11ed-bfe3-dac502259ad0.png

图23. 加入 TRCV_C 功能块

点击指令块上的开始组态按钮,打开“连接参数”组态窗口,并选择图21中组态好的参数块。

d9329cf4-9033-11ed-bfe3-dac502259ad0.png

图24. 组态连接参数

配置TRCV_C指令管脚

d95a19dc-9033-11ed-bfe3-dac502259ad0.png

图25. TRCV_C 功能块

参数说明:

输入接口参数:

EN_R:启用接收功能 ,此处设置为1,一直打开接收。

LEN:接收数据长度,必须和通讯伙伴的发送长度设置一致。单位:字节(此参数默认为隐藏参数,可以点击功能块底部箭头显示)。

DATA:指向接收数据区的指针。p#db4.dbx0.0 byte 20:起始地址为db4.dbx0.0,长度为20个byte。此处指向的地址及长度必须小于或者等于DB4块中的建立的数据长度。

输出接口参数:

DONE:接收作业成功完成时,会显示一个循环周期的1。抓取DONE位状态程序见诊断程序中的图32。

RCVD_LEN:接收到的字节数。

ERROR:当功能块出现错误时为1。

STATUS:功能块的运行状态。错误状态的抓取程序见诊断程序中的图33。

6. 检查通讯DB块

在“程序块”-“系统块”-“程序资源”下,双击打开DB块“PLC_2_Send_DB”。

d96d8e7c-9033-11ed-bfe3-dac502259ad0.png

图26. 检查通讯连接DB

红色框内填写通讯伙伴的IP(此处为PLC_1的IP地址)和端口。

四、通讯诊断

1. 通讯数据查看

d99e1114-9033-11ed-bfe3-dac502259ad0.png

图27. 通讯数据

2. 连接诊断

将 1200CPU 转至在线状态,打开“网络视图”,可以在“连接”选项卡中看到连接状态。

d9b94bbe-9033-11ed-bfe3-dac502259ad0.png

图28. 连接状态

将鼠标选中连接,在巡视窗口中,可以检查连接的具体状态。

d9ceb166-9033-11ed-bfe3-dac502259ad0.png

图29. 连接详细状态

3. 利用功能块诊断通讯状态

d9e5f9de-9033-11ed-bfe3-dac502259ad0.png

图30. 检查已发送次数

d9f577e2-9033-11ed-bfe3-dac502259ad0.png

图31. 抓取发送错误代码

da06d7bc-9033-11ed-bfe3-dac502259ad0.png

图32. 抓取接收次数及最后一次的接收长度

da17bde8-9033-11ed-bfe3-dac502259ad0.png

图33. 抓取接收错误代码

审核编辑:汤梓红

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

    关注

    5019

    文章

    13400

    浏览量

    465943
  • 通信
    +关注

    关注

    18

    文章

    6084

    浏览量

    136549
  • UDP
    UDP
    +关注

    关注

    0

    文章

    328

    浏览量

    34068
  • S7-1200
    +关注

    关注

    11

    文章

    332

    浏览量

    18105
  • S7-1500
    +关注

    关注

    3

    文章

    301

    浏览量

    6543

原文标题:S7-1200 与 S7-1200/S7-1500 不同项目下 UDP 通信

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

收藏 人收藏

    评论

    相关推荐

    基于S7-1200的设备与网络组态

    本文档内容介绍了基于S7-1200的设备与网络组态,以及S7-1200的概要及功能。
    发表于 09-25 18:14 28次下载
    基于<b class='flag-5'>S7-1200</b>的设备与网络组态

    WinCC V7.2与S7-1200的PLC通讯

    自WinCC V7.2版本起,软件新增加了 SIMATIC S7-1200S7-1500 Channel通道,用于WinCC与 S7-1200/S7-1500 PLC之间的
    发表于 09-26 19:06 11次下载
    WinCC V7.2与<b class='flag-5'>S7-1200</b>的PLC通讯

    基于WinCC V7.2与S7-1200/1500 PLC通讯步骤介绍

    自WinCC V7.2版本起,软件新增加了 SIMATIC S7-1200S7-1500 Channel通道,用于WinCC与 S7-1200/S7-1500 PLC之间的
    发表于 09-28 11:01 37次下载
    基于WinCC V7.2与<b class='flag-5'>S7-1200</b>/<b class='flag-5'>1500</b> PLC通讯步骤介绍

    西门子S7-1200S7-1500 的编程指南pdf下载

    西门子S7-1200S7-1500 的编程指南
    发表于 03-27 15:15 302次下载

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

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持
    的头像 发表于 08-17 10:51 3w次阅读
    <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-1200之间UDP通信与仿真

    S7-1200S7-1200 之间的以太网通信可以通过 UDP 协议来实现,使用的通信指令是在双方 CPU 调用 T-block (
    的头像 发表于 04-22 09:14 5749次阅读
    关于<b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>之间<b class='flag-5'>UDP</b>的<b class='flag-5'>通信</b>与仿真

    西门子S7-1200S7-1500编程风格指南

    西门子S7-1200S7-1500编程风格指南分享
    发表于 08-17 17:30 22次下载

    关于S7-1200S7-1500 PLC的通信

    WinCC V7.4SP1中针对S7-1200S7-1500通信,可以创建状态变量和控制变量,用来显示和控制S7-1200S7-1500
    发表于 10-09 10:05 2320次阅读

    WinCC与 S7-1200/S7-1500 PLC之间的通信解析

    自WinCC V7.2版本起,软件新增加了 "SIMATIC S7-1200, S7-1500 Channel"通道,用于WinCC与 S7-1200/S7-1500 PLC之间的
    发表于 02-06 09:39 8710次阅读

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

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

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

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

    S7-1500S7-1200存储区域保持性设置

    S7-300/400一样,S7-1500S7-1200都有存储区M区,另外S-1500还有存储区(定时器、计数器),这些区域都可以设置保持性。下面详细介绍如何设置这些区域的保持性。
    的头像 发表于 04-21 09:49 1.2w次阅读

    S7-1200S7-300的选型区别

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

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

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

    S7-1200/S7-1500与精简面板仿真过程的步骤

    S7-1200/S7-1500与精简面板仿真有两个需要注意的问题。
    的头像 发表于 08-23 10:45 2124次阅读
    <b class='flag-5'>S7-1200</b>/<b class='flag-5'>S7-1500</b>与精简面板仿真过程的步骤