前一次实验UDP通讯已经是一年前的事了。
那个时候在固件V2.4的CPU上实验,遇到TCON一直BUSY的问题。
这次在固件V2.7的CPU上实验,以前在V2.4上通不过的TCON,在V2.7上一点问题没有。
但是,这次还是遇到了一个新问题。
我在论坛中搜了一下,相同问题在2018年时就有人提出来了,只是没有解决的答案。
问题是这样的:
1、TCON连接时,只须提供连接ID、本机的Port。
因为UDP建立连接,并不是真的和远端的设备建立连接,它只是开启了一个服务,可以利用这个连接收发数据。
远端的IP和Port在TSEND发送时候提供,从原理上讲,一个UDP连接,可以给不同的IP,或者不同的Port端口发送数据。
2、UDP的接收TRECV没有遇到问题,我只做了同一远端IP的两个Port向PLC发送数据的实验,可以无误接收。
3、TSEND向一个固定的IP、固定的的Port发送数据,也没有问题,每次都成功了。
4、TSEND向同一个IP,两个不同的Port交替发送数据时,问题来了。
大多数情况下,TSEND都可以返回16#B8或16#80状态,表示发送成功,无错误,或无待决操作。
但是偶会发生16#A7错误,也就是7号错误。手册给出的解释为:


这个7号错误一旦发生,就一直维持。
因为是两个端口是交替发送数据,在一个端口上卡住了,换回另一个端口发送,又可以继续了,但过一会又会卡住。
数据发送的速度,在是确认TSEND发送完成后,再启动下一次发送。
这个16#A7错误,目前还不知道如何避免。