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(); } }
public static bool SetFunction(絶縁抵抗試験スペック spec, int vol = 1, string コンタクトチェック = "OFF") //vol(ブザー音量)は1(Min)~3(Max)で設定すること { SendCommand("FUNCTION 2"); //IR画面に設定 if (!Query("FUN?", (data) => data == "2")) { goto 設定異常; } SendCommand("I:TES " + spec.印加電圧.ToString("F0")); //試験電圧の設定 if (!Query("I:TES?", (data) => Double.Parse(data) == spec.印加電圧)) { goto 設定異常; } SendCommand("I:LOW " + (spec.絶縁抵抗値 * 1000000).ToString() + ",1"); //下限基準値の設定 if (!Query("I:LOW?", (data) => { int i = data.IndexOf(",1"); if (i < 0) { return(false); } return(Double.Parse(data.Substring(0, i)) == spec.絶縁抵抗値 * 1000000); }) ) { goto 設定異常; } SendCommand("I:TIM " + spec.印加時間.ToString("F1") + ",1"); //試験時間の設定 if (!Query("I:TIM?", (data) => data == spec.印加時間.ToString("F1") + ",1")) { goto 設定異常; } SendCommand("PASSHOLD HOLD"); //試験時間の設定 SendCommand("I:SCAN 1," + spec.CH1); if (!Query("I:SCAN?1", (data) => data == spec.CH1)) { goto 設定異常; } SendCommand("I:SCAN 2," + spec.CH2); if (!Query("I:SCAN?2", (data) => data == spec.CH2)) { goto 設定異常; } SendCommand("I:SCAN 3," + spec.CH3); if (!Query("I:SCAN?3", (data) => data == spec.CH3)) { goto 設定異常; } SendCommand("I:SCAN 4," + spec.CH4); if (!Query("I:SCAN?4", (data) => data == spec.CH4)) { goto 設定異常; } SendCommand("I:SCAN 5," + spec.CH5); if (!Query("I:SCAN?5", (data) => data == spec.CH5)) { goto 設定異常; } SendCommand("I:SCAN 6," + spec.CH6); if (!Query("I:SCAN?6", (data) => data == spec.CH6)) { goto 設定異常; } SendCommand("I:SCAN 7," + spec.CH7); if (!Query("I:SCAN?7", (data) => data == spec.CH7)) { goto 設定異常; } SendCommand("I:SCAN 8," + spec.CH8); if (!Query("I:SCAN?8", (data) => data == spec.CH8)) { goto 設定異常; } SendCommand("I:CCH " + コンタクトチェック); SendCommand("DSE #HFF");//デバイスステータスイネーブルレジスタをFFに設定()プロテクション中は無効! if (!Query("DSE?", (data) => data == "255")) { goto 設定異常; } SendCommand("BVOL " + vol.ToString()); return(true); 設定異常: ErrorMess = ErrorMessage.TOS9200設定異常; return(false); }