コード例 #1
0
        // MotionPointer / ProgramPointer
        public void Textrange()
        {
            ABB.Robotics.Controllers.RapidDomain.Task[] tasks = collector.ABBController.Rapid.GetTasks();  // 获取当前任务 ****

            foreach (ABB.Robotics.Controllers.RapidDomain.Task task in tasks)
            {
                task.Motion.ToString();          // 验证是否获取了当前运动   ture 则获取成功*****
                task.Cycle.ToString();           // 获取当前 程序的执行次数

                task.ExecutionStatus.ToString(); // 获取当前程序的执行状态 *****
                statusTextBox.Text = task.ExecutionStatus.ToString();

                //MessageBox.Show("");

                ProgramPosition motion = task.MotionPointer; // 获取当权运动指针的位置 ******
                num = motion.Range.Begin.Row;                // 获取当前指针所在行数
                if (num != 0)
                {
                    intList.Add(num);
                    int[] strArray = intList.ToArray();
                }

                MinNumCode = intList.Min();
                MaxNumCode = intList.Max();

                if (MaxNumCode != MinNumCode)
                {
                    processing             = ((num - MinNumCode) / (MaxNumCode - MinNumCode)) * 100;
                    ProcessingtextBox.Text = processing.ToString("0.00") + "%";
                    Console.WriteLine($"{num},{MinNumCode},{MaxNumCode}");
                }
                else if (processing.ToString("0.00") == "100.00")
                {
                    ProcessingtextBox.Text = 0.00 + "%";
                }
                else if (MinNumCode == 0)
                {
                    ProcessingtextBox.Text = 0.00 + "%";
                }

                Console.WriteLine($"{num},{MinNumCode},{MaxNumCode}");
                // 当前运动程序的相关参数    补充
                motion.Range.End.Row.ToString();
                motion.Routine.ToString();
                motion.Module.ToString();

                //MessageBox.Show(motion.Range.Begin.Row.ToString());

                ProgramPosition programPosition = task.ProgramPointer; // 获取程序指针当前的位置 *****

                programPosition.Module.ToString();                     // 获取当前运行的模块  ****
                programPosition.Routine.ToString();                    //获取当前程序事务(程序)的位置  ****

                programPosition.Range.End.Column.ToString();           // 当前文本范围  列 与 行
                programPosition.Range.Begin.Row.ToString();            // 获取当前 程序开始的行
                programPosition.Range.End.Row.ToString();              //获取当前 程序结束的行
            }
        }
コード例 #2
0
        public float progressBar = 0;                                                               // 进度条

        // MotionPointer / ProgramPointer
        public void readTextRange(object source, ElapsedEventArgs e)
        {
            ABB.Robotics.Controllers.RapidDomain.Task[] tasks = ABBController.Rapid.GetTasks();     // 获取当前任务 ****

            foreach (ABB.Robotics.Controllers.RapidDomain.Task task in tasks)
            {
                task.Motion.ToString();                                                             // 验证是否获取了当前运动   ture 则获取成功*****
                task.Cycle.ToString();                                                              // 获取当前 程序的执行次数
                task.ExecutionStatus.ToString();                                                    // 获取当前程序的执行状态 ***** run or stop

                //MessageBox.Show("");

                ProgramPosition motion = task.MotionPointer;                                        // 获取当前运动指针 ******
                lineNum = motion.Range.Begin.Row;                                                   // 获取当前指针所在代码行的位置

                // 构建代码行的 动态列表
                if (lineNum != 0)
                {
                    intList.Add(lineNum);
                    int[] strArray = intList.ToArray();
                }

                // 获取Main 代码行数
                MinLineNum = intList.Min();
                MaxLineNum = intList.Max();

                // 动态计算当前代码运行进度
                if (MaxLineNum != MinLineNum)
                {
                    progressBar = ((lineNum - MinLineNum) / (MaxLineNum - MinLineNum)) * 100;

                    //Console.WriteLine($"{lineNum},{MinLineNum},{MaxLineNum}");
                    Console.WriteLine(lineNum);

                    return;
                }
                else if (progressBar == 100.00)
                {
                    progressBar = 0;
                    return;
                }
                else if (MinLineNum == 0)
                {
                    progressBar = 0;
                    return;
                }

                //Console.WriteLine($"{progressBar}");
                // 当前运动指针的相关参数    补充
                motion.Range.End.Row.ToString();
                motion.Routine.ToString();
                motion.Module.ToString();
                // MessageBox.Show(motion.Range.Begin.Row.ToString());

                // 当前程序指针相关参数  与 运动指针类似  参考
                ProgramPosition programPosition = task.ProgramPointer;                              // 获取程序指针当前的位置 *****
                programPosition.Module.ToString();                                                  // 获取当前运行的模块  ****
                programPosition.Routine.ToString();                                                 // 获取当前程序事务(程序)的位置  ****
                programPosition.Range.End.Column.ToString();                                        // 当前文本范围  列 与 行
                programPosition.Range.Begin.Row.ToString();                                         // 获取当前 程序开始的行
                programPosition.Range.End.Row.ToString();                                           // 获取当前 程序结束的行
            }
        }