Пример #1
0
        public void Init()
        {
            if (IsInitialized)
            {
                return;
            }

            Kill();

            // Create CaoEngine object
            caoEngine    = new CaoEngine();
            caoWorkspace = caoEngine.Workspaces.Item(0);
            //caoController = caoWorkspace.AddController("RC7", "CaoProv.DENSO.NetwoRC", "", "conn=eth:192.168.0.1");
            caoController = caoWorkspace.AddController("RC8", "CaoProv.DENSO.RC8", null,
                                                       "Server=192.168.0.1,@IfNotMember=True");
            caoRobot = caoController.AddRobot("Arm", "");


            Robot           = new DensoRobot(caoRobot);
            Robot.LogEvent += OnLogEvent;


            Controller           = new DensoController(caoController);
            Controller.LogEvent += OnLogEvent;
            Controller.ClearError();
            if ((int)Controller.ControllerCaoVars["@MODE"].Value <= 2)
            {
                MessageBox.Show("Controller not in Auto Mode! Retry!");
                Close();
                Kill();
                IsInitialized = false;
                return;
            }
            //Controller.PutAutoMode();
            Controller.Initialize();


            //RobslaveTask = new DensoTask(caoController.AddTask("robslave", null));
            //RobslaveTask.LogEvent += OnLogEvent;
            //RobslaveTask.Stop();
            //RobslaveTask.Start();

            IsInitialized = true;
        }
Пример #2
0
        public void Close()
        {
            // Release caoRobot object
            if (caoRobot != null)
            {
                caoRobot.Variables.Clear();
                Marshal.ReleaseComObject(caoRobot);
                caoRobot = null;
            }

            // Release controller object
            if (caoController != null)
            {
                caoController.Variables.Clear();
                caoController.Robots.Clear();
                Marshal.ReleaseComObject(caoController);
                caoController = null;
            }


            if (caoWorkspace != null)
            {
                caoWorkspace.Controllers.Clear();
                Marshal.ReleaseComObject(caoWorkspace);
                caoWorkspace = null;
            }

            if (caoEngine != null)
            {
                caoEngine.Workspaces.Clear();
                Marshal.ReleaseComObject(caoEngine);
                caoEngine = null;
            }

            IsInitialized = false;
        }