现在想利用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{}在这条语句捕到异常
哪位朋友以前做过相关的项目帮我解决下

解决方案 »

  1.   

    你还是把Exception Message发不来吧,这样也好分析。
      

  2.   

    你还是把Exception Message发出来吧,
      

  3.   

    Exception Message:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
      

  4.   

    确定转换的可用么?先确定连接正常然后再看你的程序
    有】网络助手】软件可以帮助你先测试下是或否能连上plc