///* // * Created by SharpDevelop. // * User: amkor // * Date: 5/16/2018 // * Time: 3:08 PM // * // * To change this template use Tools | Options | Coding | Edit Standard Headers. // */ //using System; //namespace Project //{ // public static class Util_DO // { // /// // /// ADLink I/O Board input status // /// // /// // /// // public static Boolean GetIOInput(eDIName pin) // { // var curValue = Pub.dio.INPUT(GetDINum(pin) - 1); // if (pin == eDIName.EMERGENCY || // pin == eDIName.PCB_PUSHER_END || // pin == eDIName.PCB_PUSHER_HOME || // pin == eDIName.PCB_IN_MGZ || // pin == eDIName.PCB_OVERLOAD || // pin == eDIName.PCB_PUSHER_OVR) // { // return !curValue; // } // else return curValue; // } // /// // /// ADLink I/O Board Output Status // /// // /// // /// // public static Boolean GetIOOutput(eDOName pin) // { // return Pub.dio.OUTPUT(GetDONum(pin) - 1); // } // /// // /// A/D Link Digital input Pin number // /// // /// // /// // public static int GetDINum(eDIName pin) // { // return (int)pin + 1; // //return Pub.setting.DI[(byte)pin]; // } // /// // /// adlink digital output in number // /// // /// // /// // public static int GetDONum(eDOName pin) // { // return (int)pin + 1; // //return Pub.setting.DO[(byte)pin]; // } // /// // /// 도어각 닫혀있는 경우 TRUE, // /// // /// // public static Boolean CheckDoorSafty() // { // var door1 = CheckDoorSafty_Front(); // var door2 = CheckDoorSafty_Rear(); // var door3 = CheckDoorSafty_Left(); // var door4 = CheckDoorSafty_Right(); // if (door1 && door2 && door3 && door4) return true; // else return false; // } // public static Boolean CheckDoorSafty_Front() // { // var door = GetIOInput(eDIName.DOOR_FRONT) || Pub.setting.DisableDoorFront; // return door; // } // public static Boolean CheckDoorSafty_Rear() // { // var door = GetIOInput(eDIName.DOOR_REAR) || Pub.setting.DisableDoorRear; // return door; // } // public static Boolean CheckDoorSafty_Left() // { // var door = GetIOInput(eDIName.DOOR_LEFT) || Pub.setting.DisableDoorLeft; // return door; // } // public static Boolean CheckDoorSafty_Right() // { // var door = GetIOInput(eDIName.DOOR_RIGHT) || Pub.setting.DisableDoorRight; // return door; // } // public static Boolean checkMGZReady() // { // var ready1 = GetIOInput(eDIName.MGZ_CLAMP_RDY1); // var ready2 = GetIOInput(eDIName.MGZ_CLAMP_RDY2); // return ready1 && ready2; // } // public static Boolean SetAIR(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // return Pub.dio.SetOutput(GetDONum(eDOName.MAIN_AIR) - 1, ON); // } // //public static Boolean SetEMGLamp(Boolean ON) // //{ // // if (Pub.dio == null || !Pub.dio.initOK) return false; // // return Pub.dio.SetOutput(GetDONum(eDOName.em) - 1, ON); // //} // public static Boolean SetPusher(eMotDir Direction) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // if (Direction == eMotDir.CW) // { // if(Util_DO.GetIOInput( eDIName.MGZ_CLAMP_RDY1)==false && // Util_DO.GetIOInput(eDIName.MGZ_CLAMP_RDY2)==false) // { // Pub.log.AddE("매거진이 없어서 푸셔 작동이 불가 합니다"); // return false; // } // Pub.dio.SetOutput(GetDONum(eDOName.PCB_PUSHER_DIR) - 1, true); // return Pub.dio.SetOutput(GetDONum(eDOName.PCB_PUSHER_RUN) - 1, true); // } // else if (Direction == eMotDir.CCW) // { // Pub.dio.SetOutput(GetDONum(eDOName.PCB_PUSHER_DIR) - 1, false); // return Pub.dio.SetOutput(GetDONum(eDOName.PCB_PUSHER_RUN) - 1, true); // } // else // { // return Pub.dio.SetOutput(GetDONum(eDOName.PCB_PUSHER_RUN) - 1, false); // } // } // public static Boolean SetMGZMotor(Boolean run) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // if (run) // { // Pub.MGZRunTime = DateTime.Now; // Pub.log.Add("MGZ In Run : " + Pub.MGZRunTime.ToString()); // return Pub.dio.SetOutput((int)eDOName.MGZ_IN, true); // } // else // { // return Pub.dio.SetOutput((int)eDOName.MGZ_IN, false); // } // } // #region "Tower Lamp" // /// // /// 타워램프버튼 작업 // /// // /// // /// // /// // public static void SetTWLamp(Boolean r, Boolean g, Boolean y) // { // if (Pub.dio == null || !Pub.dio.IsInit) return; // if (Util_DO.GetIOOutput(eDOName.TWR_GRN) != g) Pub.dio.SetOutput(GetDONum(eDOName.TWR_GRN) - 1, g); // if (Util_DO.GetIOOutput(eDOName.TWR_RED) != r) Pub.dio.SetOutput(GetDONum(eDOName.TWR_RED) - 1, r); // if (Util_DO.GetIOOutput(eDOName.TWR_YEL) != y) Pub.dio.SetOutput(GetDONum(eDOName.TWR_YEL) - 1, y); // if (Util_DO.GetIOOutput(eDOName.LED_START) != g) Pub.dio.SetOutput(GetDONum(eDOName.LED_START) - 1, g); // if (Util_DO.GetIOOutput(eDOName.LED_STOP) != r) Pub.dio.SetOutput(GetDONum(eDOName.LED_STOP) - 1, r); // if (Util_DO.GetIOOutput(eDOName.LED_RESET) != y) Pub.dio.SetOutput(GetDONum(eDOName.LED_RESET) - 1, y); // } // public static Boolean SetTwRed(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // Pub.dio.SetOutput(GetDONum(eDOName.LED_STOP) - 1, ON); // return Pub.dio.SetOutput(GetDONum(eDOName.TWR_RED) - 1, ON); // } // public static Boolean SetTwYel(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // Pub.dio.SetOutput(GetDONum(eDOName.LED_RESET) - 1, ON); // return Pub.dio.SetOutput(GetDONum(eDOName.TWR_YEL) - 1, ON); // } // public static Boolean SetTwGrn(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // Pub.dio.SetOutput(GetDONum(eDOName.LED_START) - 1, ON); // return Pub.dio.SetOutput(GetDONum(eDOName.TWR_GRN) - 1, ON); // } // #endregion // public static void ToggleRoomLight() // { // var current = Util_DO.GetIOOutput(eDOName.ROOM_LIGHT); // Pub.dio.SetOutput((int)eDOName.ROOM_LIGHT, !current); // } // public static Boolean SetBrake(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // return Pub.dio.SetOutput(GetDONum(eDOName.BRAKE_OFF) - 1, !ON); // } // public static Boolean SetBuzzer(Boolean ON) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // if (ON) // { // Pub.BuzzerTime = DateTime.Now; // if (Pub.setting.EnableBuzzer == false) return true; //부저기능OFF시 사용 안함 // } // if (ON && Pub.setting.EnableBuzzer==false) // { // Pub.log.AddAT("buzzer Disabled"); // ON = false; // } // return Pub.dio.SetOutput(GetDONum(eDOName.BUZZER) - 1, ON); // } // public static Boolean getBrakeOn() // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // return !GetIOOutput(eDOName.BRAKE_OFF); // } // public static Boolean setGripper(Boolean close) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // var rlt = Pub.dio.SetOutput(GetDONum(eDOName.PCB_GRIPPER_CLOSE) - 1, close); // if (!rlt) Pub.log.AddE("Grip Set Error vlaue=" + close.ToString()); // else // { // System.Threading.Thread.Sleep(Pub.setting.GripperOnOffDelay); // //Pub.log.Add("DELAY:GRIP:" + Pub.setting.GripperOnOffDelay); // } // return rlt; // } // public static Boolean setMGZClamp(Boolean close) // { // if (Pub.dio == null || !Pub.dio.IsInit) return false; // bool rlt1, rlt2; // if (close) // { // rlt1 = Pub.dio.SetOutput((int)eDOName.MGZ_CLAMP_OPEN, false); // rlt2 = Pub.dio.SetOutput((int)eDOName.MGZ_CLAMP_CLOSE, true); // } // else // { // rlt2 = Pub.dio.SetOutput((int)eDOName.MGZ_CLAMP_CLOSE, false); // rlt1 = Pub.dio.SetOutput((int)eDOName.MGZ_CLAMP_OPEN, true); // } // Pub.log.AddAT("gripper set close = " + close.ToString()); // if (rlt1 == false || rlt2 == false) Pub.log.AddE("Grip Set Error vlaue=" + close.ToString()); // else // { // System.Threading.Thread.Sleep(Pub.setting.GripperOnOffDelay); // // Pub.log.Add("DELAY:GRIP:" + Pub.setting.GripperOnOffDelay); // } // return rlt1 && rlt2; // } // } //}