Exemplo n.º 1
0
        private IO_Link_DiagnosisInfo GetDiagnosisData(string port)
        {
            var command = IO_LinkMasterModbusCommand.GetPortCommand(port);
            IO_Link_DiagnosisInfo res = new IO_Link_DiagnosisInfo();

            if (myIomaster.NetStatus != NetStatus.Good)
            {
                res.VendorName = "NG";
                res.VendorText = "Connect to device first";
                return(res);
            }
            Task.Factory.StartNew(() =>
            {
                string info = "";
                myIomaster.BatchRead(DeviceType.Ultrasonic, command, out info);
                res = info.FromJSON <IO_Link_DiagnosisInfo>();
            }).GetAwaiter().GetResult();

            return(res);
        }
 public static bool GetReadAnalysisReceiveByte(DeviceType type, CommandIO_Link command, byte[] receive, out string data)
 {
     data = "";
     switch (command)
     {
         case CommandIO_Link.DiagnosisDataPort1:
         case CommandIO_Link.DiagnosisDataPort2:
         case CommandIO_Link.DiagnosisDataPort3:
         case CommandIO_Link.DiagnosisDataPort4:
         case CommandIO_Link.DiagnosisDataPort5:
         case CommandIO_Link.DiagnosisDataPort6:
         case CommandIO_Link.DiagnosisDataPort7:
         case CommandIO_Link.DiagnosisDataPort8:
         string VendorName = Encoding.ASCII.GetString(receive.GetBytes(9, 64)).Replace("\0", "");
         string VendorText = Encoding.ASCII.GetString(receive.GetBytes(73, 64)).Replace("\0", "");
         string ProductName = Encoding.ASCII.GetString(receive.GetBytes(137, 64)).Replace("\0", "");
         string ProductID =Encoding.ASCII.GetString(receive.GetBytes(201, 64)).Replace("\0", "");
         string ProductText = Encoding.ASCII.GetString(receive.GetBytes(265, 64)).Replace("\0", "");
         string SerialNumber = Encoding.ASCII.GetString(receive.GetBytes(329, 16)).Replace("\0", "");
         string HardwareRevision = Encoding.ASCII.GetString(receive.GetBytes(345, 64)).Replace("\0", "");
         string FirmwareRevision = Encoding.ASCII.GetString(receive.GetBytes(409, 64)).Replace("\0", "");
         string PDILength = Encoding.ASCII.GetString(receive.GetBytes(473, 2)).Replace("\0", "");
         string PDOLength = Encoding.ASCII.GetString(receive.GetBytes(474, 2)).Replace("\0", "");
             IO_Link_DiagnosisInfo info = new IO_Link_DiagnosisInfo()
             {
                 Port = GetPort(command),
                 VendorName = VendorName,
                 VendorText = VendorText,
                 ProductName = ProductName,
                 ProductID = ProductID,
                 ProductText = ProductText,
                 SerialNumber = SerialNumber,
                 HardwareRevision = HardwareRevision,
                 FirmwareRevision = FirmwareRevision,
                 PDILength = PDILength,
                 PDOLength = PDOLength
             };
             data = info.ToJSON();
             break;
         case CommandIO_Link.PDIPort1:
         case CommandIO_Link.PDIPort2:
         case CommandIO_Link.PDIPort3:
         case CommandIO_Link.PDIPort4:
         case CommandIO_Link.PDIPort5:
         case CommandIO_Link.PDIPort6:
         case CommandIO_Link.PDIPort7:
         case CommandIO_Link.PDIPort8:
             data = "";
             new DivceCategory(type).ReadDataAnalysis(receive, out data);
             return true;
         case CommandIO_Link.PDOPort1:
         case CommandIO_Link.PDOPort2:
         case CommandIO_Link.PDOPort3:
         case CommandIO_Link.PDOPort4:
         case CommandIO_Link.PDOPort5:
         case CommandIO_Link.PDOPort6:
         case CommandIO_Link.PDOPort7:
         case CommandIO_Link.PDOPort8:
             break;
     };
     return true;
 }