我必须通过C#UdpClient类与PLC通信。
IPEndPoint target = new IPEndPoint(IPAddress.Parse(ip), port);
udpClient = new UdpClient(target.AddressFamily);
udpClient.Connect(target);
var command = CreateWriteHeader(dm, values);
udpClient.Send(command, command.Length);
var data = udpClient.Receive(ref target);
我发送的字节序列是正确的,PLC正在向我发送一个respose,所以我确信正在进行通信。 问题是我收到的响应包含错误代码。
检查协议手册,它似乎是一个“无法写入”的错误代码,我正在发送一个读取请求。 联系PLC支持他们说,对于UDP连接,我的电脑上的本地端口必须与我连接的目标端口(9600)相同,否则PLC拒绝工作。
如何指定我连接的端口? 我看到我可以为UdpClient对象设置一个端口,但它是一个监听端口,对吧?不是我要连接的端口......