// 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(); //获取当前 程序结束的行 } }
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(); // 获取当前 程序结束的行 } }