public bool HasRobotFault(ref string message, ref MvRobotAlarmInfo alarmInfo) { //************IMPORTANT*************************************************// //UO[1~20] address has been mapping to DI[1~20] address at addr.22 //AND using BGLogic assign DI[1]~DI[20] to R[21]~R[40] respectivly //If you wanna read UO[1], plz read R[21] and so on //********************************************************************** object UO6Value = (byte)0; bool IsReadSuccess = false; //1:有err 0:normal mobjDataTable.Refresh(); IsReadSuccess = mobjNumReg.GetValue(26, ref UO6Value); if (!IsReadSuccess) { throw new Exception("Read Fail"); } if ((int)UO6Value == 1) { alarmInfo = GetRobotAlarm(); message = "Robot Err Occur !"; HasRobotFaultStatus = true; //if (RobotFaultStatus != almInfo.Result) { this.Equipment.IO_Switch("LaserIO", DeviceSwitch.OFF); } } else { message = "Success"; HasRobotFaultStatus = false; //if (RobotFaultStatus != almInfo.Result) { this.Equipment.IO_Switch("LaserIO", DeviceSwitch.ON); } } return(HasRobotFaultStatus); }
public MvFanucRobotInfo GetCurrRobotInfo() { lock (lockCurRobotInfo) { //short ValidC = 0, ValidJ = 0; // 移除未使用的變數。by YMWANGN, 2016/11/17。 //Alarm TEST var msg = ""; var alarmInfo = new MvRobotAlarmInfo(); HasRobotFault(ref msg, ref alarmInfo); var robotInfo = new MvFanucRobotInfo(); mobjCurPosUF.GetValue(ref robotInfo.posArray, ref robotInfo.configArray, ref robotInfo.jointArray, ref robotInfo.userFrame, ref robotInfo.userTool, ref robotInfo.validC, ref robotInfo.validJ); robotInfo.robotTime = DateTime.Now; robotInfo.isReachTarget = this.MoveIsComplete(); return(robotInfo); } }
/// <summary> /// must 用thread /// </summary> /// <param name="Target"></param> /// <param name="_SelectCorJ"></param> /// <param name="_SelectOfstOrPos"></param> /// <param name="_IsMoveUT"></param> /// <param name="Speed"></param> /// <returns></returns> public bool Pns0101MoveStraightSync(Array Target, int _SelectCorJ, int _SelectOfstOrPos, int _IsMoveUT, int Speed) { Pns0101MoveStraightAsync(Target, _SelectCorJ, _SelectOfstOrPos, _IsMoveUT, Speed); while (this.MoveIsComplete()) { m_currRobotInfo = GetCurrRobotInfo(); var msg = ""; var alarmInfo = new MvRobotAlarmInfo(); if (HasRobotFault(ref msg, ref alarmInfo)) { break; } Thread.Sleep(100); } this.MoveCompeleteReply(); return(true); }
public MvRobotAlarmInfo GetRobotAlarm() { MvRobotAlarmInfo alminfo = new MvRobotAlarmInfo(); mobjDataTable.Refresh(); mobjAlarm.GetValue( 1, ref alminfo.AlarmID, ref alminfo.AlarmNumber, ref alminfo.CauseAlarmID, ref alminfo.CauseAlarmNumber, ref alminfo.Severity, ref alminfo.Year, ref alminfo.Month, ref alminfo.Day, ref alminfo.Hour, ref alminfo.Minute, ref alminfo.Second, ref alminfo.AlarmMessage, ref alminfo.CauseAlarmMessage, ref alminfo.SeverityMessage ); return(alminfo); }