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

191 lines
8.2 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 System.Data;
using bizFacade;
using MesServerWork;
namespace MesServerFunctions
{
partial class FunctionMES
{
/// <summary>
/// 正常逻辑工作(传递机型)
/// </summary>
/// <param name="OpName"></param>
/// <param name="EngineTypeID"></param>
/// <param name="EngineType"></param>
/// <param name="EngineID"></param>
/// <param name="PartPallet_Code"></param>
private void EngineTypeGetOver_PLC_Work(string OpName, int EngineTypeID, string EngineType, string EngineID, int PartPallet_Code, string OrderForm)
{
int IsAllowWork;
int RepairPartStatusPLC = 0;
int MES_QualityMask = 1;
string OpName_MainLine = "OP050";
string OpName_SubLine = "OPA90";
//电子看板_装配零件_临时表_增加_北汽
//第二步将零件信息转移到零件_临时表中
BaseDataSystemMES.MesServer_Process_EngineTypeOverBQ(OpName);
//通知web显示
SendMessageFun.SendMessage("123", "111", OpName);
//MIS_BASE.Read_PalletInfo(OpName, out MES_QualityMask);//合格标志 合格标志暂时改为即时响应式的
//MIS_BASE.Read_RepairStatus_PLC(OpName, out RepairPartStatusPLC);//返修标志
//SendMessageFun.SendInfomation("QualityMask", Convert.ToString(MES_QualityMask), OpName);//显示合格标志
//SendMessageFun.SendInfomation("RepairPartStatusPLC", Convert.ToString(RepairPartStatusPLC), OpName);//显示返修标志
// 去将该工件之前的件都标记为异常件
BaseDataSystemMES.OPA90CheckQiaoKeErrorData(EngineID);
// 1.判断052工位给的是否在050 工位干活的信号 若不在该工位干则直接退出Function
Db.OP051_OP050_NeedWork_Search(EngineID, out int IsWork);
if(IsWork == 2)
{
// 2 写入托盘不需要工作后退出方法
MIS_BASE.WritePLC(77, OpName, 2);// 托盘不需要工作
return;
}
// 正常流程托盘需要工作
MIS_BASE.WritePLC(77, OpName, 1);// 托盘需要工作
// 2. 读取是否存在两个已匹配的轮毂 若存在则可以允许工作
bool result = Db.OPA90_TO_OP50_CheckTwoFinish(out int isNeedWork);
if(isNeedWork == 1)
{
string LunGuCode1 = MIS_BASE.ReadPLC(123, OpName).ToString();
string LunGuCode2 = MIS_BASE.ReadPLC(124, OpName).ToString();
if ((LunGuCode1 == "0" || LunGuCode1 == "" || LunGuCode1.Length < 5 || LunGuCode1.IndexOf("\0") != -1) || (LunGuCode2 == "0" || LunGuCode2 == "" || LunGuCode2.Length < 5 || LunGuCode2.IndexOf("\0") != -1))
{
return;
}
Db.OPA92_DeleteLineData(EngineID, LunGuCode1, LunGuCode2);
MIS_BASE.Write_FixAllow(OpName, true); // 允许工作
// 绑定关系 同时 删除记录
//Db.OPA92_DeleteLineData(EngineID);
}
// 判断主线是否 传递机型
//if (EngineGetOver_MainLine)
//{
// string EngineTypeID_MainLine;
// int EngineTypeID_MainLineQiaoKe;
// // 读取主线桥壳机型
// MIS_BASE.Read_EngineTypeID(OpName_MainLine, out EngineTypeID_MainLineQiaoKe);
// // 读取分线存储的桥壳机型
// MIS_BASE.Read_TagTypeID(38, OpName_SubLine, out EngineTypeID_MainLine);
// if (Convert.ToInt32(EngineTypeID_MainLine) == EngineTypeID)
// {
// Db.OP50_OPA90_MatchResult(EngineTypeID, Convert.ToInt32(EngineTypeID_MainLine), EngineTypeID_MainLineQiaoKe, out int MatchResult);
// if (MatchResult == 0) // 不匹配
// {
// // 主线
// MIS_BASE.Write_Match(OpName_MainLine, false);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_MainLine, false);// 匹配完成
// MIS_BASE.Write_FixAllow(OpName_MainLine, false); // 允许工作
// // 分线
// MIS_BASE.Write_Match(OpName_SubLine, false);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_SubLine, false);// 匹配完成
// MIS_BASE.Write_FixAllow(OpName_SubLine, false); // 允许工作
// // 写入分线 等待 0
// MIS_BASE.WritePLC(29, OpName_SubLine, "0");
// }
// if (MatchResult == 1) // 允许抓
// {
// // 主线
// MIS_BASE.Write_Match(OpName_MainLine, true);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_MainLine, true);// 匹配完成
// // 分线
// MIS_BASE.Write_Match(OpName_SubLine, true);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_SubLine, true);// 匹配完成
// MIS_BASE.Write_FixAllow(OpName_MainLine, true); // 允许工作
// // 写入分线 等待 0
// MIS_BASE.WritePLC(29, OpName_SubLine, "0");
// }
// if (MatchResult == 2) // 等待
// {
// // 写入分线 等待 1
// MIS_BASE.WritePLC(29, OpName_SubLine, "1");
// }
// }
// else // 不匹配
// {
// // 主线
// MIS_BASE.Write_Match(OpName_MainLine, false);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_MainLine, false);// 匹配完成
// MIS_BASE.Write_FixAllow(OpName_MainLine, false); // 允许工作
// // 分线
// MIS_BASE.Write_Match(OpName_SubLine, false);// 匹配结果
// MIS_BASE.Write_MatchingCompleted(OpName_SubLine, false);// 匹配完成
// MIS_BASE.Write_FixAllow(OpName_SubLine, false); // 允许工作
// // 写入分线 等待 0
// MIS_BASE.WritePLC(29, OpName_SubLine, "0");
// }
//}
}
/// <summary>
/// 二次工作
/// </summary>
/// <param name="OpName"></param>
private void EngineTypeGetOver_PLC_Work_two(string OpName)
{
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);
EngineTypeGetOver_PLC_Work(OpName, EngineTypeID, EngineType, EngineID, Convert.ToInt32(PartPallet_Code), OrderForm);
}
/// <summary>
/// 跳过二次工作
/// </summary>
/// <param name="OpName"></param>
private void EngineTypeGetOver_PLC_Work_Skip(string OpName)
{
MIS_BASE.Write_MesReadOver(OpName, true);
MIS_BASE.Write_MaterialVerifyOver(OpName, true);
}
/// <summary>
/// 返修件需要工作
/// </summary>
/// <param name="OpName">工位号</param>
private void IsNeedRepaire_OK(string OpName)
{
string orderForm = "";
int engineTypeID;
string engineType = "";
string engineID = "";
string palletCode = "";
int isRepair;
string repairCode = "";
//从监控系统中查询出本工位信息
BaseDataSystemMES.OpName_MIS_Moby_Select(OpName,
out orderForm, out engineTypeID, out engineType,
out engineID, out palletCode, out isRepair, out repairCode);
EngineTypeGetOver_PLC_Work(OpName, engineTypeID, engineType, engineID, Convert.ToInt32(palletCode), orderForm);
}
}
}