LineSolderingRobot_Partial.cs 2.4 KB
using URSoldering.Common;
using URSoldering.LoadCSVLibrary;
using System; 

namespace URSoldering.DeviceLibrary
{
    public partial class URSolderingRobot
    {
        public DateTime LastStartWeldTime = DateTime.Now;
        public DateTime LastEndWeldTime = DateTime.Now;
        public bool IsWeld = false;
        public delegate void GetCode();
        public   event GetCode GetCodeFun;
         
        public bool IsAutoRun = false;
        
        private void BusyProcess()
        { 
            if (LineStep.moveStep.Equals(MoveStep.BUSY01_Weld))
            { 
                if (WeldRobotBean.IsInWeld.Equals(false))
                {
                    LastEndWeldTime = DateTime.Now;
                    TimeSpan span = LastEndWeldTime - LastStartWeldTime;
                    if (BoardManager.CurrBoard.WeldTime.TotalSeconds <= 0)
                    {
                        BoardManager.CurrBoard.WeldTime = span;
                    }
                    else
                    {
                        BoardManager.CurrBoard.WeldTime = new TimeSpan(0, 0, (int)(BoardManager.CurrBoard.WeldTime.TotalSeconds + span.TotalSeconds) / 2);
                    }
                    BoardManager.Update(BoardManager.CurrBoard);
                    LogUtil.info("Busy处理:" + "焊接结束,焊接耗时" + FormUtil.GetSpanStr(span) + ",累积平均耗时" + FormUtil.GetSpanStr(BoardManager.CurrBoard.WeldTime) + ",阻挡气缸下降");
                    LineStep.EndMove();
                    Status = RobotStatus.Runing; 
                }
            } 
        }
     
        
        /// <summary>
        /// 判断是否还有未完成的工作
        /// </summary>
        public bool NeedWork()
        {
            if (Status > RobotStatus.Wait)
            { 
                if (WeldRobotBean.WeldMoveStep.moveType.Equals(MoveType.Weld))
                {
                    return true;
                } 
            }
            return false;
        }
        
        private void Alarm(AlarmType alarmType)
        {
            this.alarmType = alarmType;
            if (AlarmType.SuddenStop.Equals(alarmType))
            {
                KNDIOMove(IO_Type.AlarmSingle, IO_VALUE.HIGH);
                WarnMsg = "收到急停信号";
                WeldRobotBean.Alarm(AlarmType.SuddenStop); 
                SendWireManager.Release();
                StopMove();
            }
        }
    }

}