public static string LoadModuleFromFile(string moduleFilePath) { //Get Station object Station station = Project.ActiveProject as Station; //Check for existance of Module if (System.IO.File.Exists(moduleFilePath)) { try { RsTask task = station.ActiveTask; if (task != null) { RsIrc5Controller rsIrc5Controller = (RsIrc5Controller)task.Parent; ABB.Robotics.Controllers.Controller controller = new ABB.Robotics.Controllers.Controller(new Guid(rsIrc5Controller.SystemId.ToString())); if (controller != null) { //Request Mastership using (ABB.Robotics.Controllers.Mastership m = ABB.Robotics.Controllers.Mastership.Request(controller.Rapid)) { if (controller.Rapid.ExecutionStatus == ABB.Robotics.Controllers.RapidDomain.ExecutionStatus.Stopped) { //Load Module if Rapid Execution State is stopped ABB.Robotics.Controllers.RapidDomain.Task vTask = controller.Rapid.GetTask(task.Name); bool loadResult = vTask.LoadModuleFromFile(moduleFilePath, ABB.Robotics.Controllers.RapidDomain.RapidLoadMode.Replace); Thread.Sleep(1000); } } } } } catch (ABB.Robotics.GeneralException gex) { Logger.AddMessage(new LogMessage(gex.Message.ToString())); } catch (Exception ex) { Logger.AddMessage(new LogMessage(ex.Message.ToString())); } } return("Loading module: " + moduleFilePath); }
public static bool LoadProgramFromFile(string filePath) { bool result = false; Project.UndoContext.BeginUndoStep("LoadProgramFromFile"); //Get Station object #region LoadProgramFromFileStep1 Station station = Project.ActiveProject as Station; #endregion //Check for existance of Program if (System.IO.File.Exists(filePath)) { try { RsTask task = station.ActiveTask; if (task != null) { //Get RsIrc5Controller instance #region LoadProgramFromFileStep2 RsIrc5Controller rsIrc5Controller = (RsIrc5Controller)task.Parent; //Get virtual controller instance from RsIrc5Controller ABB.Robotics.Controllers.Controller controller = new ABB.Robotics.Controllers.Controller(new Guid(rsIrc5Controller.SystemId.ToString())); //get task ABB.Robotics.Controllers.RapidDomain.Task vTask = controller.Rapid.GetTask(task.Name); #endregion //Request Mastership #region LoadProgramFromFileStep3 using (ABB.Robotics.Controllers.Mastership m = ABB.Robotics.Controllers.Mastership.Request(controller.Rapid)) #endregion { if (controller.Rapid.ExecutionStatus == ABB.Robotics.Controllers.RapidDomain.ExecutionStatus.Stopped) { //Load Program if Rapid Execution is stopped #region LoadProgramFromFileStep4 vTask.LoadProgramFromFile(filePath, ABB.Robotics.Controllers.RapidDomain.RapidLoadMode.Replace); #endregion System.Threading.Thread.Sleep(1000); result = true; } } } } catch (ABB.Robotics.GeneralException gex) { Logger.AddMessage(new LogMessage(gex.Message.ToString())); Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback); result = false; } catch (Exception ex) { Logger.AddMessage(new LogMessage(ex.Message.ToString())); Project.UndoContext.CancelUndoStep(CancelUndoStepType.Rollback); result = false; } finally { Project.UndoContext.EndUndoStep(); } } return(result); }