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