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.
441 lines
17 KiB
C#
441 lines
17 KiB
C#
using NPOI.SS.Formula.Functions;
|
|
using Rs.Controls;
|
|
using Rs.Framework;
|
|
using Rs.Motion;
|
|
using Rs.MotionPlat.Commom;
|
|
using Rs.MotionPlat.Entitys;
|
|
using Rs.MotionPlat.Flow;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Rs.MotionPlat.SysConfig
|
|
{
|
|
public partial class StockControl : BaseForm
|
|
{
|
|
string logInfo = string.Empty;
|
|
public StockControl()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
protected void OnbtnLoadClick(object sender, EventArgs e)
|
|
{
|
|
LogHelper.Debug("手动触发上料");
|
|
Button btn = (Button)sender;
|
|
string trayName = btn.Tag.ToString();
|
|
bool ok = Enum.TryParse(trayName, out ETrayType result);
|
|
if (ok)
|
|
{
|
|
Task.Run(() => {
|
|
//if (MachineManage.Instance.MachineStatus == EMachineStatus.Homed || MachineManage.Instance.MachineStatus == EMachineStatus.Stop)
|
|
if(true)
|
|
{
|
|
//if (!StockManager.Instance.GetStock(result).IsRunning())
|
|
//{
|
|
// if (IsBack(trayName))
|
|
// {
|
|
// StockManager.Instance.GetStock(result).Load(EStockTrayLoadMode.AfterBacked, () => {
|
|
// });
|
|
// }
|
|
// else
|
|
// {
|
|
// StockManager.Instance.GetStock(result).Load(EStockTrayLoadMode.Whole, () => {
|
|
// if (result == ETrayType.Input)
|
|
// {
|
|
// GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Have);
|
|
// }
|
|
// else
|
|
// {
|
|
// GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.NotHave);
|
|
// }
|
|
// });
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// MessageQueue.Instance.Warn("Stock is busy");
|
|
// Msg.ShowError("Stock is busy");
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
Msg.ShowError($"device status is {MachineManage.Instance.MachineStatus},cann't operate the stock");
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
protected void OnbtnUnLoadClick(object sender, EventArgs e)
|
|
{
|
|
LogHelper.Debug("手动触发下料");
|
|
Button btn = (Button)sender;
|
|
string trayName = btn.Tag.ToString();
|
|
bool ok = Enum.TryParse(trayName, out ETrayType result);
|
|
if(ok)
|
|
{
|
|
|
|
Task.Run(() => {
|
|
//if(MachineManage.Instance.MachineStatus== EMachineStatus.Homed || MachineManage.Instance.MachineStatus== EMachineStatus.Stop)
|
|
if(true)
|
|
{
|
|
//if (!StockManager.Instance.GetStock(result).IsRunning())
|
|
//{
|
|
// //if (IsBack(trayName))
|
|
// //{
|
|
// // StockManager.Instance.GetStock(result).Unload(EStockTrayUnLoadMode.Back, () => {
|
|
// // // GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Null);
|
|
// // });
|
|
// //}
|
|
// //else
|
|
// //{
|
|
// // StockManager.Instance.GetStock(result).Unload(EStockTrayUnLoadMode.Whole, () => {
|
|
// // GlobalTray.GetTray(result).ChangeStatus(Rs.Controls.ESlotStatus.Null);
|
|
// // });
|
|
|
|
// //}
|
|
//}
|
|
//else
|
|
//{
|
|
// Msg.ShowError("Stock is busy");
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
Msg.ShowError($"device status is {MachineManage.Instance.MachineStatus},cann't operate the stock");
|
|
}
|
|
});
|
|
|
|
}
|
|
}
|
|
|
|
private bool IsBack(string trayName)
|
|
{
|
|
bool back = false;
|
|
switch (trayName)
|
|
{
|
|
case "Empty1":
|
|
if (cboxBackEmpty1.Checked)
|
|
back = true;
|
|
break;
|
|
case "Input":
|
|
if (cboxBackInput.Checked)
|
|
back = true;
|
|
break;
|
|
case "Ok":
|
|
if (cboxBackOk.Checked)
|
|
back = true;
|
|
break;
|
|
case "Ng":
|
|
if (cboxBackNg.Checked)
|
|
back = true;
|
|
break;
|
|
case "Multi":
|
|
if (cboxBackMulti.Checked)
|
|
back = true;
|
|
break;
|
|
case "Empty2":
|
|
if (cboxBackEmpty2.Checked)
|
|
back = true;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return back;
|
|
}
|
|
|
|
protected void OnbtnInitClick(object sender, EventArgs e)
|
|
{
|
|
Button btn = (Button)sender;
|
|
string trayName = btn.Tag.ToString();
|
|
bool ok = Enum.TryParse(trayName, out ETrayType result);
|
|
if (ok)
|
|
{
|
|
//StockManager.Instance.GetStock(result).Reset();
|
|
}
|
|
}
|
|
protected void btnMovetrayClick(object sender, EventArgs e)
|
|
{
|
|
RadioButton rbtnFrom = null;
|
|
RadioButton rbtnTo = null;
|
|
foreach (Control ctl in gboxFrom.Controls)
|
|
{
|
|
if(ctl is RadioButton)
|
|
{
|
|
rbtnFrom = (RadioButton)ctl;
|
|
if(rbtnFrom.Checked)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach (Control ctl in gboxTo.Controls)
|
|
{
|
|
if (ctl is RadioButton)
|
|
{
|
|
rbtnTo = (RadioButton)ctl;
|
|
if (rbtnTo.Checked)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(rbtnFrom != null && rbtnTo!=null) {
|
|
if(rbtnFrom.Text == rbtnTo.Text)
|
|
{
|
|
Msg.ShowError("Cann't move tray to same position");
|
|
return;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void button12_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void StockControl_Load(object sender, EventArgs e)
|
|
{
|
|
string uname = GlobalUser.UserName;
|
|
if(uname=="厂商")
|
|
{
|
|
groupBox7.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
groupBox7.Visible = false;
|
|
}
|
|
}
|
|
|
|
private void button19_Click(object sender, EventArgs e)
|
|
{
|
|
//AlarmEntity alarmEntity= new AlarmEntity();
|
|
//TargetPosition targetPosition= new TargetPosition();
|
|
//ETrayType fromstock = ETrayType.Empty2;
|
|
//ETrayType tostock = ETrayType.Ok;
|
|
//if (btnFromEmpty1.Checked)
|
|
// fromstock = ETrayType.Empty1;
|
|
//if (btnFromInput.Checked)
|
|
// fromstock = ETrayType.Input;
|
|
//if (btnFromOk.Checked)
|
|
// fromstock = ETrayType.Ok;
|
|
//if (btnFromNg.Checked)
|
|
// fromstock = ETrayType.Ng;
|
|
//if (btnFromMulti.Checked)
|
|
// fromstock = ETrayType.Multi;
|
|
//if (btnFromEmpty2.Checked)
|
|
// fromstock = ETrayType.Empty2;
|
|
|
|
//if (btnToEmpty1.Checked)
|
|
// tostock = ETrayType.Empty1;
|
|
//if (btnToInput.Checked)
|
|
// tostock = ETrayType.Input;
|
|
//if (btnToOk.Checked)
|
|
// tostock = ETrayType.Ok;
|
|
//if (btnToNg.Checked)
|
|
// tostock = ETrayType.Ng;
|
|
//if (btnToMulti.Checked)
|
|
// tostock = ETrayType.Multi;
|
|
//if (btnToEmpty2.Checked)
|
|
// tostock = ETrayType.Empty2;
|
|
//double cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
//double cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
//targetPosition.X = SysConfigParam.GetValue<double>($"{fromstock.ToString()}TakeTrayX") + cameraCenterX;
|
|
//targetPosition.Y = SysConfigParam.GetValue<double>($"{fromstock.ToString()}TakeTrayY") + cameraCenterY;
|
|
//Motion.ErrorCode errCode = AxisControl.LoadX.MovePos(targetPosition.X, GlobalVar.TakeTraySpeed);
|
|
//if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
//{
|
|
// errCode = AxisControl.LoadY1.MovePos(targetPosition.Y, GlobalVar.TakeTraySpeed);
|
|
// if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
// {
|
|
|
|
// }
|
|
// else
|
|
// {
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString());
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString());
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
//}
|
|
}
|
|
|
|
private void button20_Click(object sender, EventArgs e)
|
|
{
|
|
Ops.On("上下气缸电磁阀动位");
|
|
logInfo = "上下气缸电磁阀动位on";
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
Ops.Off("上下气缸电磁阀原位");
|
|
logInfo = "上下气缸电磁阀原位 off";
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
}
|
|
|
|
private void button21_Click(object sender, EventArgs e)
|
|
{
|
|
//ETrayType fromstock = ETrayType.Empty2;
|
|
//ETrayType tostock = ETrayType.Ok;
|
|
//if (btnFromEmpty1.Checked)
|
|
// fromstock = ETrayType.Empty1;
|
|
//if (btnFromInput.Checked)
|
|
// fromstock = ETrayType.Input;
|
|
//if (btnFromOk.Checked)
|
|
// fromstock = ETrayType.Ok;
|
|
//if (btnFromNg.Checked)
|
|
// fromstock = ETrayType.Ng;
|
|
//if (btnFromMulti.Checked)
|
|
// fromstock = ETrayType.Multi;
|
|
//if (btnFromEmpty2.Checked)
|
|
// fromstock = ETrayType.Empty2;
|
|
|
|
//if (btnToEmpty1.Checked)
|
|
// tostock = ETrayType.Empty1;
|
|
//if (btnToInput.Checked)
|
|
// tostock = ETrayType.Input;
|
|
//if (btnToOk.Checked)
|
|
// tostock = ETrayType.Ok;
|
|
//if (btnToNg.Checked)
|
|
// tostock = ETrayType.Ng;
|
|
//if (btnToMulti.Checked)
|
|
// tostock = ETrayType.Multi;
|
|
//if (btnToEmpty2.Checked)
|
|
// tostock = ETrayType.Empty2;
|
|
//Ops.On("夹爪气缸电磁阀");
|
|
//logInfo = $"夹爪气缸on";
|
|
//MessageQueue.Instance.Insert(logInfo);
|
|
//Thread.Sleep(1000);
|
|
//if (!GlobalVar.TakeTrayDisableVac)
|
|
//{
|
|
// Ops.On("夹爪真空吸");
|
|
// logInfo = $"打开夹爪夹爪真空吸";
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
//}
|
|
//Ops.Off($"{(int)fromstock}号料仓斜推气缸");
|
|
//logInfo =$"关闭{fromstock}号料仓斜推气缸";
|
|
//MessageQueue.Instance.Insert(logInfo);
|
|
//Ops.Off($"{(int)tostock}号料仓斜推气缸");
|
|
//logInfo = $"关闭{tostock}号料仓斜推气缸";
|
|
//MessageQueue.Instance.Insert(logInfo);
|
|
}
|
|
|
|
private void button22_Click(object sender, EventArgs e)
|
|
{
|
|
Ops.Off("上下气缸电磁阀动位");
|
|
Thread.Sleep(100);
|
|
Ops.On("上下气缸电磁阀原位");
|
|
}
|
|
|
|
private void button23_Click(object sender, EventArgs e)
|
|
{
|
|
//AlarmEntity alarmEntity = new AlarmEntity();
|
|
//TargetPosition targetPosition = new TargetPosition();
|
|
//ETrayType fromstock = ETrayType.Empty2;
|
|
//ETrayType tostock = ETrayType.Ok;
|
|
//if (btnFromEmpty1.Checked)
|
|
// fromstock = ETrayType.Empty1;
|
|
//if (btnFromInput.Checked)
|
|
// fromstock = ETrayType.Input;
|
|
//if (btnFromOk.Checked)
|
|
// fromstock = ETrayType.Ok;
|
|
//if (btnFromNg.Checked)
|
|
// fromstock = ETrayType.Ng;
|
|
//if (btnFromMulti.Checked)
|
|
// fromstock = ETrayType.Multi;
|
|
//if (btnFromEmpty2.Checked)
|
|
// fromstock = ETrayType.Empty2;
|
|
|
|
//if (btnToEmpty1.Checked)
|
|
// tostock = ETrayType.Empty1;
|
|
//if (btnToInput.Checked)
|
|
// tostock = ETrayType.Input;
|
|
//if (btnToOk.Checked)
|
|
// tostock = ETrayType.Ok;
|
|
//if (btnToNg.Checked)
|
|
// tostock = ETrayType.Ng;
|
|
//if (btnToMulti.Checked)
|
|
// tostock = ETrayType.Multi;
|
|
//if (btnToEmpty2.Checked)
|
|
// tostock = ETrayType.Empty2;
|
|
//double cameraCenterX = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterX");
|
|
//double cameraCenterY = SysConfigParam.GetValue<double>("ClampCenter2UpCameraCenterY");
|
|
//targetPosition.X = SysConfigParam.GetValue<double>($"{tostock.ToString()}TakeTrayX") + cameraCenterX;
|
|
//targetPosition.Y = SysConfigParam.GetValue<double>($"{tostock.ToString()}TakeTrayY") + cameraCenterY - 2;
|
|
//int speed = GlobalVar.TakeTraySpeed;
|
|
//ErrorCode errCode = AxisControl.LoadX.MovePos(targetPosition.X, speed);
|
|
//if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
//{
|
|
// errCode = AxisControl.LoadY1.MovePos(targetPosition.Y, speed);
|
|
// if (errCode == Motion.ErrorCode.Ok || GlobalVar.VirtualAxis)
|
|
// {
|
|
// if (GlobalVar.VirtualAxis)
|
|
// {
|
|
// Thread.Sleep(GlobalVar.VirtualAxisMoveTime);
|
|
// }
|
|
// logInfo = $"到{tostock}料仓放料盘上方";
|
|
// MessageQueue.Instance.Insert(logInfo);
|
|
// }
|
|
// else
|
|
// {
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadY运动异常).Transform(errCode.ToString());
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// alarmEntity = AlarmCollection.Get(AlarmConstID.LoadX运动异常).Transform(errCode.ToString());
|
|
// AlarmMessageBox.ShowDialog(alarmEntity, ETipButton.Ok, null);
|
|
//}
|
|
}
|
|
|
|
private void button24_Click(object sender, EventArgs e)
|
|
{
|
|
Ops.On("上下气缸电磁阀动位");
|
|
logInfo = "上下气缸电磁阀动位on";
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
Ops.Off("上下气缸电磁阀原位");
|
|
logInfo = "上下气缸电磁阀原位 off";
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
}
|
|
|
|
private void button25_Click(object sender, EventArgs e)
|
|
{
|
|
ETrayType tostock = ETrayType.Ok;
|
|
if (btnToInput.Checked)
|
|
tostock = ETrayType.Input;
|
|
if (btnToOk.Checked)
|
|
tostock = ETrayType.Ok;
|
|
if (btnToNg.Checked)
|
|
tostock = ETrayType.Ng;
|
|
|
|
Ops.Off("夹爪气缸电磁阀");
|
|
logInfo = $"夹爪气缸off";
|
|
MessageQueue.Instance.Insert(logInfo);
|
|
Thread.Sleep(1000);
|
|
|
|
Ops.On($"{(int)tostock}号料仓斜推气缸");
|
|
}
|
|
|
|
private void button26_Click(object sender, EventArgs e)
|
|
{
|
|
Ops.Off("上下气缸电磁阀动位");
|
|
Thread.Sleep(100);
|
|
Ops.On("上下气缸电磁阀原位");
|
|
}
|
|
}
|
|
}
|