using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text.RegularExpressions; using AR; namespace Project { public partial class FMain { //컨베이어 배출신호를 자동 해제한다.(지정시간-초) DateTime AutoConvOutTimeL = new DateTime(1982, 11, 23); DateTime AutoConvOutTimeR = new DateTime(1982, 11, 23); void AutoOutConveyor() { //동작중에만 사용한다 if (PUB.sm.Step != eSMStep.RUN) return; //컨베이어 사용시에만. if (VAR.BOOL[eVarBool.Use_Conveyor] == false) return; //모델정보 필수 if (PUB.Result.vModel == null || PUB.Result.isSetvModel == false) return; //자동 해제 시간확인 (0=비활성) var AutoReleaseSecond = PUB.Result.vModel.AutoOutConveyor; if (AutoReleaseSecond < 1) return; //현재 모델의 사용여부 확인 (UI상단에서 버튼으로 클릭가능하다) if (PUB.Result.AutoReelOut == false) return; //외부신호 대기중일때만 사용 if (PUB.iLockCVL.get((int)eILockCV.EXTBUSY) && DIO.GetIOInput(eDIName.L_CONV4)) { if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] == false) { if (AutoConvOutTimeL.Year == 1982) AutoConvOutTimeL = DateTime.Now; var ts = DateTime.Now - AutoConvOutTimeL; if (ts.TotalSeconds > AutoReleaseSecond) { PUB.log.AddI($"Auto Conveyor(L) Output - On"); VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] = true; AutoConvOutTimeL = DateTime.Now; } } } else if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] == true) { var ts = DateTime.Now - AutoConvOutTimeL; if (ts.TotalSeconds > SETTING.Data.Timeout_AutoOutConvSignal) { PUB.log.Add($"Auto Conveyor(L) Output - Off"); VAR.BOOL[eVarBool.FG_AUTOOUTCONVL] = false; AutoConvOutTimeL = new DateTime(1982, 11, 23); } } //외부신호 대기중일때만 사용 if (PUB.iLockCVR.get((int)eILockCV.EXTBUSY) && DIO.GetIOInput(eDIName.R_CONV4)) { if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] == false) { if (AutoConvOutTimeR.Year == 1982) AutoConvOutTimeR = DateTime.Now; var ts = DateTime.Now - AutoConvOutTimeR; if (ts.TotalSeconds > AutoReleaseSecond) { PUB.log.AddI($"Auto Conveyor(R) Output - On"); VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] = true; AutoConvOutTimeR = DateTime.Now; } } } else if (VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] == true) { var ts = DateTime.Now - AutoConvOutTimeR; if (ts.TotalSeconds > SETTING.Data.Timeout_AutoOutConvSignal) { PUB.log.Add($"Auto Conveyor(R) Output - Off"); VAR.BOOL[eVarBool.FG_AUTOOUTCONVR] = false; AutoConvOutTimeR = new DateTime(1982, 11, 23); } } } } }