两个西门子PLC1200之间的TCP通讯④–TCP测试

两个西门子PLC1200之间的TCP通讯④–TCP测试

上几期大概说了下TCP需要用到的指令块,TCON连接指令,TSEND发送指令,TRCV接收指令这3个指令构成了TCP的基础

这期将介绍正式测试TCP这个程序,发现一些实际调试出现的问题

1.0 先建立链接,首先作为客户端的PLC2,指令TCON的REQ必须为1,被动连接使能要开启,也可以直接写1

两个西门子PLC1200之间的TCP通讯④--TCP测试

2.0 作为服务器端的PLC1,他的TCON指令,REQ触发上升沿(前提是客户端已开启接收连接),正常的话DONE会置位一个周期,这里我们可以锁存下状态,因为如果REQ上升沿触发后,DONE没反应说明连接有问题的,如果断线或者伙伴网络断开,会自动重连不用重新设置连接,DONE也会刷新的,除非断电或者STOP状态,或者TDISCON,会删除链接,这时候才需要重新REQ一下

两个西门子PLC1200之间的TCP通讯④--TCP测试
两个西门子PLC1200之间的TCP通讯④--TCP测试

3.0 如上如果连接好了,下面就开始发送一对了,PLC1这边做发送端,PLC2做接收端,如下图,就是PLC1的发送指令TSEND,刚开始测试我们可以像下面这样,REQ做一个上升沿的脉冲,记得做一个发送完成的状态锁存M300.0,一个错误的状态锁存MW302

两个西门子PLC1200之间的TCP通讯④--TCP测试
两个西门子PLC1200之间的TCP通讯④--TCP测试

4.0 下面说下PLC2,这边是做一个接收指令TRCV,如下图,EN_R可以直接为1,开启接收,注意锁存NOR置位说明接收完成,这时候要锁存下接收长度RCVD_LEN,跟上面一样别忘了锁存错误状态下的代码

两个西门子PLC1200之间的TCP通讯④--TCP测试
两个西门子PLC1200之间的TCP通讯④--TCP测试

5.0 正常来说如上所述,当发送端上升沿后,PLC2这头的接收端就会收到数据。如下图就是一个正常的接收,我们LEN设置了3就接收3个字节,

注意:1.0 接收和发送的长度一致,LEN不能大于DATA设置的指针数据长度(这里是BYTE 10)

2.0  有时候会报错ID冲突或再用啥的,可以整体切换ID,但是好像需要PLC重启重连组态参数里面也需要修改

3.0 注意发送接收数据块不要优化地址

4.0 调试时注意每个环节的状态,比如发送如果DONE了就说明发送没问题,到接收那找原因

两个西门子PLC1200之间的TCP通讯④--TCP测试

本文章来源于互联网,如有侵权,请联系删除!原文地址:两个西门子PLC1200之间的TCP通讯④–TCP测试

相关推荐: 如何在工业物联网中部署边缘计算和雾计算

工业物联网(IIOT)应用通常需要扩展性和灵活性,它可能不需要在雾计算和边缘计算之间做出选择,因为这两者企业可能都需要。 随着工业物联网(IIoT)的兴起,人们每天都在引进新技术来处理正在生成的大量数据。而识别这些新技术对企业和工业公司来说都是一个挑战,例如,…