You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1180 lines
43 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ocean;
using demo.ClassHelper.MsgBox;
namespace demo.UI
{
public partial class FormMove : Form
{
#region 全局变量
private bool _b2nd = false; //是否为二代机
//轴关联 一代机
public static int _upx = 51001; //上下料x轴
public static int _upy = 51003; //上下料Y2轴
public static int _upy1 = 51002; //上下料Y1轴
public static int _upz = 51004; //上下料Z轴
public static int _carryx = 51005; //搬运x轴
public static int _feedz1 = 51006; //OK仓顶升
public static int _feedz2 = 51007; //进料仓顶升
public static int _feedz3 = 51008; //空料仓顶升
//二代机增加
public static int _ccdx = 52001; //治具相机x轴
public static int _ccdz = 52002; //治具相机z轴
public static int _upz2 = 52004; //上下料Z2轴
public static int _upz3 = 52005; //上下料Z3轴
public static int _upz4 = 52006; //上下料Z4轴
public static int language = 0;//语言选择
//速度设置
private int _curvel = 0; //当前速度选择
private double[] _vel = { 4, 10, 30 };
private double[] _acc = { 2, 5, 20 };
private double[] _dec = { 10, 20, 30 };
#endregion 全局变量
public FormMove()
{
InitializeComponent();
}
private void set1st()
{//设置为一代机
if (!_b2nd) return;
_ccdx = 0;
_ccdz = 0;
_upz2 = 0;
_upz3 = 0;
_upz4 = 0;
_upx = 51001; //上下料x轴
_upy = 51003; //上下料Y2轴
_upy1 = 51002; //上下料Y1轴
_upz = 51004; //上下料Z1轴
_carryx = 51005; //搬运x轴
_feedz1 = 51006; //OK仓顶升
_feedz2 = 51007; //进料仓顶升
_feedz3 = 51008; //空料仓顶升
}
private void set2nd()
{//设置为二代机
if (_b2nd) return;
_upx = 51001; //上下料x轴
_upy = 51003; //上下料Y2轴
_upy1 = 51002; //上下料Y1轴
_upz = 52003; //上下料Z1轴
_upz2 = 52004; //上下料Z2轴
_upz3 = 52005; //上下料Z2轴
_upz4 = 52006; //上下料Z4轴
_carryx = 51004; //搬运x轴
_feedz1 = 51005; //OK仓顶升
_feedz2 = 51006; //进料仓顶升
_feedz3 = 51007; //空料仓顶升
_ccdx = 52001;
_ccdz = 52002;
}
public bool B2nd
{//是否为二代机
get { return _b2nd; }
set { if (value) set2nd(); else set1st(); _b2nd = value; }
}
#region 点位坐标
public string UpxPos
{
get { return labelx1Pos.Text; }
//set { labelx1Pos.Text = value; }
}
public string UpyPos
{
get { return labelyPos.Text; }
//set { labelyPos.Text = value; }
}
public string UpzPos
{
get { return labelzPos.Text; }
//set { labelzPos.Text = value; }
}
public string Upy1Pos
{
get { return labelx2Pos.Text; }
//set { labelx2Pos.Text = value; }
}
public string CarryPos
{
get { return labelhPos.Text; }
//set { labelhPos.Text = value; }
}
public string FeedOkPos
{
get { return labelf1Pos.Text; }
//set { labelf1Pos.Text = value; }
}
public string FeedInputPos
{
get { return labelf2Pos.Text; }
//set { labelf2Pos.Text = value; }
}
public string FeedNullPos
{
get { return labelf3Pos.Text; }
//set { labelf3Pos.Text = value; }
}
public string Upz2Pos
{
get { return labelzPos2.Text; }
//set { labelzPos2.Text = value; }
}
public string Upz3Pos
{
get { return labelzPos3.Text; }
//set { labelzPos3.Text = value; }
}
public string Upz4Pos
{
get { return labelzPos4.Text; }
//set { labelzPos4.Text = value; }
}
public string CxPos
{
get { return labelcxPos.Text; }
//set { labelcxPos.Text = value; }
}
public string CzPos
{
get { return labelczPos.Text; }
//set { labelczPos.Text = value; }
}
#endregion
#region 连动,寸动
/// <summary>
/// 检测Z轴安全
/// </summary>
/// <returns>true 安全false 不安全 </returns>
public bool check_in_pos(int axis, double pos)
{//检查某个轴在此位置
int status = control.get_dev_status(axis);
if ((int)ocean.EDevStatus.EMove_NOHOME == status)// 未回原
{
MsgBoxHelper.ShowTips("Z轴未回原请先回原");//Z轴未回原请先回原please return to the original position first!
return false;
}
if ((int)ocean.EDevStatus.EMove_ISMOVING == status || (int)ocean.EDevStatus.EMove_ISHOME == status)// 运动中 / 回原中
{
MsgBoxHelper.ShowTips("Z轴正在运动请等待Z轴运动停止");//Z轴正在运动请等待Z轴运动停止please wait for Z-axis to stop!
return false;
}
pos -= control.getAxisPos(axis);
return pos < 0.01 && pos > -0.01;
}
public bool check_up_pos(int axis, double pos)
{//检查某个轴位置是否大于等于预定值
int status = control.get_dev_status(axis);
if ((int)ocean.EDevStatus.EMove_NOHOME == status)// 未回原
{
MsgBoxHelper.ShowTips("Z轴未回原请先回原");//Z轴未回原请先回原please return to the original position first!
return false;
}
if ((int)ocean.EDevStatus.EMove_ISMOVING == status || (int)ocean.EDevStatus.EMove_ISHOME == status)// 运动中 / 回原中
{
MsgBoxHelper.ShowTips("Z轴正在运动请等待Z轴运动停止");//Z轴正在运动请等待Z轴运动停止please wait for Z-axis to stop!
return false;
}
pos -= control.getAxisPos(axis);
if (pos < -0.1)
{//no safe
MsgBoxHelper.ShowTips("Z轴不在安全位");//Z轴不在安全位 please take Z-axis to safe pos!
return false;
}
return true;
}
public bool check_z_safety2()//检测Z轴安全
{//检测是否在安全位
double v2z = var.getdouble("v2z");
double v3z = var.getdouble("v3z");
double v4z = var.getdouble("v4z");
double safez = var.getdouble("safez");
//z轴往下是增加
if (!check_up_pos(_upz, safez)) return false;
if (!check_up_pos(_upz2, safez + v2z)) return false;
if (!check_up_pos(_upz3, safez + v3z)) return false;
if (!check_up_pos(_upz4, safez + v4z)) return false;
return true;
}
public bool check_z_safety()//检测Z轴安全
{
double safez = 0;
if (_b2nd) return check_z_safety2();
safez = var.getdouble("safez");//Z轴安全高度
if (!check_up_pos(_upz, safez)) return false;
control.write("吸料上下气缸1", 0);
control.write("吸料上下气缸2", 0);
control.write("吸料上下气缸3", 0);
control.write("吸料上下气缸4", 0);
return true;
}
/// <summary>
/// 检测X轴安全
/// </summary>
/// <returns>true 安全false 不安全 </returns>
public bool chace_x_safety()//检测X轴安全
{
int ret = 0;
double m_bpos = 0;
int m_status = 0;
TPoint m_point = new TPoint();
//if (_b2nd) return true; //二代机暂时不检测
control.axis_get_pos(_upx, ref m_bpos);//X轴当前位置
m_status = control.get_dev_status(_upx);//对象状态
ret = control.get_point(1, "换料仓位", ref m_point);
if ((int)ocean.EDevStatus.EMove_ISMOVING == m_status || (int)ocean.EDevStatus.EMove_ISHOME == m_status)// 运动中 / 回原中
{
MsgBoxHelper.ShowTips("X轴正在运动请等待X轴运动停止");//X轴正在运动请等待X轴运动停止X-axis is moving, please wait for X-axis to stop!
return false;
}
if (0 != ret) //点位获取失败
{
MsgBoxHelper.ShowTips("X轴-上料工站-换料仓位,点位获取失败!");//上料工站-换料仓位,点位获取失败X-axis point acquisition failed!
return false;
}
if (Math.Abs(m_point.x - m_bpos) > 1.1) //相差超过1mm
{
MsgBoxHelper.ShowTips("X轴不在安全区域换料仓位请运行到安全区域");//X轴不在安全区域换料仓位请运行到安全区域X-axis is not in the safe area (Avoidance point), please run to the safe area!
return false;
}
return true;
}
/// <summary>
/// 检测H轴安全
/// </summary>
/// <returns>true 安全false 不安全 </returns>
public bool chace_h_safety()//检测H轴安全
{
int m_status = 0;
if (_b2nd) return true; //二代机暂时不检测
m_status = control.get_dev_status(_carryx);//对象状态
if ((int)ocean.EDevStatus.EMove_ISMOVING == m_status || (int)ocean.EDevStatus.EMove_ISHOME == m_status)// 运动中 / 回原中
{
MsgBoxHelper.ShowTips("H-Axis is moving, please wait for H-axis to stop!");//H轴正在运动请等待H轴运动停止
return false;
}
if (0 == control.axis_read(_carryx, EIOType.IOT_HOME)) //不在原点
{
MsgBoxHelper.ShowTips("H-Axis is not in the origin area, please run to the origin area!");//H轴不在原点区域请运行到安全区域
return false;
}
return true;
}
public bool chace_in_tray()//检测在料盘侧 true 在false 不在
{
string strmsg = "";
double m_bpos = 0;
if (_b2nd) return true; //二代机暂时不检测
if (1 == language) { strmsg = "把吸嘴移到料盘侧 Y1>10 ,当前 Y1 = "; }//中文
else { strmsg = "把吸嘴移到料盘侧-英语"; }//英语 或其他的
control.axis_get_pos(_upy1, ref m_bpos, 0);//Y1轴当前位置
if (m_bpos < 10)
{
MessageBox.Show(strmsg + m_bpos.ToString());
return false;
}
control.axis_get_pos(_upy, ref m_bpos, 0);//Y1轴当前位置
if (1 == language) { strmsg = "把吸嘴移到料盘侧 Y2>180 ,当前 Y2 = "; }//中文
else { strmsg = "把吸嘴移到料盘侧-英语"; }//英语 或其他的
if (m_bpos < 180)
{
MessageBox.Show(strmsg + m_bpos.ToString());
return false;
}
control.axis_get_pos(_upx, ref m_bpos, 0);//Y1轴当前位置
if (1 == language) { strmsg = "把吸嘴移到料盘侧 X<850 ,当前 X = "; }//中文
else { strmsg = "把吸嘴移到料盘侧-英语"; }//英语 或其他的
if (m_bpos > 850)
{
MessageBox.Show(strmsg + m_bpos.ToString());
return false;
}
return true;
}
private void checkBoxStep_CheckedChanged(object sender, EventArgs e)
{//寸动模式
nud_step.Enabled = checkBoxStep.Checked;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{//当前速度
_curvel = combox_spd.SelectedIndex;
DownSpeed();
}
private void button5_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upx, 0);
}
else //寸动
{
control.axis_move_offset(_upx, -Convert.ToDouble(nud_step.Value));
}
}
private void button5_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upx);
}
}
private void button8_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
if (false == chace_h_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upx, 1);
}
else //寸动
{
control.axis_move_offset(_upx, Convert.ToDouble(nud_step.Value));
}
}
private void button6_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
if (false == chace_h_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upy1, 1);
}
else //寸动
{
control.axis_move_offset(_upy1, Convert.ToDouble(nud_step.Value));
}
}
private void button6_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upy1);
}
}
private void button7_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upy1, 0);
}
else //寸动
{
control.axis_move_offset(_upy1, -Convert.ToDouble(nud_step.Value));
}
}
private void button10_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upy, 1);
}
else //寸动
{
control.axis_move_offset(_upy, Convert.ToDouble(nud_step.Value));
}
}
private void button10_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upy);
}
}
private void button9_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == check_z_safety()) { return; }
DownSpeed();
control.axis_move_jog(_upy, 0);
}
else //寸动
{
control.axis_move_offset(_upy, -Convert.ToDouble(nud_step.Value));
}
}
private void button12_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
DownSpeed();
control.axis_move_jog(_upz, 1);
}
else //寸动
{
control.axis_move_offset(_upz, Convert.ToDouble(nud_step.Value));
}
}
private void button12_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upz);
}
}
private void button11_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
DownSpeed();
control.axis_move_jog(_upz, 0);
}
else //寸动
{
control.axis_move_offset(_upz, -Convert.ToDouble(nud_step.Value));
}
}
private void button20_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料盘搬运气缸-")) { MsgBoxHelper.ShowTips("The tray handling cylinder is not in the safe position"); return; }
DownSpeed();
control.axis_move_jog(_carryx, 1);
}
else //寸动
{
control.axis_move_offset(_carryx, Convert.ToDouble(nud_step.Value));
}
}
private void button20_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_carryx);
}
}
private void button18_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (false == chace_x_safety()) { return; }//检测X轴安全
if (0 == control.read("料盘搬运气缸-")) { MsgBoxHelper.ShowTips("The tray handling cylinder is not in the safe position"); return; }
DownSpeed();
control.axis_move_jog(_carryx, 0);
}
else //寸动
{
control.axis_move_offset(_carryx, -Convert.ToDouble(nud_step.Value));
}
}
private void button22_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电1")) { MsgBoxHelper.ShowTips("Please push the Pass Output Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz1, 1);
}
else //寸动
{
control.axis_move_offset(_feedz1, Convert.ToDouble(nud_step.Value));
}
}
private void button22_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_feedz1);
}
}
private void button16_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电1")) { MsgBoxHelper.ShowTips("Please push the Pass Output Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz1, 0);
}
else //寸动
{
control.axis_move_offset(_feedz1, -Convert.ToDouble(nud_step.Value));
}
}
private void button19_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电2")) { MsgBoxHelper.ShowTips("Please push the Input Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz2, 1);
}
else //寸动
{
control.axis_move_offset(_feedz2, Convert.ToDouble(nud_step.Value));
}
}
private void button19_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_feedz2);
}
}
private void button21_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电2")) { MsgBoxHelper.ShowTips("Please push the Input Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz2, 0);
}
else //寸动
{
control.axis_move_offset(_feedz2, -Convert.ToDouble(nud_step.Value));
}
}
private void button28_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电3")) { MsgBoxHelper.ShowTips("Please push the Empty Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz3, 1);
}
else //寸动
{
control.axis_move_offset(_feedz3, Convert.ToDouble(nud_step.Value));
}
}
private void button28_MouseUp(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_feedz3);
}
}
private void button27_MouseDown(object sender, MouseEventArgs e)
{
if (checkBoxStep.Checked == false) //连动
{
if (0 == control.read("料仓光电3")) { MsgBoxHelper.ShowTips("Please push the Empty Tray silo into position"); return; }
DownSpeed();
control.axis_move_jog(_feedz3, 0);
}
else //寸动
{
control.axis_move_offset(_feedz3, -Convert.ToDouble(nud_step.Value));
}
}
public void DownSpeed()
{//检查速度是否和界面设置一样
double vel = _vel[_curvel];
double acc = _acc[_curvel];
double dec = _dec[_curvel];
control.set_speed(1, vel, acc, dec);//设置指定工站接下来的运动速度
control.set_speed(2, vel, acc, dec);
control.set_speed(3, vel, acc, dec);
control.set_speed(4, vel, acc, dec);
control.set_speed(5, vel, acc, dec);
control.set_global_speed(1, vel * 2);//设置指定工站的全局速度
control.set_global_speed(2, vel * 2);
control.set_global_speed(3, vel * 2);
control.set_global_speed(4, vel * 2);
control.set_global_speed(5, vel * 2);
if (!_b2nd) return;
control.set_speed(6, vel, acc, dec);//设置指定工站接下来的运动速度
control.set_speed(7, vel, acc, dec);
control.set_speed(8, vel, acc, dec);
control.set_speed(9, vel, acc, dec);
control.set_speed(10, vel, acc, dec);
control.set_global_speed(6, vel * 2);//设置指定工站的全局速度
control.set_global_speed(7, vel * 2);
control.set_global_speed(8, vel * 2);
control.set_global_speed(9, vel * 2);
control.set_global_speed(10, vel * 2);
}
private void button17_Click(object sender, EventArgs e)
{
control.station_reset(1);
control.station_reset(2);
control.station_reset(3);
control.station_reset(4);
control.station_reset(5);
if (!_b2nd) return;
control.station_reset(6);
control.station_reset(7);
control.station_reset(8);
control.station_reset(9);
control.station_reset(10);
}
private void button13_Click(object sender, EventArgs e)
{
int val = 0;
if (btn_off.Text == "OFF")
{
btn_off.Text = "ON";
}
else
{
val = 1;
btn_off.Text = "OFF";
}
control.axis_write(_upx, EIOType.IOT_SEVON, val);
control.axis_write(_upy1, EIOType.IOT_SEVON, val);
control.axis_write(_upy, EIOType.IOT_SEVON, val);
control.axis_write(_upz, EIOType.IOT_SEVON, val);
control.axis_write(_carryx, EIOType.IOT_SEVON, val);
control.axis_write(_feedz1, EIOType.IOT_SEVON, val);
control.axis_write(_feedz2, EIOType.IOT_SEVON, val);
control.axis_write(_feedz3, EIOType.IOT_SEVON, val);
if (!_b2nd) return;
control.axis_write(_ccdx, EIOType.IOT_SEVON, val);
control.axis_write(_ccdz, EIOType.IOT_SEVON, val);
control.axis_write(_upz2, EIOType.IOT_SEVON, val);
control.axis_write(_upz3, EIOType.IOT_SEVON, val);
control.axis_write(_upz4, EIOType.IOT_SEVON, val);
}
private void btn_zsafe_Click(object sender, EventArgs e)
{
double v2z = var.getdouble("v2z");
double v3z = var.getdouble("v3z");
double v4z = var.getdouble("v4z");
double safez = var.getdouble("safez");
DownSpeed();
control.axis_move_pos(_upz, safez);//指定轴点位运动
if (!_b2nd) return;
control.axis_move_pos(_upz2, safez + v2z);
control.axis_move_pos(_upz3, safez + v3z);
control.axis_move_pos(_upz4, safez + v4z);
}
private void button14_Click(object sender, EventArgs e)
{
int ret = 0;
string smg = "";
double m_bpos = 0;
int m_status = 0;
TPoint m_point = new TPoint();
control.axis_get_pos(_upx, ref m_bpos, 0);//X轴当前位置
ret = control.get_point(1, "5号治具位置", ref m_point);
m_status = control.get_dev_status(_upx);//对象状态
if (false == check_z_safety()) { return; }
if (0 != ret) //点位获取失败
{
MsgBoxHelper.ShowTips("Point acquisition failed!");//点位获取失败!
return;
}
if ((int)ocean.EDevStatus.EDev_IDLE == m_status)//就绪
{
if (m_bpos > m_point.x)
{
//if (2 == language) { smg = "vi"; }//越南语
if (1 == language) { MessageBox.Show("Y1轴与H轴会出现干涉请先把X轴移动到安全位置"); }
else { MessageBox.Show("The Y1-axis and the H-axis will interfere, please move the X-axis to the security location"); }
return;
}
}
//if (2 == language) { smg = "vi"; }//越南语
if (1 == language) { smg = "请注意取料工站与移栽工站是否干涉。\r\n点击是继续回原\r\n不确定点击否放弃回原。"; }
else { smg = "Please pay attention to whether the reclaimer station interferes with the transplanter station.\r\nclick Yes to continue returning to the original. \r\nclick No to give up returning to the original."; }
if (MsgBoxHelper.ConfirmYesNo(smg))
{
control.axis_home(_upx);
control.axis_home(_upy1);
control.axis_home(_upy);
}
}
private void button15_Click(object sender, EventArgs e)
{
control.axis_home(_upz);
}
private void button23_Click(object sender, EventArgs e)
{
if (0 == control.read("料盘搬运气缸-")) { MsgBoxHelper.ShowTips("The tray handling cylinder is not in the safe position"); return; }
control.station_home(2);
}
private void button25_Click(object sender, EventArgs e)
{
if (0 == control.read("抽屉拉伸气缸1-")) { MsgBoxHelper.ShowTips("Please push the Pass Output Tray silo into position"); return; }
control.write("抽屉锁1", (ushort)1);
control.station_home(3);
}
private void button24_Click(object sender, EventArgs e)
{
if (0 == control.read("抽屉拉伸气缸2-")) { MsgBoxHelper.ShowTips("Please push the Input Tray silo into position"); return; }
control.write("抽屉锁2", (ushort)1);
control.station_home(4);
}
private void button26_Click(object sender, EventArgs e)
{
if (0 == control.read("抽屉拉伸气缸3-")) { MsgBoxHelper.ShowTips("Please push the Empty Tray silo into position"); return; }
control.write("抽屉锁3", (ushort)1);
control.station_home(5);
}
private void btn_z2n_MouseDown(object sender, MouseEventArgs e)
{
if (_upz2 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz2, 0);
}
else //寸动
{
control.axis_move_offset(_upz2, -Convert.ToDouble(nud_step.Value));
}
}
private void btn_z2p_MouseDown(object sender, MouseEventArgs e)
{
if (_upz2 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz2, 1);
}
else //寸动
{
control.axis_move_offset(_upz2, Convert.ToDouble(nud_step.Value));
}
}
private void btn_z2n_MouseUp(object sender, MouseEventArgs e)
{
if (_upz2 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upz2, 0);
}
}
private void btn_z2h_Click(object sender, EventArgs e)
{
if (_upz2 == 0) return;
control.axis_home(_upz2);
}
private void btn_z3n_MouseDown(object sender, MouseEventArgs e)
{
if (_upz3 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz3, 0);
}
else //寸动
{
control.axis_move_offset(_upz3, -Convert.ToDouble(nud_step.Value));
}
}
private void btn_z3p_MouseDown(object sender, MouseEventArgs e)
{
if (_upz3 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz3, 1);
}
else //寸动
{
control.axis_move_offset(_upz3, Convert.ToDouble(nud_step.Value));
}
}
private void btn_z3n_MouseUp(object sender, MouseEventArgs e)
{
if (_upz3 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upz3, 0);
}
}
private void btn_z3h_Click(object sender, EventArgs e)
{
if (_upz3 == 0) return;
control.axis_home(_upz3);
}
private void btn_z4n_MouseDown(object sender, MouseEventArgs e)
{
if (_upz4 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz4, 0);
}
else //寸动
{
control.axis_move_offset(_upz4, -Convert.ToDouble(nud_step.Value));
}
}
private void btn_z4p_MouseDown(object sender, MouseEventArgs e)
{
if (_upz4 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_upz4, 1);
}
else //寸动
{
control.axis_move_offset(_upz4, Convert.ToDouble(nud_step.Value));
}
}
private void btn_z4n_MouseUp(object sender, MouseEventArgs e)
{
if (_upz4 == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_upz4, 0);
}
}
private void btn_z4h_Click(object sender, EventArgs e)
{
if (_upz4 == 0) return;
control.axis_home(_upz4);
}
private void btn_cxn_MouseDown(object sender, MouseEventArgs e)
{
if (_ccdx == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_ccdx, 0);
}
else //寸动
{
control.axis_move_offset(_ccdx, -Convert.ToDouble(nud_step.Value));
}
}
private void btn_cxp_KeyDown(object sender, KeyEventArgs e)
{
if (_ccdx == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_ccdx, 1);
}
else //寸动
{
control.axis_move_offset(_ccdx, Convert.ToDouble(nud_step.Value));
}
}
private void btn_cxn_MouseUp(object sender, MouseEventArgs e)
{
if (_ccdx == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_ccdx, 0);
}
}
private void btn_cxh_Click(object sender, EventArgs e)
{
if (_ccdx == 0) return;
control.axis_home(_ccdx);
}
private void btn_czn_MouseDown(object sender, MouseEventArgs e)
{
if (_ccdz == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_ccdz, 0);
}
else //寸动
{
control.axis_move_offset(_ccdx, -Convert.ToDouble(nud_step.Value));
}
}
private void btn_czp_MouseDown(object sender, MouseEventArgs e)
{
if (_ccdz == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_move_jog(_ccdz, 1);
}
else //寸动
{
control.axis_move_offset(_ccdz, Convert.ToDouble(nud_step.Value));
}
}
private void btn_czn_MouseUp(object sender, MouseEventArgs e)
{
if (_ccdz == 0) return;
if (checkBoxStep.Checked == false) //连动
{
control.axis_stop(_ccdz, 0);
}
}
private void btn_czh_Click(object sender, EventArgs e)
{
if (_ccdz == 0) return;
control.axis_home(_ccdz);
}
#endregion 连动,寸动
#region 刷新IO信号
public void Update_Pos()
{//刷新位置
double pos = 0;
pos = control.getAxisPos(_upx);
labelx1Pos.Text = pos.ToString("f3");
pos = control.getAxisPos(_upy1);
labelx2Pos.Text = pos.ToString("f3");
pos = control.getAxisPos(_upy);
labelyPos.Text = pos.ToString("f3");
pos = control.getAxisPos(_upz);
labelzPos.Text = pos.ToString("f3");
pos = control.getAxisPos(_carryx);
labelhPos.Text = pos.ToString("f3");
pos = control.getAxisPos(_feedz1);
labelf1Pos.Text = pos.ToString("f3");
pos = control.getAxisPos(_feedz2);
labelf2Pos.Text = pos.ToString("f3");
pos = control.getAxisPos(_feedz3);
labelf3Pos.Text = pos.ToString("f3");
pos = control.getAxisPos(_ccdx);
labelcxPos.Text = pos.ToString("f3");
pos = control.getAxisPos(_ccdz);
labelczPos.Text = pos.ToString("f3");
pos = control.getAxisPos(_upz2);
labelzPos2.Text = pos.ToString("f3");
pos = control.getAxisPos(_upz3);
labelzPos3.Text = pos.ToString("f3");
pos = control.getAxisPos(_upz4);
labelzPos4.Text = pos.ToString("f3");
}
public void Show_IO_pnh()//IO刷新显示 正、负限位、原点
{
pic_x1h.Image = control.axisIO(_upx, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_y1h.Image = control.axisIO(_upy1, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_y2h.Image = control.axisIO(_upy, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_z1h.Image = control.axisIO(_upz, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_hxh.Image = control.axisIO(_carryx, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_f1h.Image = control.axisIO(_feedz1, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_f2h.Image = control.axisIO(_feedz2, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_f3h.Image = control.axisIO(_feedz3, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_z2h.Image = control.axisIO(_upz2, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_z3h.Image = control.axisIO(_upz3, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_z4h.Image = control.axisIO(_upz4, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_cxh.Image = control.axisIO(_ccdx, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
pic_czh.Image = control.axisIO(_ccdz, EIOType.IOT_HOME) ?
Properties.Resources.Green1 : Properties.Resources.white1;
btn_xp.Image = control.axisIO(_upx, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_y1p.Image = control.axisIO(_upy1, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_y2p.Image = control.axisIO(_upy, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z1p.Image = control.axisIO(_upz, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_hxp.Image = control.axisIO(_carryx, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f1p.Image = control.axisIO(_feedz1, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f2p.Image = control.axisIO(_feedz2, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f3p.Image = control.axisIO(_feedz3, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z2p.Image = control.axisIO(_upz2, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z3p.Image = control.axisIO(_upz3, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z4p.Image = control.axisIO(_upz4, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_cxp.Image = control.axisIO(_ccdx, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_czp.Image = control.axisIO(_ccdz, EIOType.IOT_LIMITP) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_xn.Image = control.axisIO(_upx, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_y1n.Image = control.axisIO(_upy1, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_y2n.Image = control.axisIO(_upy, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z1n.Image = control.axisIO(_upz, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_hxn.Image = control.axisIO(_carryx, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f1n.Image = control.axisIO(_feedz1, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f2n.Image = control.axisIO(_feedz2, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_f3n.Image = control.axisIO(_feedz3, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z2n.Image = control.axisIO(_upz2, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z3n.Image = control.axisIO(_upz3, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_z4n.Image = control.axisIO(_upz4, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_cxn.Image = control.axisIO(_ccdx, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
btn_czn.Image = control.axisIO(_ccdz, EIOType.IOT_LIMITN) ?
Properties.Resources.ARW07RT1 : Properties.Resources.ARW07RT;
}
#endregion 刷新IO信号
private void FormMove_Load(object sender, EventArgs e)
{
combox_spd.SelectedIndex = 0;
language = config.getint("ui", "language");//语言选择
if (!_b2nd)
{//一代机
labelcx.Visible = labelcxPos.Visible = false;
labelcz.Visible = labelczPos.Visible = false;
labelz2.Visible = labelzPos2.Visible = false;
labelz3.Visible = labelzPos3.Visible = false;
labelz4.Visible = labelzPos4.Visible = false;
btn_z2n.Visible = btn_z2h.Visible = pic_z2h.Visible = btn_z2p.Visible = false;
btn_z3n.Visible = btn_z3h.Visible = pic_z3h.Visible = btn_z3p.Visible = false;
btn_z4n.Visible = btn_z4h.Visible = pic_z4h.Visible = btn_z4p.Visible = false;
btn_cxn.Visible = btn_cxh.Visible = pic_cxh.Visible = btn_cxp.Visible = false;
btn_czn.Visible = btn_czh.Visible = pic_czh.Visible = btn_czp.Visible = false;
}
}
private void FormMove_FormClosing(object sender, FormClosingEventArgs e)
{
this.Hide();
e.Cancel = true;
}
private void FormMove_VisibleChanged(object sender, EventArgs e)
{
if (this.Visible == true)
{//显示
combox_spd.SelectedIndex = 0;
}
else
{//不显示
_curvel = 0;
}
}
}
}