Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }