/// <summary> /// 读取快充板信号状态 /// </summary> /// <param name="addr"></param> /// <param name="er"></param> /// <returns></returns> private bool readSignal(int addr, out string er) { er = string.Empty; try { Thread.Sleep(_delayMs); CrRunPara para = new CrRunPara(); if (!_devMon.ReadRunData(addr, ref para, out er)) { Thread.Sleep(_delayMs); if (!_devMon.ReadRunData(addr, ref para, out er)) { er = _Mon[addr].ToString() + "读信号;"; return(false); } } _Mon[addr].Para.Sinal = para.Clone(); return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } finally { } }
/// <summary> /// 复制 /// </summary> /// <returns></returns> public CrRunPara Clone() { CrRunPara para = new CrRunPara(); para.runTolTime = this.runTolTime; para.secMinCnt = this.secMinCnt; para.runTypeFlag = this.runTypeFlag; para.startFlag = this.startFlag; para.biFinishFlag = this.biFinishFlag; para.onoff_RunTime = this.onoff_RunTime; para.onoff_YXDH = this.onoff_YXDH; para.onoff_Cnt = this.onoff_Cnt; para.onoff_Flag = this.onoff_Flag; para.s1 = this.s1; para.s2 = this.s2; para.ac_Sync = this.ac_Sync; para.ac_on = this.ac_on; para.upAir = this.upAir; para.downAir = this.downAir; for (int i = 0; i < this.x.Length; i++) { para.x[i] = this.x[i]; } para.errCode = this.errCode; para.QC_TYPE = this.QC_TYPE; para.QC_VOLT = this.QC_VOLT; para.QC_Y_VOLT = this.QC_Y_VOLT; for (int i = 0; i < this.Y.Length; i++) { para.Y[i] = this.Y[i]; } return(para); }
/// <summary> /// 读取控制板测试信号数据 /// </summary> /// <param name="wAddr"></param> /// <param name="rPara"></param> /// <param name="er"></param> /// <returns></returns> public bool ReadRunData(int wAddr, ref CrRunPara rPara, out string er) { return(_devMon.ReadRunData(wAddr, ref rPara, out er)); }
/// <summary> /// 读取控制板测试信号数据 /// </summary> /// <param name="wAddr"></param> /// <param name="rPara"></param> /// <param name="er"></param> /// <returns></returns> public bool ReadRunData(int wAddr, ref CrRunPara rPara, out string er) { try { string wCmd = string.Empty; string rData = string.Empty; string rVal = string.Empty; wCmd = wAddr.ToString("X2") + "02" + "09" + "04"; wCmd = SOI + wCmd + CalCheckSum(wCmd) + EOI; int rLen = 1 + 1 + 2 + 1 + 14 + 1 + 1; if (!com.send(wCmd, rLen, out rData, out er, _TimeOut)) { return(false); } if (!ToCheckSum(rData, ref rVal)) { er = "检验和错误:" + rData; return(false); } rPara.runTolTime = System.Convert.ToInt16(rVal.Substring(0, 4), 16); rPara.secMinCnt = System.Convert.ToInt16(rVal.Substring(4, 2), 16); rPara.runTypeFlag = System.Convert.ToInt16(rVal.Substring(6, 2), 16); rPara.startFlag = System.Convert.ToInt16(rVal.Substring(8, 2), 16); rPara.biFinishFlag = System.Convert.ToInt16(rVal.Substring(10, 2), 16); rPara.onoff_RunTime = System.Convert.ToInt16(rVal.Substring(12, 4), 16); rPara.onoff_YXDH = System.Convert.ToInt16(rVal.Substring(16, 2), 16); rPara.onoff_Cnt = System.Convert.ToInt16(rVal.Substring(18, 2), 16); rPara.onoff_Flag = System.Convert.ToInt16(rVal.Substring(20, 2), 16); int sgnVal = System.Convert.ToInt16(rVal.Substring(22, 4), 16); rPara.s1 = ((sgnVal & 0x1) == 0x1)?1:0; rPara.s2 = ((sgnVal & 0x2) == 0x2) ? 1 : 0; rPara.ac_Sync = ((sgnVal & 0x4) == 0x4) ? 1 : 0; rPara.ac_on = ((sgnVal & 0x8) == 0x8) ? 1 : 0; rPara.upAir = ((sgnVal & 0x20) == 0x20) ? 1 : 0; rPara.downAir = ((sgnVal & 0x40) == 0x40) ? 1 : 0; int QC_V0 = ((sgnVal & 0x10) == 0x10) ? 1 : 0; int QC_V1 = ((sgnVal & 0x20) == 0x20) ? 1 : 0; int QC_T0 = ((sgnVal & 0x40) == 0x40) ? 1 : 0; int QC_T1 = ((sgnVal & 0x80) == 0x80) ? 1 : 0; rPara.QC_TYPE = QC_T1 * 2 + QC_T0; rPara.QC_VOLT = QC_V1 * 2 + QC_V0; for (int i = 1; i < 9; i++) { rPara.x[i] = ((sgnVal & (1 << (i + 7))) == (1 << (i + 7))) ? 1 : 0; } rPara.x[9] = ((sgnVal & 0x80) == 0x80) ? 1 : 0; rPara.Y[1] = rPara.x[2]; rPara.Y[2] = rPara.x[4]; rPara.Y[3] = rPara.x[5]; rPara.Y[4] = rPara.x[6]; rPara.Y[5] = rPara.x[7]; rPara.Y[6] = rPara.x[8]; int errCode = System.Convert.ToInt16(rVal.Substring(rVal.Length - 2, 2), 16); if (errCode > 8) { rPara.errCode = EErrCode.负载回路不良; } else { rPara.errCode = (EErrCode)errCode; } if (rPara.Y[1] == 0 && rPara.Y[2] == 0 && rPara.Y[3] == 1 && rPara.Y[4] == 0 && rPara.Y[5] == 0 && rPara.Y[6] == 1) { rPara.QC_Y_VOLT = 0; //+5V } else if (rPara.Y[1] == 1 && rPara.Y[2] == 0 && rPara.Y[3] == 0 && rPara.Y[4] == 1 && rPara.Y[5] == 0 && rPara.Y[6] == 0) { rPara.QC_Y_VOLT = 1; //+7V } else if (rPara.Y[1] == 0 && rPara.Y[2] == 0 && rPara.Y[3] == 0 && rPara.Y[4] == 0 && rPara.Y[5] == 0 && rPara.Y[6] == 0) { rPara.QC_Y_VOLT = 2; //+9V } else if (rPara.Y[1] == 1 && rPara.Y[2] == 1 && rPara.Y[3] == 0 && rPara.Y[4] == 1 && rPara.Y[5] == 1 && rPara.Y[6] == 0) { rPara.QC_Y_VOLT = 3; //+12V } else { rPara.QC_Y_VOLT = -1; } return(true); } catch (Exception e) { er = e.ToString(); return(false); } }