Пример #1
0
        private void subLotInfomationData(int intPortID, string strCSTID, string strLOTID)
        {
            string strAddress = "W9000";

            try
            {
                InfoAct.clsPort CurrentPort = pInfo.Port(intPortID);
                InfoAct.clsLOT  CurrentLot  = pInfo.LOTID(strLOTID);

                strAddress = FunTypeConversion.funAddressAdd(strAddress, 1024 * (intPortID - 1));

                pEqpAct.funWordWrite(strAddress, ("P0" + intPortID).PadRight(4, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 2);

                pEqpAct.funWordWrite(strAddress, strLOTID.PadRight(20, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 10);

                pEqpAct.funWordWrite(strAddress, strCSTID.PadRight(20, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 10);

                pEqpAct.funWordWrite(strAddress, CurrentLot.LOTJudge.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                pEqpAct.funWordWrite(strAddress, CurrentLot.LSORTTYPE.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                pEqpAct.funWordWrite(strAddress, CurrentLot.OPERID.PadRight(10, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 5);

                pEqpAct.funWordWrite(strAddress, CurrentLot.PRODID.PadRight(20, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 10);

                pEqpAct.funWordWrite(strAddress, CurrentLot.QTY.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);
                strAddress = FunTypeConversion.funAddressAdd(strAddress, 24);

                string[] arrData = new string[25];
                for (int dintLoop = 0; dintLoop < pInfo.Port(intPortID).SlotCount; dintLoop++)
                {
                    if (string.IsNullOrEmpty(CurrentPort.Slot(dintLoop + 1).GLSID))
                    {
                        pEqpAct.funWordWrite(strAddress, "0".PadLeft(128, '0'), EnuEQP.PLCRWType.Hex_Data);
                        pEqpAct.funWordWrite(strAddress, (dintLoop + 1).ToString(), EnuEQP.PLCRWType.Int_Data);
                        strAddress = FunTypeConversion.funAddressAdd(strAddress, 32);
                    }
                    else
                    {
                        if (CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID) == null)
                        {
                            pEqpAct.funWordWrite(strAddress, "0".PadLeft(128, '0'), EnuEQP.PLCRWType.Hex_Data);
                            pEqpAct.funWordWrite(strAddress, (dintLoop + 1).ToString(), EnuEQP.PLCRWType.Int_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 32);
                        }
                        else
                        {
                            pEqpAct.funWordWrite(strAddress, (dintLoop + 1).ToString(), EnuEQP.PLCRWType.Int_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            pEqpAct.funWordWrite(strAddress, CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).GLSID.PadRight(20, ' '), EnuEQP.PLCRWType.ASCII_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 10);

                            pEqpAct.funWordWrite(strAddress, CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).HostPPID.PadRight(20, ' '), EnuEQP.PLCRWType.ASCII_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 10);

                            pEqpAct.funWordWrite(strAddress, CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).GLSJudge.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            pEqpAct.funWordWrite(strAddress, CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).SMPLFLAG.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            pEqpAct.funWordWrite(strAddress, CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).RWKCNT.PadRight(2, ' '), EnuEQP.PLCRWType.ASCII_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            string strPPID = CurrentLot.GLSID(CurrentPort.Slot(dintLoop + 1).GLSID).HostPPID;
                            pEqpAct.funWordWrite(strAddress, pInfo.Unit(0).SubUnit(0).HOSTPPID(strPPID).CLEANER_EQPPPID, EnuEQP.PLCRWType.Int_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            pEqpAct.funWordWrite(strAddress, pInfo.Unit(0).SubUnit(0).HOSTPPID(strPPID).Oven1_EQPPPID, EnuEQP.PLCRWType.Int_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            pEqpAct.funWordWrite(strAddress, (Convert.ToSingle(pInfo.Unit(0).SubUnit(0).HOSTPPID(strPPID).Tickness) * 100).ToString(), EnuEQP.PLCRWType.Int_Data);
                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 1);

                            strAddress = FunTypeConversion.funAddressAdd(strAddress, 5);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                pInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Primary Message를 Biuld하여 Transaction을 Return한다.
        /// </summary>
        /// <param name="strParameters">Parameter 문자열</param>
        public Transaction funPrimarySend(string strParameters)
        {
            string[] arrayEvent;
            string   dstrLOTID  = "";
            int      dintSlotID = 0;

            try
            {
                arrayEvent = strParameters.Split(',');

                int dintBYWHO = 0;

                int dintCEID      = Convert.ToInt32(arrayEvent[1]);                  //CEID
                int dintPortID    = Convert.ToInt32(arrayEvent[2]);
                int dintUnitID    = Convert.ToInt32(arrayEvent[3]);
                int dintSubUnitID = Convert.ToInt32(arrayEvent[4]);
                if (dintCEID == 1006 || dintCEID == 1007 || dintCEID == 1001 || dintCEID == 1004)
                {
                    //if (arrayEvent.Length == 6)
                    //{
                    dstrLOTID  = arrayEvent[5].ToString();
                    dintSlotID = Convert.ToInt32(arrayEvent[6].ToString());
                    //}
                }

                InfoAct.clsPort CurrentPort = pInfo.Port(dintPortID);

                pMsgTran = pSecsDrv.MakeTransaction(this.StrPrimaryMsgName);

                pMsgTran.Primary().Item("DATAID").Putvalue(0);      //Fixed Value
                pMsgTran.Primary().Item("CEID").Putvalue(dintCEID);

                pMsgTran.Primary().Item("RPTID").Putvalue(1);       //Fixed Value
                pMsgTran.Primary().Item("MODULEID").Putvalue(pInfo.Unit(dintUnitID).SubUnit(0).ModuleID);
                pMsgTran.Primary().Item("MODULE_STATE").Putvalue(pInfo.Unit(0).SubUnit(0).EQPState);
                pMsgTran.Primary().Item("MCMD").Putvalue(pInfo.All.ControlState);
                pMsgTran.Primary().Item("PROC_STATE").Putvalue(pInfo.Unit(0).SubUnit(0).EQPProcessState);

                //각 CEID별로 BYWHO값을 설정한다.
                switch (dintCEID)
                {
                case 111:
                    dintBYWHO = 3;
                    break;

                case 113:
                    dintBYWHO = 3;
                    break;

                case 114:
                    dintBYWHO = 4;
                    break;

                default:
                    dintBYWHO = 3;
                    break;
                }

                //InfoAct.clsSlot currentSlot = pInfo.LOTID(dstrLOTID).Slot(dintSlotID);

                pMsgTran.Primary().Item("BYWHO").Putvalue(dintBYWHO);
                pMsgTran.Primary().Item("OPERID").Putvalue(pInfo.All.UserID);

                //면취기는 자체 PORT가 없어 PORTID 이외의 정보를 가지고 있지 않으므로, 협의후 확정될때 까지 무시한다. 20101018 어우수
                pMsgTran.Primary().Item("RPTID1").Putvalue(2);       //Fixed Value
                pMsgTran.Primary().Item("PORTID").Putvalue(CurrentPort.HostReportPortID);
                pMsgTran.Primary().Item("PORT_STATE").Putvalue(CurrentPort.PortState);
                pMsgTran.Primary().Item("PORT_TYPE").Putvalue(CurrentPort.PortType);
                pMsgTran.Primary().Item("PORT_MODE").Putvalue("OK");
                pMsgTran.Primary().Item("SORT_TYPE").Putvalue("0");

                //면취기는 자체 PORT가 없어 CST 정보를 가지고 있지 않으므로, 협의후 확정될때까지 무시한다. 20101018 어우수
                pMsgTran.Primary().Item("RPTID2").Putvalue(3);      //Fixed Value
                pMsgTran.Primary().Item("CSTID").Putvalue(CurrentPort.CSTID);
                if (dintUnitID == 1)
                {
                    pMsgTran.Primary().Item("CST_TYPE").Putvalue("12");
                }
                else
                {
                    pMsgTran.Primary().Item("CST_TYPE").Putvalue("13");
                }
                pMsgTran.Primary().Item("MAP_STIF").Putvalue(CurrentPort.GLSHostMapping10);
                pMsgTran.Primary().Item("CUR_STIF").Putvalue(CurrentPort.GLSRealMapping10);
                pMsgTran.Primary().Item("BATCH_ORDER").Putvalue(CurrentPort.BATCH_ORDER);

                pMsgTran.Primary().Item("RPTID3").Putvalue(10);     //Fixed Value
                pMsgTran.Primary().Item("GLASSCOUNT").Putvalue(1);  //임시 20101018 어우수
                if (dintCEID == 1006 || dintCEID == 1007)
                {
                    //InfoAct.clsSlot currentSlot = new InfoAct.clsSlot(1);
                    InfoAct.clsSlot currentSlot = pInfo.LOTID(dstrLOTID).Slot(dintSlotID);

                    pMsgTran.Primary().Item("H_GLASSID" + 0).Putvalue(currentSlot.GlassID);
                    pMsgTran.Primary().Item("E_GLASSID" + 0).Putvalue(currentSlot.E_PANELID);
                    pMsgTran.Primary().Item("LOTID" + 0).Putvalue(currentSlot.LOTID);
                    pMsgTran.Primary().Item("BATCHID" + 0).Putvalue(currentSlot.BATCHID);
                    pMsgTran.Primary().Item("JOBID" + 0).Putvalue(currentSlot.JOBID);
                    pMsgTran.Primary().Item("PORTID1" + 0).Putvalue(currentSlot.PORTID.Trim());
                    pMsgTran.Primary().Item("SLOTNO" + 0).Putvalue(currentSlot.SLOTNO);
                    pMsgTran.Primary().Item("PROD_TYPE" + 0).Putvalue(currentSlot.PRODUCT_TYPE);
                    pMsgTran.Primary().Item("PROD_KIND" + 0).Putvalue(currentSlot.PRODUCT_KIND);
                    pMsgTran.Primary().Item("PRODUCTID" + 0).Putvalue(currentSlot.PRODUCTID);
                    pMsgTran.Primary().Item("RUNSPECID" + 0).Putvalue(currentSlot.RUNSPECID);
                    pMsgTran.Primary().Item("LAYERID" + 0).Putvalue(currentSlot.LAYERID);
                    pMsgTran.Primary().Item("STEPID" + 0).Putvalue(currentSlot.STEPID);
                    pMsgTran.Primary().Item("PPID" + 0).Putvalue(currentSlot.HOSTPPID);
                    pMsgTran.Primary().Item("FLOWID" + 0).Putvalue(currentSlot.FLOWID);
                    pMsgTran.Primary().Item("SIZE" + 0).Putvalue(currentSlot.SIZE);
                    pMsgTran.Primary().Item("THICKNESS" + 0).Putvalue(currentSlot.THICKNESS);
                    pMsgTran.Primary().Item("STATE" + 0).Putvalue(currentSlot.GLASS_STATE);
                    pMsgTran.Primary().Item("ORDER" + 0).Putvalue(currentSlot.GLASS_ORDER);
                    pMsgTran.Primary().Item("COMMENT" + 0).Putvalue(currentSlot.COMMENT);

                    pMsgTran.Primary().Item("USE_COUNT" + 0).Putvalue(currentSlot.USE_COUNT);
                    pMsgTran.Primary().Item("JUDGEMENT" + 0).Putvalue(currentSlot.JUDGEMENT);
                    pMsgTran.Primary().Item("REASON_CODE" + 0).Putvalue(currentSlot.REASON_CODE);
                    pMsgTran.Primary().Item("INS_FLAG" + 0).Putvalue(currentSlot.INS_FLAG);
                    pMsgTran.Primary().Item("ENC_FALG" + 0).Putvalue(currentSlot.ENC_FLAG);
                    pMsgTran.Primary().Item("PRERUN_FLAG" + 0).Putvalue(currentSlot.PRERUN_FLAG);
                    pMsgTran.Primary().Item("TURN_DIR" + 0).Putvalue(currentSlot.TURN_DIR);
                    pMsgTran.Primary().Item("FLIP_STATE" + 0).Putvalue(currentSlot.FLIP_STATE);
                    pMsgTran.Primary().Item("WORK_STATE" + 0).Putvalue(currentSlot.WORK_STATE);
                    pMsgTran.Primary().Item("MULTI_USE" + 0).Putvalue(currentSlot.MULTI_USE);

                    pMsgTran.Primary().Item("PAIR_GLASSID" + 0).Putvalue(currentSlot.PAIR_GLASSID);
                    pMsgTran.Primary().Item("PAIR_PPID" + 0).Putvalue(currentSlot.PAIR_PPID);

                    pMsgTran.Primary().Item("OPTION_NAME1" + 0).Putvalue(currentSlot.OPTION_NAME[0]);
                    pMsgTran.Primary().Item("OPTION_VALUE1" + 0).Putvalue(currentSlot.OPTION_VALUE[0]);
                    pMsgTran.Primary().Item("OPTION_NAME2" + 0).Putvalue(currentSlot.OPTION_NAME[1]);
                    pMsgTran.Primary().Item("OPTION_VALUE2" + 0).Putvalue(currentSlot.OPTION_VALUE[1]);
                    pMsgTran.Primary().Item("OPTION_NAME3" + 0).Putvalue(currentSlot.OPTION_NAME[2]);
                    pMsgTran.Primary().Item("OPTION_VALUE3" + 0).Putvalue(currentSlot.OPTION_VALUE[2]);
                    pMsgTran.Primary().Item("OPTION_NAME4" + 0).Putvalue(currentSlot.OPTION_NAME[3]);
                    pMsgTran.Primary().Item("OPTION_VALUE4" + 0).Putvalue(currentSlot.OPTION_VALUE[3]);
                    pMsgTran.Primary().Item("OPTION_NAME5" + 0).Putvalue(currentSlot.OPTION_NAME[4]);
                    pMsgTran.Primary().Item("OPTION_VALUE5" + 0).Putvalue(currentSlot.OPTION_VALUE[4]);

                    pMsgTran.Primary().Item("SUBMATERIALCOUNT" + 0).Putvalue(0);
                }
                else if (dintCEID == 1001 || dintCEID == 1004)
                {
                    InfoAct.clsSlot currentSlot = pInfo.LOTID(dstrLOTID).Slot(dintSlotID);


                    if (currentSlot == null)
                    {
                        pInfo.LOTID(dstrLOTID).AddSlot(dintSlotID);
                        currentSlot           = pInfo.LOTID(dstrLOTID).Slot(dintSlotID);
                        currentSlot.USE_COUNT = dintSlotID.ToString();
                    }

                    pMsgTran.Primary().Item("H_GLASSID" + 0).Putvalue(currentSlot.GlassID);
                    pMsgTran.Primary().Item("E_GLASSID" + 0).Putvalue(currentSlot.E_PANELID);
                    pMsgTran.Primary().Item("LOTID" + 0).Putvalue(currentSlot.LOTID);
                    pMsgTran.Primary().Item("BATCHID" + 0).Putvalue(currentSlot.BATCHID);
                    pMsgTran.Primary().Item("JOBID" + 0).Putvalue(currentSlot.JOBID);
                    pMsgTran.Primary().Item("PORTID1" + 0).Putvalue(currentSlot.PORTID.Trim());
                    pMsgTran.Primary().Item("SLOTNO" + 0).Putvalue(currentSlot.SLOTNO);
                    pMsgTran.Primary().Item("PROD_TYPE" + 0).Putvalue(currentSlot.PRODUCT_TYPE);
                    pMsgTran.Primary().Item("PROD_KIND" + 0).Putvalue(currentSlot.PRODUCT_KIND);
                    pMsgTran.Primary().Item("PRODUCTID" + 0).Putvalue(currentSlot.PRODUCTID);
                    pMsgTran.Primary().Item("RUNSPECID" + 0).Putvalue(currentSlot.RUNSPECID);
                    pMsgTran.Primary().Item("LAYERID" + 0).Putvalue(currentSlot.LAYERID);
                    pMsgTran.Primary().Item("STEPID" + 0).Putvalue(currentSlot.STEPID);
                    pMsgTran.Primary().Item("PPID" + 0).Putvalue(currentSlot.HOSTPPID);
                    pMsgTran.Primary().Item("FLOWID" + 0).Putvalue(currentSlot.FLOWID);
                    pMsgTran.Primary().Item("SIZE" + 0).Putvalue(currentSlot.SIZE);
                    pMsgTran.Primary().Item("THICKNESS" + 0).Putvalue(currentSlot.THICKNESS);
                    pMsgTran.Primary().Item("STATE" + 0).Putvalue(currentSlot.GLASS_STATE);
                    pMsgTran.Primary().Item("ORDER" + 0).Putvalue(currentSlot.GLASS_ORDER);
                    pMsgTran.Primary().Item("COMMENT" + 0).Putvalue(currentSlot.COMMENT);

                    pMsgTran.Primary().Item("USE_COUNT" + 0).Putvalue(currentSlot.USE_COUNT);
                    pMsgTran.Primary().Item("JUDGEMENT" + 0).Putvalue(currentSlot.JUDGEMENT);
                    pMsgTran.Primary().Item("REASON_CODE" + 0).Putvalue(currentSlot.REASON_CODE);
                    pMsgTran.Primary().Item("INS_FLAG" + 0).Putvalue(currentSlot.INS_FLAG);
                    pMsgTran.Primary().Item("ENC_FALG" + 0).Putvalue(currentSlot.ENC_FLAG);
                    pMsgTran.Primary().Item("PRERUN_FLAG" + 0).Putvalue(currentSlot.PRERUN_FLAG);
                    pMsgTran.Primary().Item("TURN_DIR" + 0).Putvalue(currentSlot.TURN_DIR);
                    pMsgTran.Primary().Item("FLIP_STATE" + 0).Putvalue(currentSlot.FLIP_STATE);
                    pMsgTran.Primary().Item("WORK_STATE" + 0).Putvalue(currentSlot.WORK_STATE);
                    pMsgTran.Primary().Item("MULTI_USE" + 0).Putvalue(currentSlot.MULTI_USE);

                    pMsgTran.Primary().Item("PAIR_GLASSID" + 0).Putvalue(currentSlot.PAIR_GLASSID);
                    pMsgTran.Primary().Item("PAIR_PPID" + 0).Putvalue(currentSlot.PAIR_PPID);

                    pMsgTran.Primary().Item("OPTION_NAME1" + 0).Putvalue(currentSlot.OPTION_NAME[0]);
                    pMsgTran.Primary().Item("OPTION_VALUE1" + 0).Putvalue(currentSlot.OPTION_VALUE[0]);
                    pMsgTran.Primary().Item("OPTION_NAME2" + 0).Putvalue(currentSlot.OPTION_NAME[1]);
                    pMsgTran.Primary().Item("OPTION_VALUE2" + 0).Putvalue(currentSlot.OPTION_VALUE[1]);
                    pMsgTran.Primary().Item("OPTION_NAME3" + 0).Putvalue(currentSlot.OPTION_NAME[2]);
                    pMsgTran.Primary().Item("OPTION_VALUE3" + 0).Putvalue(currentSlot.OPTION_VALUE[2]);
                    pMsgTran.Primary().Item("OPTION_NAME4" + 0).Putvalue(currentSlot.OPTION_NAME[3]);
                    pMsgTran.Primary().Item("OPTION_VALUE4" + 0).Putvalue(currentSlot.OPTION_VALUE[3]);
                    pMsgTran.Primary().Item("OPTION_NAME5" + 0).Putvalue(currentSlot.OPTION_NAME[4]);
                    pMsgTran.Primary().Item("OPTION_VALUE5" + 0).Putvalue(currentSlot.OPTION_VALUE[4]);

                    pMsgTran.Primary().Item("SUBMATERIALCOUNT" + 0).Putvalue(0);
                }
                else
                {
                    InfoAct.clsSlot currentSlot = CurrentPort.Slot(1);

                    pMsgTran.Primary().Item("H_GLASSID" + 0).Putvalue(currentSlot.GlassID);
                    pMsgTran.Primary().Item("E_GLASSID" + 0).Putvalue(currentSlot.E_PANELID);
                    pMsgTran.Primary().Item("LOTID" + 0).Putvalue(currentSlot.LOTID);
                    pMsgTran.Primary().Item("BATCHID" + 0).Putvalue(currentSlot.BATCHID);
                    pMsgTran.Primary().Item("JOBID" + 0).Putvalue(currentSlot.JOBID);
                    pMsgTran.Primary().Item("PORTID1" + 0).Putvalue(currentSlot.PORTID.Trim());
                    pMsgTran.Primary().Item("SLOTNO" + 0).Putvalue(currentSlot.SLOTNO);
                    pMsgTran.Primary().Item("PROD_TYPE" + 0).Putvalue(currentSlot.PRODUCT_TYPE);
                    pMsgTran.Primary().Item("PROD_KIND" + 0).Putvalue(currentSlot.PRODUCT_KIND);
                    pMsgTran.Primary().Item("PRODUCTID" + 0).Putvalue(currentSlot.PRODUCTID);
                    pMsgTran.Primary().Item("RUNSPECID" + 0).Putvalue(currentSlot.RUNSPECID);
                    pMsgTran.Primary().Item("LAYERID" + 0).Putvalue(currentSlot.LAYERID);
                    pMsgTran.Primary().Item("STEPID" + 0).Putvalue(currentSlot.STEPID);
                    pMsgTran.Primary().Item("PPID" + 0).Putvalue(currentSlot.HOSTPPID);
                    pMsgTran.Primary().Item("FLOWID" + 0).Putvalue(currentSlot.FLOWID);
                    pMsgTran.Primary().Item("SIZE" + 0).Putvalue(currentSlot.SIZE);
                    pMsgTran.Primary().Item("THICKNESS" + 0).Putvalue(currentSlot.THICKNESS);
                    pMsgTran.Primary().Item("STATE" + 0).Putvalue(currentSlot.GLASS_STATE);
                    pMsgTran.Primary().Item("ORDER" + 0).Putvalue(currentSlot.GLASS_ORDER);
                    pMsgTran.Primary().Item("COMMENT" + 0).Putvalue(currentSlot.COMMENT);

                    pMsgTran.Primary().Item("USE_COUNT" + 0).Putvalue(currentSlot.USE_COUNT);
                    pMsgTran.Primary().Item("JUDGEMENT" + 0).Putvalue(currentSlot.JUDGEMENT);
                    pMsgTran.Primary().Item("REASON_CODE" + 0).Putvalue(currentSlot.REASON_CODE);
                    pMsgTran.Primary().Item("INS_FLAG" + 0).Putvalue(currentSlot.INS_FLAG);
                    pMsgTran.Primary().Item("ENC_FALG" + 0).Putvalue(currentSlot.ENC_FLAG);
                    pMsgTran.Primary().Item("PRERUN_FLAG" + 0).Putvalue(currentSlot.PRERUN_FLAG);
                    pMsgTran.Primary().Item("TURN_DIR" + 0).Putvalue(currentSlot.TURN_DIR);
                    pMsgTran.Primary().Item("FLIP_STATE" + 0).Putvalue(currentSlot.FLIP_STATE);
                    pMsgTran.Primary().Item("WORK_STATE" + 0).Putvalue(currentSlot.WORK_STATE);
                    pMsgTran.Primary().Item("MULTI_USE" + 0).Putvalue(currentSlot.MULTI_USE);

                    pMsgTran.Primary().Item("PAIR_GLASSID" + 0).Putvalue(currentSlot.PAIR_GLASSID);
                    pMsgTran.Primary().Item("PAIR_PPID" + 0).Putvalue(currentSlot.PAIR_PPID);

                    pMsgTran.Primary().Item("OPTION_NAME1" + 0).Putvalue(currentSlot.OPTION_NAME[0]);
                    pMsgTran.Primary().Item("OPTION_VALUE1" + 0).Putvalue(currentSlot.OPTION_VALUE[0]);
                    pMsgTran.Primary().Item("OPTION_NAME2" + 0).Putvalue(currentSlot.OPTION_NAME[1]);
                    pMsgTran.Primary().Item("OPTION_VALUE2" + 0).Putvalue(currentSlot.OPTION_VALUE[1]);
                    pMsgTran.Primary().Item("OPTION_NAME3" + 0).Putvalue(currentSlot.OPTION_NAME[2]);
                    pMsgTran.Primary().Item("OPTION_VALUE3" + 0).Putvalue(currentSlot.OPTION_VALUE[2]);
                    pMsgTran.Primary().Item("OPTION_NAME4" + 0).Putvalue(currentSlot.OPTION_NAME[3]);
                    pMsgTran.Primary().Item("OPTION_VALUE4" + 0).Putvalue(currentSlot.OPTION_VALUE[3]);
                    pMsgTran.Primary().Item("OPTION_NAME5" + 0).Putvalue(currentSlot.OPTION_NAME[4]);
                    pMsgTran.Primary().Item("OPTION_VALUE5" + 0).Putvalue(currentSlot.OPTION_VALUE[4]);

                    pMsgTran.Primary().Item("SUBMATERIALCOUNT" + 0).Putvalue(0);
                }


                return(pMsgTran);
            }
            catch (Exception error)
            {
                funSetLog(InfoAct.clsInfo.LogType.CIM, error.ToString());
                return(null);
            }
        }