西门子PLC的TCP通讯(不同项目下)③--TCP测试
上期主要了解了TRCV_C指令的各项参数的意义,如下图
![cf39ee0f6f1468375154b1b4a37aa6f0.png](https://i-blog.csdnimg.cn/blog_migrate/87e14f73113f5890821e70370b46ea38.jpeg)
本期将把前面讲的TSEND_C和TRCV_C组合测试,大概准备情况先说下,2个西门子1200PLC,每个PLC放一组TSEND_C和TRCV_C指令组合,再放一个T_DIAG测试连接指令,然后网线连接,最好用个交换机,下面开始测试
1.0 如下图,把192.168.0.110作为客户端,192.168.0.170作为服务端,由110作为主动连接端
![92e2c94482ee03954656d07e34938f59.png](https://i-blog.csdnimg.cn/blog_migrate/4f38e785b78e45928bb92437c2978e7d.jpeg)
2.0 首先在110服务端,找到指令块TRCV_C,先把EN_R和CONT置位1,一个建立连接一个是开启接收,这时候指令状态STATUS应该是7001-7002跳变,意思是建立连接的一次二次调用,中间可能会出现80AA(也有其他块通过同一个ID在建立连接,这时候你可以看下发送块的CONT是不是为1了),80C5(通信伙伴终止连接或远程伙伴LSAP未释放,大概意思就是没连上)
![5b3fed88a84352ca5004ea6bce45dac0.png](https://i-blog.csdnimg.cn/blog_migrate/0ee9147d37edb55aba956f1a69c3cbe2.jpeg)
2.0 如下图,转到170的项目中,选择TSEND_C的指令块,把CONT置1,你就会看到指令状态STSTUS监控为7004(意思是连接已建立并且已监视,目前没有作业)就表示已连接
![57e16699c9822f3ac1e07d133e4c9b07.png](https://i-blog.csdnimg.cn/blog_migrate/3205d8c8306b1ca80b007a536fe0bc54.jpeg)
2.1 另外我们还是可以从T_DIAG检测连接指令中,测试连接情况,如下图,我们把REQ置位测试连接
![57ba0d02a3168379f478db1312f0541d.png](https://i-blog.csdnimg.cn/blog_migrate/a9f450ba7c4487fe41d9093364bfe10c.jpeg)
2.2 测试结果如下图,我们来解读下,
![90d333cd01aefb09e43593c4d452bc92.png](https://i-blog.csdnimg.cn/blog_migrate/35c92891dc4b8724762d2bf5f8ad077e.jpeg)
InterfaceId 64:CPU设备ID,即硬件标识符
![45ce782637c4719554a3ba9120fe2947.png](https://i-blog.csdnimg.cn/blog_migrate/1a06b256575f3127803eb074189c0625.jpeg)
ID 3:所诊断连接的ID
ConnectionType 16#0B: TCP协议(IP_v4)
![a10fac6974d63b24539f5f972bc27300.png](https://i-blog.csdnimg.cn/blog_migrate/637a2be0618f94d2993fe8d10d62f269.jpeg)
ActiveEstablished 1:本地,主动连接端点,这个PLC是110地址,刚才我们设置的主动连接,所以这里是1
State 16#04:连接端点的当前状态,连接已建立
Kind 16#03:连接端点的模式,03代表目前是通过TCON来连接的模式
![335574da320eef016699c33297dbdff0.png](https://i-blog.csdnimg.cn/blog_migrate/4cb040bd977154892445c3cae965baca.jpeg)
SentBytes 0:发送的数据字节数
ReceivedBytes 0 :接收的数据字节数
从以上读出的参数表明,目前TCP连接已经建立