Files
2026-05-29 13:50:18 +08:00

210 lines
7.0 KiB
C#

using MesWorkMqtt;
using MQTTnet.Client.Connecting;
using MQTTnet.Client.Disconnecting;
using MQTTnet.Client.Receiving;
using bizFacade;
using MesWorkMqtt;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MQTTnet;
using System.Threading;
using DoWhatPlc;
using MesServerWork;
namespace SyUpLoad
{
public partial class PartLoad
{
//
private void fun_MesReadOver(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string funID = ht_OpnameFun[OpName].ToString();
switch (funID)
{
case "1":
break;
case "2":
fun_MesReadOver2( e);
break;
case "3":
fun_MesReadOver3(e);
break;
}
}
private void fun_MesReadOver2(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
SetChekcBox(tagValue, checkBox_MesReadOver2);
}
private void fun_MesReadOver3(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
SetChekcBox(tagValue, checkBox_MesReadOver3);
}
private void fun_MesRead(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string funID = ht_OpnameFun[OpName].ToString();
switch (funID)
{
case "1":
break;
case "2":
fun_MesRead2(e);
break;
case "3":
fun_MesRead3(e);
break;
}
}
private void fun_MesRead2(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
//var cb = button_ManualPartLoad;
//cb.Invoke(new Action(() => {
// if (tagValue == 1)
// {
// cb.Enabled = false;
// }
// else
// {
// cb.Enabled = true;
// }
//}));
SetChekcBox(tagValue, checkBox_MesRead2);
if(tagValue==1)
{
//保存库数据
int EngineTypeID;//机型代码
int PartPallet_Code;//托盘编号
string EngineType;//机型
string EngineID;//工件编号
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code);
object kuweiNum="";
//从库房拿 库位号
//判断是否有库位 如果有
DataTable dt;
BaseDataSystemMES.GetUnLoadWarehouseNo(OPName02, out dt);
if (dt.Rows.Count >= 1)
{
kuweiNum = Convert.ToByte(dt.Rows[0]["库位号"]);
DtWebApi.ReadWritePLC.WritePLC(warehouseLocation.ToString(), OpName, kuweiNum);
MIS_BASE.Write_EngineTypeGetOver_MES(OpName, true);
}
else
{
//button_ManualPartLoad.Invoke(new Action(() =>
//{
// button_ManualPartLoad.Enabled = true;
//}));
MessageBox.Show("虚拟库存无位置");
return;
}
//engineTypeID = Convert.ToInt32(dt.Rows[0]["机型代码"]);
//engineID = dt.Rows[0]["发动机号"].ToString();
//engineType = dt.Rows[0]["发动机型号"].ToString();
//kuweiNum = Convert.ToByte(dt.Rows[0]["库位号"]);
//kuweiNum =DtWebApi.ReadWritePLC.ReadPLC(warehouseLocation.ToString(), OpName);
// BaseDataSystemMES.GetUpLoadBarCode_Update(OpName, kuweiNum.ToString(), "", "",
//EngineID, EngineType, EngineTypeID);
// BaseDataSystemMES.GetUpLoadBarCode(OPName02, out DataTable dt_OPName02);
// dataGridView_OPA1002.Invoke(new Action(() => {
// dataGridView_OPA1002.DataSource = dt_OPName02;
// }));
MIS_BASE.Write_MesReadOver(OpName, true);
}
else
{
MIS_BASE.Write_MesReadOver(OpName, false);
}
}
private void fun_EngineTypeGetOver_PLC2(object e)
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
int tagValue = Convert.ToInt32(msgEvent.TagValue);
SetChekcBox(tagValue, checkBox_PlcEngineTypeGetOver2);
try
{
if (tagValue == 1)
{
int EngineTypeID;//机型代码
int PartPallet_Code;//托盘编号
string EngineType;//机型
string EngineID;//工件编号
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code);
SetTextBox(EngineType, textBox_PlcType2);
SetTextBox(EngineID, textBox_PlcEngineID2);
DataTable dt;
BaseDataSystemMES.GetUnLoadWarehouseNo(OpName, out dt);
if(dt.Rows.Count==0)
{
MessageBox.Show("下线库位已满");
button_ManualPartLoad2.Invoke(new Action(() => {
button_ManualPartLoad2.Enabled = true;
}));
}
else
{
byte kuweiNum = Convert.ToByte(dt.Rows[0]["库位号"]);
DtWebApi.ReadWritePLC.WritePLC(warehouseLocation.ToString(), OpName, kuweiNum);
MIS_BASE.Write_FixAllow(OpName, true);
}
//EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType, EngineID, PartPallet_Code);
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function03:EngineTypeGetOver_PLC");
}
}
}
}