现在想利用C#+socket与PLC进行通信
中间有个485转Tcp/Ip模块(该模块为PC上位机与PLC通信转换器)//连接服务器
IPEndPoint ipEndPoint = new IPEndPoint(new IPAddress(new byte[] { 192, 168, 1, 9 }), 8000);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.ReceiveTimeout = 3000;
try
{
byte[] receiveData = new byte[20];
socket.Connect(ipEndPoint);//联连接服务器
int i = socket.Receive(receiveData);
}
catch
{
}
try
{
byte[] mybyte = buff.ToArray();
socket.Send(mybyte, buff.Count, SocketFlags.None);//发送命令
System.Threading.Thread.Sleep(50);
}
catch
{
}
byte[] buffer = new byte[20];
try
{
int i = socket.Receive(buffer);//接收信息
string receiveStr = Crc.ByteToHex(buffer);
Console.WriteLine(receiveStr);
}
catch
{
}本来PLC执行相关的命令操作并返回信息
遇到的问题是:上位机接收不到PLC返回的信息
int i = socket.Receive(buffer);try{}catch{}在这条语句捕到异常
哪位朋友以前做过相关的项目帮我解决下
中间有个485转Tcp/Ip模块(该模块为PC上位机与PLC通信转换器)//连接服务器
IPEndPoint ipEndPoint = new IPEndPoint(new IPAddress(new byte[] { 192, 168, 1, 9 }), 8000);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.ReceiveTimeout = 3000;
try
{
byte[] receiveData = new byte[20];
socket.Connect(ipEndPoint);//联连接服务器
int i = socket.Receive(receiveData);
}
catch
{
}
try
{
byte[] mybyte = buff.ToArray();
socket.Send(mybyte, buff.Count, SocketFlags.None);//发送命令
System.Threading.Thread.Sleep(50);
}
catch
{
}
byte[] buffer = new byte[20];
try
{
int i = socket.Receive(buffer);//接收信息
string receiveStr = Crc.ByteToHex(buffer);
Console.WriteLine(receiveStr);
}
catch
{
}本来PLC执行相关的命令操作并返回信息
遇到的问题是:上位机接收不到PLC返回的信息
int i = socket.Receive(buffer);try{}catch{}在这条语句捕到异常
哪位朋友以前做过相关的项目帮我解决下
有】网络助手】软件可以帮助你先测试下是或否能连上plc