using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using ORiN2.interop.CAO; namespace Project { public partial class Form1 : Form { private CaoEngine caoEng; private CaoWorkspaces caoWss; private CaoWorkspace caoWs; // Robot objects private CaoController caoCtrl; // Robot Controller private CaoVariable caoValI; // for I (Variable) private CaoVariable caoValF; // for F (Variable) private CaoVariable caoValD; // for D (Variable) private CaoVariable caoValV; // for V (Variable) private CaoVariable caoValP; // for P (Variable) private CaoVariable caoValJ; // for J (Variable) private CaoVariable caoValT; // for T (Variable) private CaoVariable caoValS; // for S (Variable) private CaoVariable caoValIO; // for IO (Variable) public Form1() { InitializeComponent(); } //-----------------------------Initialization---------------------------- private void cmdInit_Click(object sender, EventArgs e) { //CreateEngine caoEng = new CaoEngine(); caoWss = caoEng.Workspaces; caoWs = caoWss.Item(0); cmdInit.Enabled = false; cmdConnectRobot.Enabled = true; } // --------------------------------------------------------------- // Connect with the Robot // --------------------------------------------------------------- private void cmdConnectRobot_Click(object sender, EventArgs e) { try { // Create object and connect with VRC caoCtrl = caoWs.AddController("Robot", "CaoProv.DENSO.RC8", "", "Server=192.168.0.1"); // Create object of valiable(I,F,D,V,P,J,T,S,IO) caoValI = caoCtrl.AddVariable("I1", ""); caoValF = caoCtrl.AddVariable("F1", ""); caoValD = caoCtrl.AddVariable("D1", ""); caoValV = caoCtrl.AddVariable("V1", ""); caoValP = caoCtrl.AddVariable("P1", ""); caoValJ = caoCtrl.AddVariable("J1", ""); caoValT = caoCtrl.AddVariable("T1", ""); caoValS = caoCtrl.AddVariable("S1", ""); caoValIO = caoCtrl.AddVariable("IO128", ""); // Enable command buttons cmdConnectRobot.Enabled = false; cmdDisconnectRobot.Enabled = true; cmdValI_Read.Enabled = true; cmdValF_Read.Enabled = true; cmdValD_Read.Enabled = true; cmdValV_Read.Enabled = true; cmdValP_Read.Enabled = true; cmdValJ_Read.Enabled = true; cmdValT_Read.Enabled = true; cmdValS_Read.Enabled = true; cmdValIO_Read.Enabled = true; cmdValI_Write.Enabled = true; cmdValF_Write.Enabled = true; cmdValD_Write.Enabled = true; cmdValV_Write.Enabled = true; cmdValP_Write.Enabled = true; cmdValJ_Write.Enabled = true; cmdValT_Write.Enabled = true; cmdValS_Write.Enabled = true; cmdValIO_Write.Enabled = true; } catch (Exception ex) { cmdDisconnectRobot_Click(sender, e); MessageBox.Show(ex.Message.ToString()); } } // --------------------------------------------------------------- // disconnect from the Robot // --------------------------------------------------------------- private void cmdDisconnectRobot_Click(object sender, EventArgs e) { if (caoValI != null) { Marshal.ReleaseComObject(caoValI); caoValI = null; } if (caoValF != null) { Marshal.ReleaseComObject(caoValF); caoValF = null; } if (caoValD != null) { Marshal.ReleaseComObject(caoValD); caoValD = null; } if (caoValV != null) { Marshal.ReleaseComObject(caoValV); caoValV = null; } if (caoValP != null) { Marshal.ReleaseComObject(caoValP); caoValP = null; } if (caoValJ != null) { Marshal.ReleaseComObject(caoValJ); caoValJ = null; } if (caoValT != null) { Marshal.ReleaseComObject(caoValT); caoValT = null; } if (caoValS != null) { Marshal.ReleaseComObject(caoValS); caoValS = null; } if (caoValIO != null) { Marshal.ReleaseComObject(caoValIO); caoValIO = null; } // Disconnect from the controller if (caoCtrl != null) { CaoControllers ctrls = caoWs.Controllers; ctrls.Remove(caoCtrl.Name); Marshal.ReleaseComObject(caoCtrl); caoCtrl = null; Marshal.ReleaseComObject(ctrls); ctrls = null; } // Disable command buttons cmdConnectRobot.Enabled = true; cmdDisconnectRobot.Enabled = false; cmdValI_Read.Enabled = false; cmdValF_Read.Enabled = false; cmdValD_Read.Enabled = false; cmdValV_Read.Enabled = false; cmdValP_Read.Enabled = false; cmdValJ_Read.Enabled = false; cmdValT_Read.Enabled = false; cmdValS_Read.Enabled = false; cmdValIO_Read.Enabled = false; cmdValI_Write.Enabled = false; cmdValF_Write.Enabled = false; cmdValD_Write.Enabled = false; cmdValV_Write.Enabled = false; cmdValP_Write.Enabled = false; cmdValJ_Write.Enabled = false; cmdValT_Write.Enabled = false; cmdValS_Write.Enabled = false; cmdValIO_Write.Enabled = false; } private void cmdValI_Read_Click(object sender, EventArgs e) { try { //Reading of "I variable" lblDsp.Text = caoValI.Value.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValI_Write_Click(object sender, EventArgs e) { try { //Writing of "I variable" caoValI.Value = 1; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValF_Read_Click(object sender, EventArgs e) { try { //Reading of "F variable" lblDsp.Text = caoValF.Value.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValF_Write_Click(object sender, EventArgs e) { try { //Writing of "F variable" caoValF.Value = 1.23f; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValD_Read_Click(object sender, EventArgs e) { try { //Reading of "D variable" lblDsp.Text = caoValD.Value.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValD_Write_Click(object sender, EventArgs e) { try { //Writing of "D variable" caoValD.Value = 0.123456789; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValV_Read_Click(object sender, EventArgs e) { try { // Reading of "V variable" Single[] varV = (Single[])caoValV.Value; lblDsp.Text = varV[0].ToString() + "," + varV[1].ToString() + "," + varV[2].ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValV_Write_Click(object sender, EventArgs e) { try { //Writing of "V variable" caoValV.Value = new Single[] { 100, 200, 300 }; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValP_Read_Click(object sender, EventArgs e) { try { // Reading of "P variable" Single[] varP = (Single[])caoValP.Value; lblDsp.Text = varP[0].ToString() + "," + varP[1].ToString() + "," + varP[2].ToString() + "," + varP[3].ToString() + "," + varP[4].ToString() + "," + varP[5].ToString() + "," + varP[6].ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValP_Write_Click(object sender, EventArgs e) { try { // Writing of "P variable" caoValP.Value = new Single[] { 500, 0, 350, 180, 0, 180, 5 }; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValJ_Read_Click(object sender, EventArgs e) { try { // Reading of "J variable" Single[] varJ = (Single[])caoValJ.Value; lblDsp.Text = varJ[0].ToString() + "," + varJ[1].ToString() + "," + varJ[2].ToString() + "," + varJ[3].ToString() + "," + varJ[4].ToString() + "," + varJ[5].ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValJ_Write_Click(object sender, EventArgs e) { try { //Writing of "J variable" caoValJ.Value = new Single[] { 0, 39.52f, 95.71f, 0, 44.77f, 0 }; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValT_Read_Click(object sender, EventArgs e) { try { // Reading of "T variable" Single[] varT = (Single[])caoValT.Value; lblDsp.Text = varT[0].ToString() + "," + varT[1].ToString() + "," + varT[2].ToString() + "," + varT[3].ToString() + "," + varT[4].ToString() + "," + varT[5].ToString() + "," + varT[6].ToString() + "," + varT[7].ToString() + "," + varT[8].ToString() + "," + varT[9].ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValT_Write_Click(object sender, EventArgs e) { try { //Writing of "T variable" caoValT.Value = new Single[] { 500, 0, 300, 0, 1, 0, 0, 0, -1, 5 }; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValS_Read_Click(object sender, EventArgs e) { try { //Reading of "S variable" lblDsp.Text = (string)caoValS.Value; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValS_Write_Click(object sender, EventArgs e) { try { //Writing of "S variable" caoValS.Value = "DENSO ROBOT"; } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValIO_Read_Click(object sender, EventArgs e) { try { //Reading of "IO variable" lblDsp.Text = caoValIO.Value.ToString(); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void cmdValIO_Write_Click(object sender, EventArgs e) { try { //Writing of "IO variable" caoValIO.Value = true; // On //caoValIO.Value = false; // Off } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { cmdDisconnectRobot_Click(sender, e); // Delete CaoEngine if (caoWs != null) { Marshal.ReleaseComObject(caoWs); caoWs = null; } if (caoWss != null) { Marshal.ReleaseComObject(caoWss); caoWss = null; } if (caoEng != null) { Marshal.ReleaseComObject(caoEng); caoEng = null; } } } }