/// <summary> /// /// </summary> /// <param name="item"></param> /// <returns></returns> public static ResultGridItem FromTestItemInfo(TestItemInfo item) { ResultGridItem result = new ResultGridItem(); result.ItemName = item.ItemName; result.UnitType = item.UnitType; result.ItemUnit = item.ItemUnit; result.LowerLimit = item.LowerValue; result.UpperLimit = item.UpperValue; result.SerialNumber = myGlobal.dutSerialNumber; return(result); }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <returns></returns> public static bool connect_Multimeter(ref ResultGridItem Item) { try { if (myGlobal.meterDevice == null) { myGlobal.meterDevice = new Multimeter(); } if (myGlobal.meterDevice.IsConnected == false) { int r = myGlobal.meterDevice.LoadLibrary(myGlobal.multimeterInfo.DLLFile, InstrumentType.Meter); if (r == 0) { int kq = _openDevice(myGlobal.meterDevice, myGlobal.multimeterInfo); if (kq == 0) { if (myGlobal.meterDevice.IsConnected == false) { Item.ItemMessage = "can't connect to multimeter"; return(false); } else { return(true); } } else { Item.ItemMessage = "can't open multimeter"; return(false); } } else { Item.ItemMessage = "can't load file dll multimeter"; return(false); } } else { return(true); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <returns></returns> public static bool connect_Switch_Card(ref ResultGridItem Item) { try { if (myGlobal.switchDevice == null) { myGlobal.switchDevice = new SwitchCard(); } if (myGlobal.switchDevice.IsConnected == false) { int r = myGlobal.switchDevice.LoadLibrary(myGlobal.switchcardInfo.DLLFile, InstrumentType.Switcher); if (r == 0) { int kq = _openDevice(myGlobal.switchDevice, myGlobal.switchcardInfo); if (kq == 0) { if (myGlobal.switchDevice.IsConnected == false) { Item.ItemMessage = "can't connect to switch card"; return(false); } else { return(true); } } else { Item.ItemMessage = "can't open switch card"; return(false); } } else { Item.ItemMessage = "can't load file dll switch card"; return(false); } } else { return(true); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <returns></returns> public static bool connect_Power_Supply(ref ResultGridItem Item) { try { if (myGlobal.powerDevice == null) { myGlobal.powerDevice = new PowerSupply(); } if (myGlobal.powerDevice.IsConnected == false) { int r = myGlobal.powerDevice.LoadLibrary(myGlobal.powersupplyInfo.DLLFile, InstrumentType.Power); if (r == 0) { int kq = _openDevice(myGlobal.powerDevice, myGlobal.powersupplyInfo); if (kq == 0) { if (myGlobal.powerDevice.IsConnected == false) { Item.ItemMessage = "can't connect to power supply"; return(false); } else { return(config_Power_Supply(ref Item)); } } else { Item.ItemMessage = "can't open power supply"; return(false); } } else { Item.ItemMessage = "can't load file dll power supply"; return(false); } } else { return(true); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <returns></returns> public static bool set_Power_Supply_OFF(ref ResultGridItem Item) { try { int r = myGlobal.powerDevice.set_Output_State(false); if (r == 0) { myGlobal.powerDevice_Output_State = false; return(true); } else { Item.ItemMessage = "Can't off power supply"; return(false); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <param name="info"></param> /// <returns></returns> public static bool config_Switch_Card(ref ResultGridItem Item, TestItemInfo info) { try { int s = 0; //close specified channel and com in bank1 //-------------------- //s += myGlobal.switchDevice.Set_Bank_Open(1); //s += myGlobal.switchDevice.Set_Channel_Close(1, int.Parse(info.Bank1)); //close specified channel and com in bank2 //-------------------- //s += myGlobal.switchDevice.Set_Bank_Open(2); //s += myGlobal.switchDevice.Set_Channel_Close(2, int.Parse(info.Bank2)); //close specified channel and com in Bank1 && Bank2 //-------------------- s = myGlobal.switchDevice.Set_Channel_Close(1, int.Parse(info.Bank1), int.Parse(info.Bank2)); if (s == 0) { return(true); } else { Item.ItemMessage = "Can't ON/OFF switch card"; return(false); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }
public static int Validating(TestItemInfo itemtest) { int count = 0; REP: Stopwatch st = new Stopwatch(); int err = 0; double value = double.MinValue; bool kq = false; itemtest.ItemResult = "wait"; ResultGridItem resultItem = Base.FromTestItemInfo(itemtest); st.Start(); count++; try { myGlobal.debugLog.SystemLog += string.Format("~ try time is {0}/{1}\r\n", count, itemtest.RetryTime); //0. kiểm tra thông tin cài đặt item test //.............1. kiểm tra kết nối tới máy đo...............................// //Switch card kq = connect_Switch_Card(ref resultItem); myGlobal.debugLog.SystemLog += string.Format("~ check connection to switch card ... {0}\r\n", kq == true ? "Connected" : "Disconnected"); if (!kq) { err = -1; goto END; } //multimeter kq = connect_Multimeter(ref resultItem); myGlobal.debugLog.SystemLog += string.Format("~ check connection to multimeter ... {0}\r\n", kq == true ? "Connected" : "Disconnected"); if (!kq) { err = -1; goto END; } //power supply if (myGlobal.settingInfo.EnablePower.ToLower().Contains("yes")) { kq = connect_Power_Supply(ref resultItem); myGlobal.debugLog.SystemLog += string.Format("~ check connection to power supply ... {0}\r\n", kq == true ? "Connected" : "Disconnected"); if (!kq) { err = -1; goto END; } } //..............2. cấu hình máy đo...........................................// if (itemtest.IsPower.ToLower().Contains("true")) { kq = config_Switch_Card(ref resultItem, itemtest); myGlobal.debugLog.SystemLog += string.Format("~ config close channel switch card ... {0}\r\n", kq == true ? "PASS" : "FAIL"); if (!kq) { err = 2; goto END; } if (myGlobal.settingInfo.EnablePower.ToLower().Contains("yes")) { //output power supply if (!myGlobal.powerDevice_Output_State) { kq = set_Power_Supply_ON(ref resultItem); myGlobal.debugLog.SystemLog += string.Format("~ set power supply output ... {0}\r\n", kq == true ? "PASS" : "FAIL"); if (!kq) { err = 4; goto END; } } } } else { if (myGlobal.settingInfo.EnablePower.ToLower().Contains("yes")) { //off power supply if (myGlobal.powerDevice_Output_State) { kq = set_Power_Supply_OFF(ref resultItem); myGlobal.debugLog.SystemLog += string.Format("~ set power supply off ... {0}\r\n", kq == true ? "PASS" : "FAIL"); if (!kq) { err = 4; goto END; } } } kq = config_Switch_Card(ref resultItem, itemtest); myGlobal.debugLog.SystemLog += string.Format("~ config close channel switch card ... {0}\r\n", kq == true ? "PASS" : "FAIL"); if (!kq) { err = 2; goto END; } } //3. wait contact relay stable myGlobal.debugLog.SystemLog += string.Format("~ wait switch card contact relay stable {0} ms\r\n", myGlobal.switchcardInfo.StableTime); if (myGlobal.switchcardInfo.StableTime > 0) { Thread.Sleep(myGlobal.switchcardInfo.StableTime); } ////4. get limit double ll = double.TryParse(itemtest.LowerValue, out ll) == true ? ll : 0; double ul = double.TryParse(itemtest.UpperValue, out ul) == true ? (ul == -1 ? double.MaxValue : ul) : double.MaxValue; ll = ll != double.MaxValue && ll != double.MinValue ? ll * Base.UnitTypeToDouble(itemtest.UnitType) : ll; ul = ul != double.MaxValue && ul != double.MinValue ? ul * Base.UnitTypeToDouble(itemtest.UnitType) : ul; //5. Đo và lấy dữ liệu kết quả từ máy đo int r = int.MinValue; string mrange = Base.RangeToMultimeterRange(itemtest.ItemUnit, itemtest.Range); int wait = int.Parse(itemtest.WaitTime); int meastime = int.Parse(itemtest.MeasureTime); switch (itemtest.ItemUnit) { case "R": { r = myGlobal.meterDevice.get_TwoWire_Resistance_Value(meastime, wait, mrange, out value); break; } //Resistance 2 wires case "D": { r = myGlobal.meterDevice.get_Diode_Value(meastime, wait, mrange, out value); break; } //Diode case "V": { r = myGlobal.meterDevice.get_DC_Voltage_Value(meastime, wait, mrange, out value); break; } //DC Voltage case "A": { value = double.TryParse(myGlobal.powerDevice.get_Current_Actual_Value(), out value) == true ? value : 0; break; } //DC Current case "Co": { r = myGlobal.meterDevice.get_Continuity_Value(meastime, wait, mrange, out value); break; } //Continuity case "Ca": { r = myGlobal.meterDevice.get_Capacitance_Value(meastime, wait, mrange, out value); break; } //Capacitance case "L": { r = myGlobal.meterDevice.get_TwoWire_Resistance_Value(meastime, wait, mrange, out value); break; } // case "Vac": { r = myGlobal.meterDevice.get_AC_Voltage_Value(meastime, wait, mrange, out value); break; } //AC voltage case "Aac": { r = myGlobal.meterDevice.get_AC_Current_Value(meastime, wait, mrange, out value); break; } //AC current case "Freq": { r = myGlobal.meterDevice.get_Frequency_Voltage_Value(meastime, wait, mrange, out value); break; } //Frequency case "R4": { r = myGlobal.meterDevice.get_FourWire_Resistance_Value(meastime, wait, mrange, out value); break; } //Resistance 4 wires default: break; } myGlobal.debugLog.SystemLog += string.Format("~ get measured value from multimeter ... {0}\r\n", r == 0 ? "PASS" : "FAIL"); if (r != 0) { resultItem.ItemMessage = "Can't get measured value from multimeter"; err = 3; goto END; } //6. Phán định pass/fail resultItem.NumValue = value.ToString(); myGlobal.debugLog.SystemLog += string.Format("~ Measured value ... {0}\r\n", value); myGlobal.debugLog.SystemLog += string.Format("~ Lower limit ... {0}\r\n", ll); myGlobal.debugLog.SystemLog += string.Format("~ Upper limit ... {0}\r\n", ul); if (value < ll || value > ul) { resultItem.ItemMessage = itemtest.ErrorMessage; err = 1; goto END; } else { resultItem.ItemMessage = itemtest.GoodMessage; err = 0; } } catch (Exception ex) { resultItem.ItemMessage = ex.Message; err = -1; //Lỗi tham số cài đặt goto END; } //Hiển thị kết quả đo END: st.Stop(); resultItem.TestTime = st.ElapsedMilliseconds.ToString(); myGlobal.debugLog.SystemLog += string.Format("~ Result = {0}\r\n", err == 0 ? "PASS" : "FAIL"); resultItem.ItemResult = itemtest.ItemResult = err == 0 ? "passed" : "failed"; resultItem.ErrorCode = err.ToString(); if (err != 0 && int.Parse(itemtest.RetryTime) > 1) { resultItem.RetryTime = count.ToString(); } else { if (count > 1) { resultItem.RetryTime = count.ToString(); } } App.Current.Dispatcher.Invoke(new Action(() => { myGlobal.resultGridItems.Add(resultItem); })); if (count < int.Parse(itemtest.RetryTime) && err != 0) { goto REP; } else { return(err); } }
/// <summary> /// /// </summary> /// <param name="Item"></param> /// <returns></returns> public static bool config_Power_Supply(ref ResultGridItem Item) { try { int r = 0; //preset r += myGlobal.powerDevice.Preset(); Thread.Sleep(1000); //set volt range r += myGlobal.powerDevice.set_Voltage_Range(double.Parse(myGlobal.powersupplyInfo.OutVoltage)); Thread.Sleep(1000); //set output value r += myGlobal.powerDevice.set_Output_Value(double.Parse(myGlobal.powersupplyInfo.OutVoltage), double.Parse(myGlobal.powersupplyInfo.OutCurrent)); Thread.Sleep(500); //set protect value r += myGlobal.powerDevice.set_Current_Protection_Level(double.Parse(myGlobal.powersupplyInfo.OverCurrent)); Thread.Sleep(500); r += myGlobal.powerDevice.set_Voltage_Protection_Level(double.Parse(myGlobal.powersupplyInfo.OverVoltage)); Thread.Sleep(500); //set protect flag r += myGlobal.powerDevice.set_Voltage_Protection_State(myGlobal.powersupplyInfo.IsProtectVolt == "True" ? true : false); Thread.Sleep(500); r += myGlobal.powerDevice.set_Current_Protection_State(myGlobal.powersupplyInfo.IsProtectCurrent == "True" ? true : false); Thread.Sleep(500); //set step r += myGlobal.powerDevice.set_Voltage_Step(double.Parse(myGlobal.powersupplyInfo.VoltStep)); Thread.Sleep(500); r += myGlobal.powerDevice.set_Current_Step(double.Parse(myGlobal.powersupplyInfo.CurrentStep)); Thread.Sleep(500); //set trigger r += myGlobal.powerDevice.set_Trigger_Delay(double.Parse(myGlobal.powersupplyInfo.TriggerDelay)); Thread.Sleep(500); //remote myGlobal.powerDevice.Remote(); Thread.Sleep(500); if (r == 0) { return(true); } else { Item.ItemMessage = "Can't configure power supply"; return(false); } } catch (Exception ex) { Item.ItemMessage = ex.Message; return(false); } }