西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

<a href=https://www.xmzyj.com/ximenzi>西门子</a>S7-300入门级教程08-基础协议篇02-Open IE-TCP通信” inline=”0″></p>
<p class=S7-300样图

实验二 Open IE-TCP通信

1) 目的

掌握开放式以太网TCP通讯

2) 实验内容

①安装OC_Wizard和Wireshark ;

②利用OC_Wizard建立一个用于TCP通信的UDT或DB;

③通信双方都调用 标准库\通信块 中的FB65 “TCON”设置和建立通信连接,在参数中指定通信主动传输点和被动传输点;

④通过调用 标准库\通信块 FB63 “TSEND”发送数据;

⑤通过调用 标准库\通信块 FB64 “TRCV”接收数据;

⑥通过调用 标准库\通信块 FB66 “TDISCON”终止通信连接;

⑦分别实验发送数据长度大于或小于接收区域数据长度两种情况;

⑧利用Wireshark测试发送缓冲区、接收缓冲区、堆栈缓冲区长度;

⑨测试最大数据一致性。

3) 实验流程

新建项目,插入S7-300站,在HW Config中完成硬件组态,插入CPU 315-2 PN/DP,因为是在两个不同电脑的不同项目下建立连接,建立TCP通讯,新建Ethernet(1)网络,系统自动分配IP地址和Device name,可避免参数冲突,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

需先安装Open Communication Wizard软件,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

在开始->SIMATIC打开OC Wizard,选择STEP 7项目及块文件,单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

选择新建,单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

选择连接方式位TCP native,单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

选择通信伙伴,选择单边组态选项(不同项目不同电脑),如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

组态名称、对方IP地址及所使用的接口,并指定主动建立连接一方,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

组态连接对方的端口号,缺省单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

创建TCP我方所使用的DB65,选择对应的块文件,单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

DB65生成后,单击下一步,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

通过OC Wizard创建TCP连接后,编译无错误如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

编译无错误如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

发送站的编程

OB1中编程

调用标准库\通信块 中的FB65 “TCON”设置和建立通信连接,在参数中指定我方为通信主动传输点;编程如下图所示。(前面的DB65不是FB65的背景数据块,而是用于CONNECT)

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

主动方给一个上升沿,BUSY位会给1,显示正在工作,然后被动给一个上升沿后BUSY位也为1,这样两者建立通信,两个的BUSY位为0,DONE位给1马上回0表示完成,故编程如下来抓取DONE的信号。(三次握手)

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

DONE有上升沿过程代表通讯建立成功。建立变量表观察如下图所示:

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

然后调用标准库\通信块 FB63 “TSEND”发送数据,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

然后调用标准库\通信块 FB64 “TRCV”接受数据,如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

通过调用 标准库\通信块 FB66 “TDISCON”终止通信连接,编程如下图所示。

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

当我对FB66 M200.0进行赋1时,就是断开两CPU的连接,再次通讯就得再次通过FB65握手,或者还可以通过两个CPU调到STOP状态,再打开就是断开连接了,需要再建立连接。

两台电脑分别选中发送站和接收站,编译保存,然后下载至相应CPU中,使CPU正确运行。(两CPU是通过NET连接)

在发送站和接收站中分别新建变量表,将相关变量添加,进行程序运行的监控。

①发送长度等于接收长度

建立变量表观察存储接受区域如下图所示:

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

②发送长度小于接收长度

在发送站的变量表,发送长度设置为3 Byte(123)(就是不断发送发送区地址前三位),接收长度为10Byte,触发发送TCON的上升沿(4次),接收端才接到一次为1231231231,再发送四次,接收端为2312312312,再发送三次,接收端为3123123123,如下图所示。(要把10个字节填满后才能发送到接收端,所以要多发几次)

西门子S7-300入门级教程08-基础协议篇02-Open IE-TCP通信

③发送长度大于接收长度

在发送站的变量表,发送长度设置为5Byte(12345),接收长度为3 Byte,触发发送TCON的上升沿,接收端接到1次为123,发送端再触发一次上升沿,接收端接2 次,第一次为451,然后马上接第二次234,因为刷新很快,所以显示只会是234,但实际上451是接受过的,可以抓出来。所以在发送长度大的时候就是接收端会接多次。

4) 总结

1. 在使用NetPro建立连接时,要注意区分本地和伙伴参数的设置,如IP地址、块参数、端口号已经TSAP的设置。通信双方要区分主动和被动的关系。我们一般是设置的对方的IP地址与它连接,除非是广播或者组播。

2. 在用OC Wizard创建UDT或者DB时,建议直接创建DB块存储,就会省掉一步,同时在使用UDP连接来创建DB时,可以直接把连接和地址信息放在同一个DB块,也可以放在不同的DB块。

敬请期待下一篇-基础协议篇—ISO-ON-TCP通信

PS:友情提醒,所有文章属于一个系列,顺着看效果更好,欢迎大家翻阅我之前所写文章。欢迎大家关注工控谭俊豪,该系列会持续更新~

作者简介

谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生

本文为原创文章,于头条首发,欢迎关注转载,请注明出处和作者!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据