using System; using ABB.Robotics.Controllers; using System.Windows.Forms; using System.Drawing; using WindowsFormsApp1; using ABB.Robotics.Controllers.IOSystemDomain; using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace WindowsFormsApp1 { internal class ABBrobot { private readonly Form1 form; public ABBrobot(Form1 form) { this.form = form; } public void Motorstatus()//電機狀態 { if (Form1.controller.State == ControllerState.MotorsOn) { form.button6.Text = "關閉電機"; form.button6.BackColor = Color.Red; } else if (Form1.controller.State == ControllerState.MotorsOff) { form.button6.Text = "開啟電機"; form.button6.BackColor = Color.Transparent; } } public void Openmotor()//開電機 { if (Form1.isConnect == true)//判斷是否連接機器人 { try { if (Form1.controller.OperatingMode == ControllerOperatingMode.Auto)//判斷控制箱操作模式是否為自動模式 { form.button6.Text = "關閉電機"; form.button6.BackColor = Color.Red; Form1.controller.State = ControllerState.MotorsOn;//開啟電機 MessageBox.Show("電機開啟成功"); } else { MessageBox.Show("請切換自動模式!"); } } catch (System.Exception ex) { MessageBox.Show("發生意外!!:" + ex.Message); } } else { MessageBox.Show("未識別到機器人,請連接機器人!"); } } public void Closemotor()//關電機 { if (Form1.isConnect == true)//判斷是否連接機器人 { try { if (Form1.controller.OperatingMode == ControllerOperatingMode.Auto)//判斷控制箱操作模式是否為自動模式 { form.button6.Text = "開啟電機"; form.button6.BackColor = Color.Transparent; Form1.controller.State = ControllerState.MotorsOff;//關閉電機 MessageBox.Show("電機關閉成功"); } else { MessageBox.Show("請切換自動模式!"); } } catch (System.Exception ex) { MessageBox.Show("發生意外!!:" + ex.Message); } } else { MessageBox.Show("未識別到機器人,請連接機器人!"); } } public void Isconnectrobot()//驗證是否連接機器人,防止代碼卡死 { if (Form1.isConnect == true) { } else { MessageBox.Show("未識別到機器人,請連機器人"); Environment.Exit(0); // 停止程序并退出 } } public void IO() { if (form.comboBox5.SelectedIndex != -1) { DigitalSignal digitalSignal = (DigitalSignal)Form1.controller.IOSystem.GetSignal(form.comboBox5.Text); if (digitalSignal != null) { try { if (digitalSignal.Value == 0) { digitalSignal.Value = 1; MessageBox.Show(form.comboBox5.Text + "值改為1"); } else { digitalSignal.Value = 0; MessageBox.Show(form.comboBox5.Text + "值改為0"); } } catch (Exception) { MessageBox.Show("沒有權限"); } } } else { MessageBox.Show("請選取IO"); } //GroupSignal groupSignal = (GroupSignal)controller.IOSystem.GetSignal("GO_8_15"); //groupSignal.Value = 250; } } }