private void PSecsDrv_S3F101GLSINFO()
{
try
{
this.m_Info.Set_ReceiveHostSF("S3F101GLSINFO");
}
catch (Exception ex)
{
this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
}
}
private void S3F101LotInformation()
{
int iGlassCount = 0;
string sProcessID = string.Empty;
string sPartID = string.Empty;
string sStepID = string.Empty;
string sGlassID = string.Empty;
string sLOTAction = string.Empty;
int iSlotNo = 0;
byte dintACKC3 = 0x00;
try
{
if (this.m_Info.All.HostConnect == false) return;
if (funACTSECSAort_Send(this.PSecsDrv.S3F101GLSINFO.Header) == true) return;
if (this.m_Info.Port(1).Status != Structure.classStructure.PortStatus.LDCM || this.m_Info.Port(1).CSTID == string.Empty)
{
dintACKC3 = 0x03;
}
this.PSecsDrv.S3F102GLSINFOReply.PTID = this.PSecsDrv.S3F101GLSINFO.PTID;
this.PSecsDrv.S3F102GLSINFOReply.CSTID = this.PSecsDrv.S3F101GLSINFO.CSTID;
this.PSecsDrv.S3F102GLSINFOReply.JOBID = this.PSecsDrv.S3F101GLSINFO.JOBID;
this.PSecsDrv.S3F102GLSINFOReply.DEVICE = this.PSecsDrv.S3F101GLSINFO.DEVICE;
int.TryParse(this.PSecsDrv.S3F101GLSINFO.GLSCOUNT.ToString(), out iGlassCount);
this.PSecsDrv.S3F102GLSINFOReply.GLSCOUNT = iGlassCount;
for (int nGlassLoop = 1; nGlassLoop <= iGlassCount; nGlassLoop++)
{
sProcessID = this.PSecsDrv.S3F101GLSINFO.get_PROCESSID(nGlassLoop).Trim();
sPartID = this.PSecsDrv.S3F101GLSINFO.get_PARTID(nGlassLoop).Trim();
sStepID = this.PSecsDrv.S3F101GLSINFO.get_STEPID(nGlassLoop).Trim();
sGlassID = this.PSecsDrv.S3F101GLSINFO.get_GLASSID(nGlassLoop).Trim();
sLOTAction = this.PSecsDrv.S3F101GLSINFO.get_LOTACTION(nGlassLoop).Trim();
this.PSecsDrv.S3F102GLSINFOReply.set_SLOTNO(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_SLOTNO(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_PROCESSID(nGlassLoop, sProcessID);
this.PSecsDrv.S3F102GLSINFOReply.set_PARTID(nGlassLoop, sPartID);
this.PSecsDrv.S3F102GLSINFOReply.set_STEPID(nGlassLoop, sStepID);
this.PSecsDrv.S3F102GLSINFOReply.set_GLASSTYPE(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_GLASSTYPE(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_LOTID(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_LOTID(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_GLASSID(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_GLASSID(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_PPID(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_PPID(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_CELLGRADE(nGlassLoop, this.PSecsDrv.S3F101GLSINFO.get_CELLGRADE(nGlassLoop));
this.PSecsDrv.S3F102GLSINFOReply.set_LOTACTION(nGlassLoop, sLOTAction);
string sCellDataLog = string.Empty;
string[] sReceiveGLSID = sGlassID.Split('.');
GetSlotNoFromGlassID(sGlassID.Replace(".", ""), out iSlotNo);
//if (iSlotNo > 0 && dintACKC3 == 0x00)
////if (GetSlotNoFromGlassID(sGlassID, out iSlotNo) && dintACKC3 == 0x00)
//{ }
//else if (dintACKC3 == 0x00)
if (iSlotNo == 0)
{
dintACKC3 = 0x04;
this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "S3F101 => H_PANELID : " + sGlassID); //SlotNo : " + iSlotNo + ", VCRID : " + this.m_Info.Port(1).Slot(iSlotNo).E_PANELID + ",
}
else
{
if (this.m_Info.Port(1).Slot(iSlotNo).STEPID != this.m_Info.All.LastStepID)
{
this.m_Info.Port(1).Slot(iSlotNo).LOTACTION = "NG"; // 현재 설정된 STEPID 와 LotInfo 의 STEPID 가 맞지않다면
}
else
{
this.m_Info.Port(1).Slot(iSlotNo).LOTACTION = sLOTAction.ToUpper();
}
this.m_Info.Port(1).Slot(iSlotNo).STEPID = sStepID;
if (this.m_Info.Port(1).Slot(iSlotNo).LOTACTION.Contains("OK") == false
|| this.m_Info.Port(1).Slot(iSlotNo).STEPID != this.m_Info.All.LastStepID)
{
this.m_Info.Port(1).GLSNGCnt++;
this.m_Info.Port(1).GLSNGSlot = this.m_Info.Port(1).GLSNGSlot + iSlotNo + ",";
}
this.m_Info.Port(1).Slot(iSlotNo).H_PANELID = sGlassID;
this.m_Info.Port(1).Slot(iSlotNo).PROCESSID = sProcessID;
this.m_Info.Port(1).Slot(iSlotNo).PARTID = sPartID;
this.m_Info.Port(1).Slot(iSlotNo).STEPID = sStepID;
this.m_Info.Port(1).GLSTotalCnt++;
this.m_Info.Port(1).PROCESSID = sProcessID;
this.m_Info.Port(1).PRODUCTID = sPartID;
}
// 글라스 1장에 대한 DATA를 받을 때 마다 Port Data를 Backup 한다.
this.m_Info.subJobFailLotSave(1);
//PROCESSTIME,PORTID,CSTID,SLOTNO,PANELID,STEPID,PROCESSID,PRODUCTID,REASON
sCellDataLog = ",01," + this.m_Info.Port(1).CSTID + "," + iSlotNo.ToString().PadLeft(3, '0') + "," +
sGlassID + "," + sStepID + "," + sProcessID + "," + sPartID + "," + sLOTAction;
this.m_Info.Set_Log(EnuCommon.LogType.Cell, sCellDataLog);
}
this.PSecsDrv.S3F102GLSINFOReply.ACKC6 = dintACKC3;
this.PSecsDrv.S3F102GLSINFOReply.Reply(this.PSecsDrv.S3F101GLSINFO.Header);
}
catch (Exception ex)
{
this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
}
}