打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
西门子PLC开放式以太网通信经验分享

1、关于建立连接

无论是基于UDP协议还是TCP协议,西门子PLC开放式以太网通信的第一步都是调用TCON指令建立连接。该指令如下图所示:

对于TCP通信来说,TCON指令会在两个通信伙伴之间建立真正的通信链路。因此,需要在该指令的connect参数中指定对方的IP地址和端口号;

对于UDP通信来说,由于它是一种无连接的协议,TCON指令不会建立真实的通信链路,因此通信伙伴的IP和端口号是可以不填写的。那么为什么还要调用TCON指令呢?其实,对于UDP通信,调用TCON指令的目的是开放本地端口号,并创建一个通信的ID。开放本地端口后才能接收对方发送到这个端口的数据,而通信的ID则用于后续的发送/接收指令。

在博途环境下,可以直接点击TCON指令右上方的'小房子'符号对通信参数进行配置的。

2、关于请求信号

请求信号建议使用上升沿触发,如下图所示:

3、创建通信成功建立标识变量

由于TCON指令的输出参数DONE只在一个扫描周期内有效,因此,需要另外创建静态变量来表示是否已经建立通信或者端口已经成功开放,比如下面图片中的statConnectBuildUpOK。

对于TCON指令的输出值,我之前使用临时变量,调试过程发现偶尔会出现无法置位statConnectBuildUpOK变量的情况。因此对于TCON的输出值也建议使用静态变量,如下图所示:

4、数据发送指令TUSEND

TUSEND指令可以发送UDP数据,它是异步执行指令,也就是说其执行过程可能需要多个扫描周期。因此,其Req请求发送信号要使用上升沿,并且配合指令的输出值,比如busy、error等信号使用。

该指令的ADDR参数是通信伙伴的IP地址和端口号,其数据类型为TADDR_Param,必须在这里指明IP地址和端口号。

可以创建全局数据块存放发送的地址,如下图所示:

数据发送的指令示例如下(未指明发送的数据):

5、数据接收指令

数据接收指令TURCV用来接收UDP数据,同样的,也需要在其ADDR参数中指明通信伙伴的IP地址和端口号。

这个指令强调一点,其使能接收EN_R参数,最好使用之前创建的静态变量statConnectBuildUpOK作为其中之一的条件,下图是一个示例(数据部分未填写,你要根据实际情况填写):

6、断开连接

在某些情况下(比如关机)需要将连接断开,这时要使用TDISCON指令。

该指令与TCON类似,需要使用上升沿信号触发。需要注意的是,在断开连接成功执行后,将之前的静态变量statConnectBuildUpOK复位,如下图所示:

好了,这就是我的关于UDP通信的一些经验分享。文章没有对所有的细节进行介绍,只是强调了一些需要注意的地方。关于更多的细节,请点击本文开头处的链接查看。

我的书《西门子S7-200 SMART PLC应用技术——编程、通信、装调、案例》也有关于通信的介绍,欢迎点击下面的链接查看:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
S7-1200 之间的UDP通信
西门子1200PLC支持的通信协议
菜鸟学习记4:学习TSEND
S7-1200与S7-300 CPU 集成 PN 口的ISO on TCP通信
西门子S7-1500MODBUS/TCP通信
LabVIEW通过以太网与西门子S7-1200PLC通信,制作你自己的WINCC
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服