示例#1
0
        /// <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
            {
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
 /// <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));
 }
示例#4
0
文件: CMON32.cs 项目: GJSoftware/Tool
        /// <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);
            }
        }