全新的V2.2版本发布了,根据实际需要后面会完善基本功能,并开发出更实用的功能模块,欢迎小伙伴们留言。详细更新内容介绍如下:
更新1:新增移动机器人界面,新增加载模块功能,移动机器人需要先加载指定Rapid程序模块。
更新2:新增替换模块功能,可以替换相同的模块名,如果不相同则为新增模块。
更新3:新增恢复系统备份功能,对已备份的系统程序进行恢复,此阶段上位机会跟机器人控制器断开连接,需要重新连接一下机器人控制器。
更新4:新增机器人系统备份功能,对当前机器人系统任务模块进行备份。
更新5:新增机器人线性运动,加载指定模块后,运行程序,可根据输入指定距离进行线性运动,分别是空间中X、Y、Z方向上的移动。
更新6:新增机器人单轴运动,加载指定模块后,运行程序,可根据输入指定距离进行单轴运动,分别对应机器人6个轴的运动。
更新7:界面优化,新增机器人图标Logo,等其它代码bug优化。
按照国际惯例 附上部分源码:
private void btnChooseFile_Click(object sender, EventArgs e)
{
try
{
if (this.controller.Connected == true)
{
FolderBrowserDialog folder = new FolderBrowserDialog();
folder.Description = "选择系统恢复路径";
RestSysBackupPathtextBox.Text = "";
if (folder.ShowDialog() == DialogResult.OK)
{
RestSysBackupPathtextBox.Text = folder.SelectedPath;//将文件路径和文件名拼接起来
errLog = Robot_Control.errLogger(errLog, "[msg]:\t" + "加载系统备份路径为 " + RestSysBackupPathtextBox.Text);
richTextBox1.Lines = errLog.ToArray();
}
}
}
catch (Exception)
{
return;
}
}
private void btnRestbackup_Click(object sender, EventArgs e)
{
try
{
using (Mastership mc = Mastership.Request(this.controller.Configuration), mr =
Mastership.Request(this.controller.Rapid))
{
timer_get_pose.Enabled = false;
this.controller.Restore(RestSysBackupPathtextBox.Text, RestoreIncludes.All, RestoreIgnores.All);
ListViewItem item = this.listView1.SelectedItems[0];
listView1.Items[listView1.SelectedIndices[0]].BackColor = Color.White;//选中行变为白色
this.controller.Logoff();
this.controller.Dispose();
this.controller = null;
}
this.Connect_button1.BackColor = Color.WhiteSmoke;
this.Connect_button1.Text = "连接控制器";
errLog = Robot_Control.errLogger(errLog, "[msg]:\t" + "等待恢复系统中。。。");
richTextBox1.Lines = errLog.ToArray();
}
catch
{
errLog = Robot_Control.errLogger(errLog, "[error]:\t" + "恢复系统备份失败 ");
richTextBox1.Lines = errLog.ToArray();
}
}
private void button1Axis_Click(object sender, EventArgs e)
{
try
{
Convert.ToSingle(IntervaltextBox.Text);
}
catch
{
MessageBox.Show("请输入正确的数字", "警告");
return;
}
if (Runing_Status.Text == "正在运行")
{
using (Mastership.Request(controller.Rapid))
{
RapidData rd = controller.Rapid.GetRapidData("T_ROB1", "Module2", "Jpos_Axis");
RapidData bool_val = controller.Rapid.GetRapidData("T_ROB1", "Module2", "bAxis");
RapidData num_state = controller.Rapid.GetRapidData("T_ROB1", "Module2", "status");
bool_val.StringValue = "TRUE"; // 改变Rapaid程序中bool的值
JointTarget aJointTarget = (JointTarget)rd.Value;
Num rnum = (Num)num_state.Value; // 改变Rapaid程序中num的值
rnum.Value = 1;
num_state.Value = rnum;
aJointTarget.RobAx.Rax_1 += Convert.ToSingle(IntervaltextBox.Text);
rd.Value = aJointTarget;
rnum.Value = 0;
num_state.Value = rnum;
}
}
else
{
errLog = Robot_Control.errLogger(errLog, "[error]\t请导入指定模块,运行程序");
richTextBox1.Lines = errLog.ToArray();
}
}
详细内容请看视频操作及介绍:
视频链接