Files
2026-05-29 10:07:05 +08:00

86 lines
3.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using bizFacade;
//using SystemFramework;
using MesServerWork;
namespace MesServerFunctions
{
partial class Functions_BASE_02
{
/// <summary>
///1.输入壳体码,只有输入壳体码后才能允许工作
/// 手动输入壳体码,因目前无二维码所以得加这个
/// </summary>
/// <param name="OpName"></param>
/// <param name="barcode"></param>
public void WorkNumber(object e)
{
try
{
DoWhatPlc.CustomeEvetnArgs msgEvent = (DoWhatPlc.CustomeEvetnArgs)e;
string OpName = Convert.ToString(msgEvent.OpName);
string barcode = Convert.ToString(msgEvent.TagValue).Split('&')[0]; // 壳体码
string distanceNumber = Convert.ToString(msgEvent.TagValue).Split('&')[1]; // 间隔号
int IsAllowWork;
bool IsSuccess = false;
bool IsSuccess2 = false;
bool EngineGetOver_PLC_NextWorkStep;
//工件是否到位
MIS_BASE.Read_WorkStart(OpName, out EngineGetOver_PLC_NextWorkStep);
int EngineTypeID;//机型代码
int PartPallet_Code;//托盘编号
string EngineType;//机型
string EngineID;//工件编号
string OrderForm;
MIS_BASE.GetEngineTypeFromPLC(OpName, out EngineTypeID, out EngineType, out EngineID, out PartPallet_Code, out OrderForm);
//此处逻辑有问题 需要考虑到批次扫描 提示PLC未传递机型的情况
if (EngineGetOver_PLC_NextWorkStep)
{
//1.更新壳体码
BaseDataSystemMES.WorkNumber_Edit(OpName, barcode, OrderForm);
// 1.1把输入的壳体码作为物料写到OP010工位里去
//第二步将零件信息转移到零件_临时表中本地BOM与订单BOM的选择显示关系
BaseDataSystemMES.MesServer_Process_EngineTypeOver("OP0010", 1);
//第三步直接验证物料
BaseDataSystemMES.PartMaterial_DM_Update("OP0010", barcode, out IsSuccess2);
//2.显示新MOBY
Sendmessage("5", "1", OpName);
//3.将MOBY写入地址等待工作完成后保存在码块中
MIS_BASE.Write_EngineID_MES(OpName, barcode);
//1.1 写入间隔号
BaseDataSystemMES.distanceNumber_Edit(distanceNumber, OrderForm);
//4.判断有无要扫的物料,如果没有就直接允许工作
//获取是否允许工作
BaseDataSystemMES.MesServer_Judge_IsCanWork(OpName, out IsAllowWork);
if (IsAllowWork == 1)
{
//通知PLC允许工作,允许工作在保存完成时清空
MIS_BASE.Write_FixAllow(OpName, true);
AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请开始工作");
}
else
{
AsyncSendMessage_Notice(OpName, "壳体码与间隔号修改成功,请扫描物料");
}
}
else
{
AsyncSendMessage_Notice(OpName, "PLC未传递机型");
}
}
catch (Exception err)
{
////ApplicationLog.WriteLog(err, "Function02:Barcode");
}
}
}
}