arm/WindowsFormsApp1/ABBrobot.cs

147 lines
4.6 KiB
C#
Raw Permalink Normal View History

2025-02-04 20:09:10 +08:00
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;
}
}
}