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.
Rs.DeweyTester/Rs.DeweyTester/SysConfig/StockControl.cs

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("上下气缸电磁阀原位");
}
}
}