public static int Count;//高電圧印加までの時間カウントダウン用 //専用メソッド◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ //************************************************************************** //検査スペック、作業者一覧のロード(parameter.odsファイルより読み出し) //引数:なし //戻値:bool値 //************************************************************************** public static bool LoadParameter() { OpenOffice calc = new OpenOffice(); Action <string> splashMessage = (mess) => { if (SplashForm._form != null) { SplashForm._form.SetLabel(mess); } }; try { //すべての要素をクリア State.Parameter耐圧スペックBcr.Clear(); State.Parameter絶縁スペックBcr.Clear(); State.Parameter耐圧スペックQ890.Clear(); State.Parameter絶縁スペックQ890.Clear(); State.Parameter耐圧スペックAUR.Clear(); State.Parameter絶縁スペックAUR.Clear(); State.ParameterOperator.Clear(); //parameterファイルを開く calc.OpenFile(Constants.ParameterFilePath); int i = 0;//行インデックス // sheetを取得 calc.SelectSheet("SpecBcr"); //耐電圧試験 規格値の読み出し splashMessage("BC-R耐電圧試験 規格値のロード・・・"); i = 2;//3行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 耐電圧試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter耐圧スペックBcr.Add(spec); i++; } //絶縁抵抗試験 規格値の読み出し splashMessage("BC-R絶縁抵抗試験 規格値のロード・・・"); i = 10;//11行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 絶縁抵抗試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter絶縁スペックBcr.Add(spec); i++; } // sheetを取得 calc.SelectSheet("SpecQ890"); //耐電圧試験 規格値の読み出し splashMessage("Q890耐電圧試験 規格値のロード・・・"); i = 2;//3行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 耐電圧試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter耐圧スペックQ890.Add(spec); i++; } //絶縁抵抗試験 規格値の読み出し splashMessage("Q890絶縁抵抗試験 規格値のロード・・・"); i = 10;//11行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 絶縁抵抗試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter絶縁スペックQ890.Add(spec); i++; } // sheetを取得 calc.SelectSheet("SpecAur"); //耐電圧試験 規格値の読み出し splashMessage("AUR耐電圧試験 規格値のロード・・・"); i = 2;//3行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 耐電圧試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 漏れ電流 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter耐圧スペックAUR.Add(spec); i++; } //絶縁抵抗試験 規格値の読み出し splashMessage("AUR絶縁抵抗試験 規格値のロード・・・"); i = 10;//11行目から読み込む for (; ;) { Application.DoEvents(); if (calc.sheet.getCellByPosition(0, i).getFormula() == "") { break; } var spec = new 絶縁抵抗試験スペック() { ステップ = calc.sheet.getCellByPosition(0, i).getFormula(), CH1 = calc.sheet.getCellByPosition(1, i).getFormula(), CH2 = calc.sheet.getCellByPosition(2, i).getFormula(), CH3 = calc.sheet.getCellByPosition(3, i).getFormula(), CH4 = calc.sheet.getCellByPosition(4, i).getFormula(), CH5 = calc.sheet.getCellByPosition(5, i).getFormula(), CH6 = calc.sheet.getCellByPosition(6, i).getFormula(), CH7 = calc.sheet.getCellByPosition(7, i).getFormula(), CH8 = calc.sheet.getCellByPosition(8, i).getFormula(), 印加電圧 = Double.Parse(calc.sheet.getCellByPosition(9, i).getFormula()), 印加時間 = Double.Parse(calc.sheet.getCellByPosition(10, i).getFormula()), 絶縁抵抗値 = Double.Parse(calc.sheet.getCellByPosition(11, i).getFormula()) }; Parameter絶縁スペックAUR.Add(spec); i++; } // sheetを取得 "OperatorName" calc.SelectSheet("OperatorName"); //作業者一覧の読み出し splashMessage("作業者一覧ののロード・・・"); i = 1;//行インデックス for (; ;) { Application.DoEvents(); string name = calc.sheet.getCellByPosition(1, i).getFormula(); if (name == "予約" || i == 11) { break; } ParameterOperator.Add(name); i++; } return(true); } catch { return(false); } finally { calc.CloseFile(); } }
//************************************************************************** //TOS9200の試験設定 //引数:なし //戻値:なし //************************************************************************** public static bool SetFunction(耐電圧試験スペック spec, int vol = 1, string コンタクトチェック = "OFF")//vol(ブザー音量)は1(Min)~3(Max)で設定すること { //設定 SendCommand("FUNCTION 0"); //ACW画面に設定 if (!Query("FUN?", (data) => data == "0")) { goto 設定異常; } SendCommand("A:FREQ 50"); //周波数50Hzに設定(固定) if (!Query("A:FREQ?", (data) => data == "50")) { goto 設定異常; } SendCommand("A:TES " + spec.印加電圧.ToString("0.00E0"));//試験電圧の設定 if (!Query("A:TES?", (data) => Double.Parse(data) == spec.印加電圧)) { goto 設定異常; } SendCommand("A:UPP " + (spec.漏れ電流 * 0.001).ToString("0.00E0")); //上限基準値の設定 if (!Query("A:UPP?", (data) => Double.Parse(data) == (spec.漏れ電流 * 0.001))) { goto 設定異常; } SendCommand("A:TIM " + spec.印加時間.ToString("F1") + ",1"); //試験時間の設定 if (!Query("A:TIM?", (data) => data == spec.印加時間.ToString("F1") + ",1")) { goto 設定異常; } SendCommand("PASSHOLD HOLD"); //試験時間の設定 SendCommand("A:SCAN 1," + spec.CH1); if (!Query("A:SCAN?1", (data) => data == spec.CH1)) { goto 設定異常; } SendCommand("A:SCAN 2," + spec.CH2); if (!Query("A:SCAN?2", (data) => data == spec.CH2)) { goto 設定異常; } SendCommand("A:SCAN 3," + spec.CH3); if (!Query("A:SCAN?3", (data) => data == spec.CH3)) { goto 設定異常; } SendCommand("A:SCAN 4," + spec.CH4); if (!Query("A:SCAN?4", (data) => data == spec.CH4)) { goto 設定異常; } SendCommand("A:SCAN 5," + spec.CH5); if (!Query("A:SCAN?5", (data) => data == spec.CH5)) { goto 設定異常; } SendCommand("A:SCAN 6," + spec.CH6); if (!Query("A:SCAN?6", (data) => data == spec.CH6)) { goto 設定異常; } SendCommand("A:SCAN 7," + spec.CH7); if (!Query("A:SCAN?7", (data) => data == spec.CH7)) { goto 設定異常; } SendCommand("A:SCAN 8," + spec.CH8); if (!Query("A:SCAN?8", (data) => data == spec.CH8)) { goto 設定異常; } SendCommand("A:CCH " + コンタクトチェック); SendCommand("DSE #HFF");//デバイスステータスイネーブルレジスタをFFに設定 if (!Query("DSE?", (data) => data == "255")) { goto 設定異常; } SendCommand("BVOL " + vol.ToString()); return(true); 設定異常: ErrorMess = ErrorMessage.TOS9200設定異常; return(false); }