Ejemplo n.º 1
0
 private void chkMode_CheckedChanged(object sender, EventArgs e)
 {
     if (chkMode.Checked)
     {
         runMode = ERunMode.普通老化房模式;
     }
     else
     {
         runMode = ERunMode.自动线模式;
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 初始化设备
        /// </summary>
        /// <param name="canBand"></param>
        /// <param name="runMode"></param>
        /// <param name="filter"></param>
        /// <param name="accCode"></param>
        /// <param name="accMark"></param>
        /// <returns></returns>
        public bool InitalCanBus(UInt32 canBusId, ECanBaud canBand, out string er,
                                 UInt32 accCode   = 0x0, UInt32 accMark           = 0xFFFFFFFF,
                                 ERunMode runMode = ERunMode.正常模式, EFilter filter = EFilter.单滤波
                                 )
        {
            er = string.Empty;

            try
            {
                if (!_devOpen)
                {
                    er = "CanBus总线未打开";
                    return(false);
                }

                VCI_INIT_CONFIG config = new VCI_INIT_CONFIG();
                config.AccCode = accCode;
                config.AccMask = accMark;
                config.Timing0 = BTR0[(int)canBand];
                config.Timing1 = BTR1[(int)canBand];
                config.Filter  = (Byte)filter;
                config.Mode    = (Byte)runMode;

                if (VCI_InitCAN(_devType, _canBusId, canBusId, ref config) != STATUS_OK)
                {
                    er = "初始化【" + ((EVCI)_devType).ToString() + "】设备【" + canBusId.ToString() + "】失败";
                    return(false);
                }
                return(true);
            }
            catch (Exception ex)
            {
                er = ex.ToString();
                return(false);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 从监控板读取电压及各个状态数据,电压数据基于同步AC ON/OFF信号
 /// </summary>
 /// <param name="wAddr"></param>
 /// <param name="rVolt"></param>
 /// <param name="er"></param>
 /// <returns></returns>
 public bool ReadVolt(int wAddr, out List <double> rVolt, out int rOnOff, out string er,
                      ESynON synNo = ESynON.步, ERunMode mode = ERunMode.自动线模式)
 {
     return(_devMon.ReadVolt(wAddr, out rVolt, out rOnOff, out er, synNo, mode));
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 从监控板读取电压及各个状态数据,电压数据基于同步AC ON/OFF信号
        /// </summary>
        /// <param name="wAddr"></param>
        /// <param name="rVolt"></param>
        /// <param name="er"></param>
        /// <param name="synNo"></param>
        /// <param name="mode">主控ACONOFF的工作模式:普通老化房模式</param>
        /// <returns></returns>
        public bool ReadVolt(int wAddr, out List <double> rVolt, out int rOnOff, out string er,
                             ESynON synNo = ESynON.步, ERunMode mode = ERunMode.自动线模式)

        {
            rVolt = new List <double>();

            for (int i = 0; i < 32; i++)
            {
                rVolt.Add(0);
            }

            rOnOff = 0;

            er = string.Empty;

            try
            {
                string wCmd  = string.Empty;
                string rData = string.Empty;
                string rVal  = string.Empty;

                if (mode == ERunMode.普通老化房模式)
                {
                    wCmd = "00" + "00" + "05" + "04";
                    wCmd = SOI + wCmd + CalCheckSum(wCmd) + EOI;
                    if (!com.send(wCmd, 0, out rData, out er, _TimeOut))
                    {
                        return(false);
                    }
                    System.Threading.Thread.Sleep(2000);
                }

                if (synNo == ESynON.异步)
                {
                    wCmd = wAddr.ToString("X2") + "02" + "01" + "04";
                }
                else
                {
                    wCmd = wAddr.ToString("X2") + "02" + "02" + "04";
                }

                wCmd = SOI + wCmd + CalCheckSum(wCmd) + EOI;
                int rLen = 1 + 1 + 2 + 1 + 32 * 3 + 1 + 2 + 1 + 1 + 1;
                if (!com.send(wCmd, rLen, out rData, out er, _TimeOut))
                {
                    return(false);
                }
                if (!ToCheckSum(rData, ref rVal))
                {
                    er = "检验和错误:" + rData;
                    return(false);
                }
                string pol    = rVal.Substring(32 * 4 - 1, 64);
                string status = rVal.Substring(rVal.Length - 8, 8);
                for (int i = 0; i < 32; i++)
                {
                    int valTemp = System.Convert.ToInt32(rVal.Substring(i * 4, 4), 16);
                    rVolt[i] = ((double)valTemp) / 1000;
                    if (pol.Substring(i * 2, 2) == "2D")
                    {
                        rVolt[i] *= -1;
                    }
                }
                rOnOff = System.Convert.ToInt16(status.Substring(0, 2), 16);
                return(true);
            }
            catch (Exception e)
            {
                er = e.ToString();
                return(false);
            }
        }