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,可避免参数冲突,如下图所示。
需先安装Open Communication Wizard软件,如下图所示。
在开始->SIMATIC打开OC Wizard,选择STEP 7项目及块文件,单击下一步,如下图所示。
选择新建,单击下一步,如下图所示。
选择连接方式位TCP native,单击下一步,如下图所示。
选择通信伙伴,选择单边组态选项(不同项目不同电脑),如下图所示。
组态名称、对方IP地址及所使用的接口,并指定主动建立连接一方,如下图所示。
组态连接对方的端口号,缺省单击下一步,如下图所示。
创建TCP我方所使用的DB65,选择对应的块文件,单击下一步,如下图所示。
DB65生成后,单击下一步,如下图所示。
通过OC Wizard创建TCP连接后,编译无错误如下图所示。
编译无错误如下图所示。
发送站的编程
OB1中编程
调用标准库\通信块 中的FB65 “TCON”设置和建立通信连接,在参数中指定我方为通信主动传输点;编程如下图所示。(前面的DB65不是FB65的背景数据块,而是用于CONNECT)
主动方给一个上升沿,BUSY位会给1,显示正在工作,然后被动给一个上升沿后BUSY位也为1,这样两者建立通信,两个的BUSY位为0,DONE位给1马上回0表示完成,故编程如下来抓取DONE的信号。(三次握手)
DONE有上升沿过程代表通讯建立成功。建立变量表观察如下图所示:
然后调用标准库\通信块 FB63 “TSEND”发送数据,如下图所示。
然后调用标准库\通信块 FB64 “TRCV”接受数据,如下图所示。
通过调用 标准库\通信块 FB66 “TDISCON”终止通信连接,编程如下图所示。
当我对FB66 M200.0进行赋1时,就是断开两CPU的连接,再次通讯就得再次通过FB65握手,或者还可以通过两个CPU调到STOP状态,再打开就是断开连接了,需要再建立连接。
两台电脑分别选中发送站和接收站,编译保存,然后下载至相应CPU中,使CPU正确运行。(两CPU是通过NET连接)
在发送站和接收站中分别新建变量表,将相关变量添加,进行程序运行的监控。
①发送长度等于接收长度
建立变量表观察存储接受区域如下图所示:
②发送长度小于接收长度
在发送站的变量表,发送长度设置为3 Byte(123)(就是不断发送发送区地址前三位),接收长度为10Byte,触发发送TCON的上升沿(4次),接收端才接到一次为1231231231,再发送四次,接收端为2312312312,再发送三次,接收端为3123123123,如下图所示。(要把10个字节填满后才能发送到接收端,所以要多发几次)
③发送长度大于接收长度
在发送站的变量表,发送长度设置为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:友情提醒,所有文章属于一个系列,顺着看效果更好,欢迎大家翻阅我之前所写文章。欢迎大家关注工控谭俊豪,该系列会持续更新~
作者简介
谭俊豪:重庆大学机械工程学院学士,西门子中国公司培训生
本文为原创文章,于头条首发,欢迎关注转载,请注明出处和作者!