147 lines
4.6 KiB
C#
147 lines
4.6 KiB
C#
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|