1、ABB机器人电机开关
将两个按键控件放在主窗口,text改为电机开启和电机关闭。双击电机开启按键进入程序编写。
程序如下
private void button2_Click(object sender, EventArgs e)
{
if (isConnect == true)//判断是否连接机器人
{
try
{
if (controller.OperatingMode == ControllerOperatingMode.Auto)//判断控制箱操作模式是否为自动模式
{
controller.State = ControllerState.MotorsOn;//开启电机
MessageBox.Show("电机开启成功!");
}
else
{
MessageBox.Show("请切换自动模式!");
}
}
catch (System.Exception ex)
{
MessageBox.Show("发生意外!:" + ex.Message);
}
}
}
双击电机关闭按键进入编写界面,程序如下
private void button3_Click(object sender, EventArgs e)
{
try
{
if (controller.OperatingMode == ControllerOperatingMode.Auto)
{
controller.State = ControllerState.MotorsOff;
MessageBox.Show("机器人电机关闭成功");
}
else
{
MessageBox.Show("请切换自动模式!");
}
}
catch (System.Exception ex)
{
MessageBox.Show("发生意外" + ex.Message);
}
}
4、任务、模块、程序选择
2.1 双击选择任务进入From1.cs
private void button12_Click(object sender, EventArgs e)
{
Isconnectrobot();
comboBoxtask.Items.Clear();
for (int i = 0; i < (int)tasks.Count(); i++)
{
comboBoxtask.Items.Add(tasks[i].Name);
}
isconnecttask = true;
}
private void Isconnectrobot()//验证是否连接机器人,防止代码卡死
{
if (isConnect == true)
{
}
else
{
MessageBox.Show("未识别到机器人,请连机器人!");
}
}
2.2 双击选择模块进入From1.cs
private void button13_Click(object sender, EventArgs e)
{
comboBoxmodule.Items.Clear();
if (isconnecttask == true)
{
int taskint = comboBoxtask.SelectedIndex;
Module[] modules = controller.Rapid.GetTasks()[taskint].GetModules();
for (int i = 0; i < (int)modules.Count(); i++)
{
comboBoxmodule.Items.Add(modules[i].Name);
};
}
else
{
MessageBox.Show("请指定某个任务");
}
isconnectmodule = true;
}
2.3 双击选择程序进入From1.cs
private void button14_Click(object sender, EventArgs e)
{
comboBoxroutine.Items.Clear();
if (isconnectmodule == true)
{
int taskint = comboBoxtask.SelectedIndex;
int moduleint = comboBoxmodule.SelectedIndex;
Routine[] routines1 = controller.Rapid.GetTasks()[taskint].GetModules()[moduleint].GetRoutines();
for (int i = 0; i < (int)routines1.Count(); i++)
{
comboBoxroutine.Items.Add(routines1[i].Name);
}
}
else
{
MessageBox.Show("请指定某个模块");
}
}
2.4 双击确定进入From1.cs。目的是将所选的任务、模块、程序保存。
private void button20_Click(object sender, EventArgs e)
{
taskint = comboBoxtask.SelectedIndex;
taskstring = comboBoxtask.SelectedItem.ToString();
moduleint = comboBoxmodule.SelectedIndex;
modulestring = comboBoxmodule.SelectedItem.ToString();
routineint = comboBoxtask.SelectedIndex;
routinestring = comboBoxtask.SelectedItem.ToString();
}
3、机器人速度比
机器人控制速度方法并不是调节速度,而是调节速度比,速度 = 最大速度*速度比值。当速度比值为0%的时候,速度为0。可以通过滑块控件来调节速度比值,并且设置滑块与速度实时关联,为了安全将 ABB机器人连接时设置滑块控件为0值,即速度为0。
右键滑块 -> 属性 -> 事件 -> Scroll -> 将事件函数名设置为myScrollBar1_Scroll。在Form1.cs中编写函数
private void myScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
if (isConnect == true)
{
if (controller.OperatingMode == ControllerOperatingMode.Auto)
{
controller.MotionSystem.SpeedRatio = Convert.ToInt32(myScrollBar1.Value);//myscrollBar1为滑块控件名
label1.Text = "速度设定值:" + controller.MotionSystem.SpeedRatio.ToString() + "%";
}
else
{
MessageBox.Show("请打开自动模式!");
}
}
}
4、查看点坐标变量
双击查看坐标值
函数为
RapidSymbolSearchProperties date = RapidSymbolSearchProperties.CreateDefault();
date.Types = SymbolTypes.Data;
date.SearchMethod = SymbolSearchMethod.Block;
date.Recursive = true;
date.InUse = false;
date.LocalSymbols = false;
RapidSymbol[] symbols = tasks[taskint].SearchRapidSymbol(date, "robtarget", string.Empty);
this.comboBox5.Items.Clear();
foreach (RapidSymbol symbol in symbols)
{
try
{
RapidData rD = tasks[taskint].GetRapidData(symbol);
comboBox5.Items.Add(rD.Name);
}
catch (Exception ex)
{
return;
}
}
if (comboBox5.Items == null)
{
comboBox5.Text = "没有坐标变量";
}
else
{
comboBox5.SelectedIndex = 0;
}
双击确定控件函数为
private void button18_Click(object sender, EventArgs e)
{
if (comboBoxtask.SelectedItem.ToString() != null || comboBox5.SelectedItem.ToString() != null)
{
RapidSymbolSearchProperties date = RapidSymbolSearchProperties.CreateDefault();
date.Types = SymbolTypes.Data;
date.SearchMethod = SymbolSearchMethod.Block;
date.Recursive = true;
date.InUse = false;
date.LocalSymbols = false;
RapidSymbol[] symbols = tasks[taskint].SearchRapidSymbol(date, "robtarget", string.Empty);
this.listView3.Items.Clear();
foreach (RapidSymbol symbol in symbols)
{
try
{
RapidData rD = tasks[taskint].GetRapidData(symbol);
if (rD.Name == comboBox5.SelectedItem.ToString())
{
ListViewItem item2 = new ListViewItem(symbol.Name);
if (rD.Value != null)
{
item2.SubItems.Add(rD.Value.ToString());
}
else
{
item2.SubItems.Add("0");
}
item2.Tag = symbol;
this.listView3.Items.Add(item2);
}
else
{
continue;
}
}
catch (Exception ex)
{
return;
}
}
}
else
{
MessageBox.Show("请选择任务!");
}
}