Beispiel #1
0
        /// <summary>
        /// CIM에서 설비로 발생하는 Event에 대한 처리
        /// </summary>
        /// <param name="parameters">Parameter Array</param>
        /// <remarks>
        /// parameters[0] : cmdName
        /// parameters[1] : 1st parameter
        /// parameters[2] : 2nd parameter
        /// parameters[3] : 3rd parameter
        /// parameters[4] : 4th parameter
        /// parameters[5] : 5th Parameter
        /// </remarks>
        public void funProcessCIMEvent(object[] parameters)
        {
            string dstrBitAddress  = "B0020";
            string dstrWordAddress = "W0100";
            string dstrLOTID       = "";
            string dstrGLSID       = "";
            int    dintUnitID      = 0;

            try
            {
                dstrLOTID  = parameters[0].ToString().Trim();
                dstrGLSID  = parameters[1].ToString().Trim();
                dintUnitID = Convert.ToInt32(parameters[2].ToString());

                InfoAct.clsLOT CurrentLot = pInfo.LOTID(dstrLOTID);

                if (CurrentLot == null)
                {
                    pInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, string.Format("Scrap Index Report Error!! Current Lot Error!! LOTID : {0}, GLSID : {1}, UnitNo : {2}", dstrLOTID, dstrGLSID, dintUnitID));
                    return;
                }

                InfoAct.clsGLS CurrentGLS = CurrentLot.GLSID(dstrGLSID);

                if (CurrentGLS == null)
                {
                    pInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, string.Format("Scrap Index Report Error!! Current GLS Error!! LOTID : {0}, GLSID : {1}, UnitNo : {2}", dstrLOTID, dstrGLSID, dintUnitID));
                    return;
                }

                dstrWordAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrWordAddress, 16 * (dintUnitID - 2));
                pEqpAct.funWordWrite(dstrWordAddress, pInfo.Port(CurrentLot.InPortID).HostReportPortID, EnuEQP.PLCRWType.ASCII_Data);
                dstrWordAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrWordAddress, 2);
                pEqpAct.funWordWrite(dstrWordAddress, CurrentGLS.SlotID.ToString(), EnuEQP.PLCRWType.Int_Data);
                dstrWordAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrWordAddress, 1);
                pEqpAct.funWordWrite(dstrWordAddress, dstrGLSID.PadRight(20), EnuEQP.PLCRWType.ASCII_Data);

                //LotStartFlag 처리
                dstrWordAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrWordAddress, 10);
                //pEqpAct.funWordWrite(dstrWordAddress, , EnuEQP.PLCRWType.Int_Data);

                //LotEndFlag 처리
                dstrWordAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrWordAddress, 10);
                //pEqpAct.funWordWrite(dstrWordAddress, , EnuEQP.PLCRWType.Int_Data);

                dstrBitAddress = CommonAct.FunTypeConversion.funAddressAdd(dstrBitAddress, dintUnitID - 2);
                pEqpAct.funBitWrite(dstrBitAddress, "1");
            }
            catch (Exception ex)
            {
                pInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, ex.ToString());
            }
        }
Beispiel #2
0
        public void subshowTreeView()
        {
            if (MessageBox.Show("CIM Data 정보를 불러오는 중입니다!!\r\n설비 가동 중에 사용하시면 Data보고누락 및 문제가 발생할 수 있습니다.\r\n그래도 사용하시겠습니까?", "CIM Data Loading", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
            {
                int A = 0;
                int B = 0;
                int C = 0;
                int D = 0;
                int E = 0;
                int F = 0;
                int G = 0;
                //string dstrTemp = "";
                //string[] darrEvent;

                try
                {
                    TreeView1.Nodes.Clear();

                    //전체 EQP 공통
                    //0. All Info
                    TreeView1.Nodes.Add("00. All");
                    if (this.PInfo.All != null)
                    {
                        TreeView1.Nodes[A].Nodes.Add("SoftVersion: " + this.PInfo.All.SoftVersion);
                        TreeView1.Nodes[A].Nodes.Add("MDLN: " + this.PInfo.All.MDLN);
                        TreeView1.Nodes[A].Nodes.Add("HostConnect: " + this.PInfo.All.HostConnect);
                        TreeView1.Nodes[A].Nodes.Add("SecomDriver: " + this.PInfo.All.SecomDriver);

                        TreeView1.Nodes[A].Nodes.Add("CommPort: " + this.PInfo.All.CommPort);
                        TreeView1.Nodes[A].Nodes.Add("CommSetting: " + this.PInfo.All.CommSetting);

                        TreeView1.Nodes[A].Nodes.Add("DeviceID: " + this.PInfo.All.DeviceID);
                        TreeView1.Nodes[A].Nodes.Add("LocalPort: " + this.PInfo.All.LocalPort);
                        TreeView1.Nodes[A].Nodes.Add("RetryCount: " + this.PInfo.All.RetryCount);
                        TreeView1.Nodes[A].Nodes.Add("T3: " + this.PInfo.All.T3);
                        TreeView1.Nodes[A].Nodes.Add("T5: " + this.PInfo.All.T5);
                        TreeView1.Nodes[A].Nodes.Add("T6: " + this.PInfo.All.T6);
                        TreeView1.Nodes[A].Nodes.Add("T7: " + this.PInfo.All.T7);
                        TreeView1.Nodes[A].Nodes.Add("T8: " + this.PInfo.All.T8);
                        TreeView1.Nodes[A].Nodes.Add("T9: " + this.PInfo.All.T9);

                        TreeView1.Nodes[A].Nodes.Add("CurrentHOSTPPID: " + this.PInfo.All.CurrentHOSTPPID);
                        TreeView1.Nodes[A].Nodes.Add("CurrentEQPPPID: " + this.PInfo.All.CurrentEQPPPID);
                        TreeView1.Nodes[A].Nodes.Add("CurrentRegisteredHOSTPPIDCount: " + this.PInfo.All.CurrentRegisteredHOSTPPIDCount);
                        TreeView1.Nodes[A].Nodes.Add("CurrentRegisteredEQPPPIDCount: " + this.PInfo.All.CurrentRegisteredEQPPPIDCount);
                        TreeView1.Nodes[A].Nodes.Add("HOSTPPIDCommandCount: " + this.PInfo.All.HOSTPPIDCommandCount);
                        TreeView1.Nodes[A].Nodes.Add("EQPPPIDCommandCount: " + this.PInfo.All.EQPPPIDCommandCount);
                        TreeView1.Nodes[A].Nodes.Add("SetUpPPIDPLCWriteCount: " + this.PInfo.All.SetUpPPIDPLCWriteCount);

                        TreeView1.Nodes[A].Nodes.Add("ProgramEnd: " + this.PInfo.All.ProgramEnd);
                        TreeView1.Nodes[A].Nodes.Add("UserID: " + this.PInfo.All.UserID);
                        TreeView1.Nodes[A].Nodes.Add("OperatorCallFormVisible: " + this.PInfo.All.OperatorCallFormVisible);
                        TreeView1.Nodes[A].Nodes.Add("AutoMode: " + this.PInfo.All.AutoMode);
                        TreeView1.Nodes[A].Nodes.Add("PMCode: " + this.PInfo.All.PMCode);
                        TreeView1.Nodes[A].Nodes.Add("AlarmExist: " + this.PInfo.All.AlarmExist);
                        TreeView1.Nodes[A].Nodes.Add("UserLogInDuringTime: " + this.PInfo.All.UserLogInDuringTime);
                        TreeView1.Nodes[A].Nodes.Add("PLCActionEnd: " + this.PInfo.All.PLCActionEnd);

                        TreeView1.Nodes[A].Nodes.Add("isReceivedFromHOST: " + this.PInfo.All.isReceivedFromHOST);
                        TreeView1.Nodes[A].Nodes.Add("isReceivedFromCIM: " + this.PInfo.All.isReceivedFromCIM);

                        TreeView1.Nodes[A].Nodes.Add("SystemINIFilePath: " + this.PInfo.All.SystemINIFilePath);
                        TreeView1.Nodes[A].Nodes.Add("ONLINEModeChange: " + this.PInfo.All.ONLINEModeChange);
                        TreeView1.Nodes[A].Nodes.Add("ControlState: " + this.PInfo.All.ControlState);
                        TreeView1.Nodes[A].Nodes.Add("ControlStateOLD: " + this.PInfo.All.ControlStateOLD);
                        TreeView1.Nodes[A].Nodes.Add("WantControlState: " + this.PInfo.All.WantControlState);

                        TreeView1.Nodes[A].Nodes.Add("OccurHeavyAlarmID(Heavy): " + this.PInfo.All.OccurHeavyAlarmID);
                        TreeView1.Nodes[A].Nodes.Add("ClearHeavyAlarmID(Heavy): " + this.PInfo.All.ClearHeavyAlarmID);

                        TreeView1.Nodes[A].Nodes.Add("ControlstateChangeBYWHO: " + this.PInfo.All.ControlstateChangeBYWHO);
                        TreeView1.Nodes[A].Nodes.Add("EQPSpecifiedCtrlBYWHO: " + this.PInfo.All.EQPSpecifiedCtrlBYWHO);
                        TreeView1.Nodes[A].Nodes.Add("ECIDChangeBYWHO: " + this.PInfo.All.ECIDChangeBYWHO);
                        TreeView1.Nodes[A].Nodes.Add("EOIDChangeBYWHO: " + this.PInfo.All.EOIDChangeBYWHO);

                        TreeView1.Nodes[A].Nodes.Add("ModeChangeFormVisible: " + this.PInfo.All.ModeChangeFormVisible);
                        TreeView1.Nodes[A].Nodes.Add("SVIDPLCReadLength: " + this.PInfo.All.SVIDPLCReadLength);
                        TreeView1.Nodes[A].Nodes.Add("GLSAPDPLCReadLength: " + this.PInfo.All.GLSAPDPLCReadLength);
                        TreeView1.Nodes[A].Nodes.Add("HOSTReportEOIDCount: " + this.PInfo.All.HOSTReportEOIDCount);
                        TreeView1.Nodes[A].Nodes.Add("SEMControllerConnect: " + this.PInfo.All.SEMControllerConnect);
                        TreeView1.Nodes[A].Nodes.Add("SEMStartReplyCheck: " + this.PInfo.All.SEMStartReplyCheck);
                        TreeView1.Nodes[A].Nodes.Add("SEMAlarmTime: " + this.PInfo.All.SEMAlarmTime);
                        TreeView1.Nodes[A].Nodes.Add("SVIDPLCNotReadLength: " + this.PInfo.All.SVIDPLCNotReadLength);
                    }
                    A = A + 1;


                    //1. Eqp Info
                    TreeView1.Nodes.Add("01. EQP");
                    if (this.PInfo.EQP("Main") != null)
                    {
                        TreeView1.Nodes[A].Nodes.Add("UnitCount: " + this.PInfo.EQP("Main").UnitCount);
                        TreeView1.Nodes[A].Nodes.Add("PLCConnect: " + this.PInfo.EQP("Main").PLCConnect);
                        TreeView1.Nodes[A].Nodes.Add("PLCStartConnect: " + this.PInfo.EQP("Main").PLCStartConnect);
                        TreeView1.Nodes[A].Nodes.Add("PLCIP: " + this.PInfo.EQP("Main").PLCIP);
                        TreeView1.Nodes[A].Nodes.Add("PLCPort: " + this.PInfo.EQP("Main").PLCPort);
                        TreeView1.Nodes[A].Nodes.Add("DummyPLC: " + this.PInfo.EQP("Main").DummyPLC);
                        TreeView1.Nodes[A].Nodes.Add("WordStart: " + this.PInfo.EQP("Main").WordStart);
                        TreeView1.Nodes[A].Nodes.Add("WordEnd: " + this.PInfo.EQP("Main").WordEnd);
                        TreeView1.Nodes[A].Nodes.Add("BitScanCount: " + this.PInfo.EQP("Main").BitScanCount);
                        TreeView1.Nodes[A].Nodes.Add("Type: " + this.PInfo.EQP("Main").Type);
                        TreeView1.Nodes[A].Nodes.Add("EQPID: " + this.PInfo.EQP("Main").EQPID);
                        TreeView1.Nodes[A].Nodes.Add("EQPType: " + this.PInfo.EQP("Main").EQPType);
                        TreeView1.Nodes[A].Nodes.Add("EQPName: " + this.PInfo.EQP("Main").EQPName);
                        TreeView1.Nodes[A].Nodes.Add("RecipeCheck: " + this.PInfo.EQP("Main").RecipeCheck);
                    }
                    A = A + 1;


                    //2. Unit Info
                    TreeView1.Nodes.Add("02. Unit");
                    for (int dintUnitID = 0; dintUnitID <= this.PInfo.EQP("Main").UnitCount; dintUnitID++)
                    {
                        B = B + 1;
                        TreeView1.Nodes[A].Nodes.Add("UnitID: " + dintUnitID.ToString() + "(" + this.PInfo.Unit(dintUnitID).SubUnit(0).ModuleID + ")");

                        for (int dintSubUnit = 0; dintSubUnit <= this.PInfo.Unit(dintUnitID).SubUnitCount; dintSubUnit++)
                        {
                            //SubUnit 개수만큼 등록
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("SubUnit:" + dintSubUnit.ToString());
                            C = TreeView1.Nodes[A].Nodes[B - 1].GetNodeCount(false) - 1;

                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("UnitID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).UnitID);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("ModuleID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).ModuleID);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("GLSExist: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSExist);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPState: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPState);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPStateOLD: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPStateOLD);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPProcessState: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPProcessState);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPProcessStateOLD: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPProcessStateOLD);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPStateChangeBYWHO: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPStateChangeBYWHO);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPStateLastCommand: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPStateLastCommand);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPProcessStateChangeBYWHO: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPProcessStateChangeBYWHO);
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPProcessStateLastCommand: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).EQPProcessStateLastCommand);

                            if (dintUnitID == 0)
                            {
                                //HOSTPPID Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("HOSTPPID");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (string dstrName in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dstrName);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("HostPPID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID(dstrName).HostPPID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("PPIDVer: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID(dstrName).PPIDVer);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("DateTime: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID(dstrName).DateTime);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EQPPPID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID(dstrName).EQPPPID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Comment: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).HOSTPPID(dstrName).Comment);
                                }
                                E = 0;  //초기화


                                //EQPPPID Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EQPPPID");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (string dstrName in this.PInfo.Unit(0).SubUnit(0).EQPPPID())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dstrName);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("PPIDVer: " + this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).PPIDVer);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("DateTime: " + this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).DateTime);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Comment: " + this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).Comment);

                                    //EQPPPID별 PPIDBody
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("PPIDBody");
                                    F = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].GetNodeCount(false) - 1;
                                    for (int dintIndex = 1; dintIndex <= this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).PPIDBodyCount; dintIndex++)
                                    {
                                        G = G + 1;
                                        TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes[F].Nodes.Add(dintIndex.ToString());

                                        TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes[F].Nodes[G - 1].Nodes.Add("Name: " + this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).PPIDBody(dintIndex).Name);   //실제저장한 값
                                        TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes[F].Nodes[G - 1].Nodes.Add("Value: " + this.PInfo.Unit(0).SubUnit(0).EQPPPID(dstrName).PPIDBody(dintIndex).Value); //실제저장할 값
                                    }
                                    G = 0;                                                                                                                                                                                     //초기화
                                }
                                E = 0;                                                                                                                                                                                         //초기화


                                //PPIDBody Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("PPIDBody(기준정보)");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                for (int dintIndex = 1; dintIndex <= this.PInfo.Unit(0).SubUnit(0).PPIDBodyCount; dintIndex++)
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintIndex.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Name: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Name);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Length: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Length);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Min: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Min);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Max: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Max);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Format: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Format);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Unit: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Unit);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Range: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Range);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("DESC: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).DESC);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Value: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).Value);
                                    //TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("UnitID: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).UnitID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + this.PInfo.Unit(0).SubUnit(0).PPIDBody(dintIndex).ModuleID);
                                }
                                E = 0;  //초기화

                                //GLSAPD Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("GLSAPD(기준정보)");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (int intIndex in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Name);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Index: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Index);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Name: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Name);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Length: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Length);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Format: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Format);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("HaveMinusValue: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).HaveMinusValue);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Value: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).Value);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).ModuleID);
                                    //TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("UnitID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).GLSAPD(intIndex).UnitID);
                                }
                                E = 0;  //초기화

                                //Alarm Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("Alarm(기준정보)");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (int dintAlarmID in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintAlarmID.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).ModuleID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmCode: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmCode);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmType: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmType);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmDesc: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmDesc);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmOCCTime: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmOCCTime);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmEventType: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmEventType);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmReport: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).Alarm(dintAlarmID).AlarmReport);
                                }
                                E = 0;  //초기화

                                //User Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("User");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (string dstrUserID in this.PInfo.Unit(0).SubUnit(0).User())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dstrUserID);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("dstrUserID: " + dstrUserID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Level: " + this.PInfo.Unit(0).SubUnit(0).User(dstrUserID).Level);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("PassWord: "******"Desc: " + this.PInfo.Unit(0).SubUnit(0).User(dstrUserID).Desc);
                                }
                                E = 0;  //초기화

                                //UserLevel Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("UserLevel(기준정보)");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (int dintIndex in this.PInfo.Unit(0).SubUnit(0).UserLevel())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintIndex.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("UserLevel: " + dintIndex.ToString());
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Desc: " + this.PInfo.Unit(0).SubUnit(0).UserLevel(dintIndex).Desc);
                                }
                                E = 0;  //초기화

                                //EOID Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("EOID");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                for (int dintIndex = 1; dintIndex <= this.PInfo.Unit(0).SubUnit(0).EOIDCount; dintIndex++)
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintIndex.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOID: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOMD: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOMD);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOV: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOV);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOVMin: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOVMin);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOVMax: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOVMax);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOVMin: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOVMin);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("EOVMax: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).EOVMax);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("DESC: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).DESC);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("PLCWrite: " + this.PInfo.Unit(0).SubUnit(0).EOID(dintIndex).PLCWrite);
                                }
                                E = 0;  //초기화

                                //SVID Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("SVID");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (int dintSVID in PInfo.Unit(0).SubUnit(0).SVID())
                                {
                                    InfoAct.clsSVID CurrentSVID = PInfo.Unit(0).SubUnit(0).SVID(dintSVID);

                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintSVID.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Name: " + CurrentSVID.Name);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Length: " + CurrentSVID.Length);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Format: " + CurrentSVID.Format);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Value: " + CurrentSVID.Value);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Type: " + CurrentSVID.Type);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Unit: " + CurrentSVID.Unit);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Range: " + CurrentSVID.Range);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("HaveMinusValue: " + CurrentSVID.HaveMinusValue);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("DESC: " + CurrentSVID.DESC);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("UnitID: " + CurrentSVID.UnitID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + CurrentSVID.ModuleID);
                                }
                                E = 0;  //초기화

                                //ECID Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("ECID");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                for (int dintIndex = 1; dintIndex <= this.PInfo.Unit(0).SubUnit(0).ECIDCount; dintIndex++)
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintIndex.ToString());
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Name: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).Name);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Min: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).Min);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ECSLL: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ECSLL);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ECWLL: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ECWLL);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ECDEF: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ECDEF);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ECWUL: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ECWUL);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ECSUL: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ECSUL);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Format: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).Format);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Max: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).Max);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).ModuleID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("Use: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).Use);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("UnitID: " + this.PInfo.Unit(0).SubUnit(0).ECID(dintIndex).UnitID);
                                }
                                E = 0;  //초기화

                                //CurrAlarm Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("CurrAlarm");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (int dintAlarmID in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dintAlarmID.ToString());

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("ModuleID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).ModuleID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmCode: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmCode.ToString());
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmType: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmType);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmDesc: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmDesc);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmOCCTime: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmOCCTime);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmEventType: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmEventType);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("AlarmReport: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrAlarm(dintAlarmID).AlarmReport);
                                }
                                E = 0;  //초기화

                                //CurrGLS Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("CurrGLS");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (string dstrName in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dstrName);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("GLSID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS(dstrName).H_PANELID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("SlotID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS(dstrName).SlotID);
                                }
                                E = 0;  //초기화
                            }
                            else
                            {
                                //CurrGLS Info
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add("CurrGLS");
                                D = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].GetNodeCount(false) - 1;
                                foreach (string dstrName in this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS())
                                {
                                    E = E + 1;
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes.Add(dstrName);

                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("GLSID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS(dstrName).H_PANELID);
                                    TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D].Nodes[E - 1].Nodes.Add("SlotID: " + this.PInfo.Unit(dintUnitID).SubUnit(dintSubUnit).CurrGLS(dstrName).SlotID);
                                }
                                E = 0;  //초기화
                            }
                        }
                    }
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0; F = 0;

                    //03. Trace
                    TreeView1.Nodes.Add("03. Trace");
                    foreach (int dintTRID in this.PInfo.Unit(0).SubUnit(0).TRID())
                    {
                        B = B + 1;
                        TreeView1.Nodes[A].Nodes.Add(dintTRID.ToString());
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("REPGSZ: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).REPGSZ);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("DSPER: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).DSPER);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("TOTSMP: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).TOTSMP);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("TimeAcc: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).TimeAcc);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("GrpCnt: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).GrpCnt);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("REPGSZCnt: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).REPGSZCnt);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("SampleNo: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).SampleNo);

                        //TRID 별 Group
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Group");
                        C = TreeView1.Nodes[A].Nodes[B - 1].GetNodeCount(false) - 1;
                        for (int dintIndex = 1; dintIndex <= this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).GroupCount; dintIndex++)
                        {
                            D = D + 1;
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add(dintIndex.ToString());
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes.Add("GroupID: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).GroupID);       //실제저장한 값
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes.Add("ReadTime: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).ReadTime);     //실제저장할 값

                            //Group 별 SVID
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes.Add("SVID");
                            E = TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].GetNodeCount(false) - 1;
                            for (int dintLoop = 1; dintLoop <= this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).SVIDCount; dintLoop++)
                            {
                                F = F + 1;
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes[E].Nodes.Add(this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).SVID(dintLoop).SVID.ToString());

                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes[E].Nodes[F - 1].Nodes.Add("SVID: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).SVID(dintLoop).SVID);   //실제저장한 값
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes[E].Nodes[F - 1].Nodes.Add("Name: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).SVID(dintLoop).Name);   //실제저장한 값
                                TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes[D - 1].Nodes[E].Nodes[F - 1].Nodes.Add("Value: " + this.PInfo.Unit(0).SubUnit(0).TRID(dintTRID).Group(dintIndex).SVID(dintLoop).Value); //실제저장할 값
                            }
                            F = 0;                                                                                                                                                                                     //초기화
                        }
                        D = 0;                                                                                                                                                                                         //초기화
                    }
                    //초기화
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0; F = 0;

                    ////4. APC Info
                    TreeView1.Nodes.Add("04. APC");
                    foreach (string str in PInfo.APC())
                    {
                        B = B + 1;
                        InfoAct.clsAPC CurrentAPC = PInfo.APC(str);
                        TreeView1.Nodes[A].Nodes.Add(CurrentAPC.GLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("GLASSID: " + CurrentAPC.GLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("JOBID: " + CurrentAPC.JOBID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("EQPPPID:" + CurrentAPC.EQPPPID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("SetTime: " + CurrentAPC.SetTime);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("STATE: " + CurrentAPC.State);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Parameters");
                        C = TreeView1.Nodes[A].Nodes[B - 1].GetNodeCount(false) - 1;
                        for (int dintLoop = 0; dintLoop < CurrentAPC.ParameterName.Length; dintLoop++)
                        {
                            D++;
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add(CurrentAPC.ParameterName[dintLoop] + "=" + CurrentAPC.ParameterValue[dintLoop]);
                        }
                    }
                    //초기화
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0;

                    ////5. PPC Info
                    TreeView1.Nodes.Add("05. PPC");
                    foreach (string str in PInfo.PPC())
                    {
                        B = B + 1;
                        InfoAct.clsPPC CurrentPPC = PInfo.PPC(str);
                        TreeView1.Nodes[A].Nodes.Add(CurrentPPC.HGLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("GLASSID: " + CurrentPPC.HGLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("JOBID: " + CurrentPPC.JOBID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("SetTime: " + CurrentPPC.SetTime);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("STATE: " + CurrentPPC.RunState);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("ORDER");
                        C = TreeView1.Nodes[A].Nodes[B - 1].GetNodeCount(false) - 1;
                        for (int dintLoop = 0; dintLoop < CurrentPPC.P_MODULEID.Length; dintLoop++)
                        {
                            D++;
                            TreeView1.Nodes[A].Nodes[B - 1].Nodes[C].Nodes.Add(CurrentPPC.P_MODULEID[dintLoop] + " = " + CurrentPPC.P_ORDER[dintLoop] + " = " + CurrentPPC.P_STATUS[dintLoop]);
                        }
                    }
                    //초기화
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0;

                    ////6. RPC Info
                    TreeView1.Nodes.Add("06. RPC");
                    foreach (string str in PInfo.RPC())
                    {
                        B = B + 1;
                        InfoAct.clsRPC CurrentRPC = PInfo.RPC(str);
                        TreeView1.Nodes[A].Nodes.Add(CurrentRPC.HGLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("GLASSID: " + CurrentRPC.HGLSID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("JOBID: " + CurrentRPC.JOBID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("RPC_PPID: " + CurrentRPC.RPC_PPID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Origin_PPID: " + CurrentRPC.OriginPPID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("SetTime: " + CurrentRPC.SetTime);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("STATE: " + CurrentRPC.RPC_STATE);
                    }
                    //초기화
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0;

                    TreeView1.Nodes.Add("07. Film");
                    foreach (string str in PInfo.LOT())
                    {
                        InfoAct.clsLOT CurrentLot = PInfo.LOTID(str);

                        B = B + 1;
                        TreeView1.Nodes[A].Nodes.Add(CurrentLot.LOTID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Film_CaseI D: " + CurrentLot.LOTID);
                        //TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("PORTID: " + CurrentLot.PortID);
                        InfoAct.clsSlot CurrentSlot = CurrentLot.Slot(1);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Film_ID : " + CurrentSlot.GlassID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Film_Code : " + CurrentSlot.PRODUCTID);
                        TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Film_Count_HostCMD : " + (CurrentLot.SlotCount + 1));
                        //TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("Film_Count_Real : " + CurrentLot.FilmCount);
                        //TreeView1.Nodes[A].Nodes[B - 1].Nodes.Add("UseCount: " + CurrentSlot.SlotID);
                    }
                    //초기화
                    A = A + 1;
                    B = 0; C = 0; D = 0; E = 0;


                    //SVID 테스트용
                    //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, "------------------------------------------------------------------------------" + "\r\n");
                    //for (int dintLoop = 1; dintLoop <= this.PInfo.Unit(0).SubUnit(0).SVIDCount; dintLoop++)
                    //{
                    //    dstrTemp = dstrTemp +  FunStringH.funStringData(dintLoop.ToString() + "(" + this.PInfo.Unit(0).SubUnit(0).SVID(dintLoop).Name + ")" + ": ", 45) + this.PInfo.Unit(0).SubUnit(0).SVID(dintLoop).Value + "\r\n";
                    //}
                    //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, dstrTemp);
                    //this.PInfo.subLog_Set(InfoAct.clsInfo.LogType.CIM, "------------------------------------------------------------------------------" + "\r\n");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
Beispiel #3
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());
            }
        }
Beispiel #4
0
        /// <summary>
        /// Primary Message를 Biuld하여 Transaction을 Return한다.
        /// </summary>
        /// <param name="strParameters">Parameter 문자열</param>
        public Transaction funPrimarySend(string strParameters)
        {
            string[] arrayEvent;
            string   dstrLotID   = "";
            int      dintPortID  = 0;
            int      dintIndex   = 0;
            string   dstrSLOTMAP = "";
            string   dstrGLSID   = "";

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

                pMsgTran  = pSecsDrv.MakeTransaction(this.StrPrimaryMsgName);
                dstrLotID = arrayEvent[1].Trim();
                InfoAct.clsLOT CurrentLot = pInfo.LOTID(dstrLotID);
                pMsgTran.Primary().Item("PTID").Putvalue("P0" + CurrentLot.InPortID);
                pMsgTran.Primary().Item("LOTID").Putvalue(dstrLotID);
                pMsgTran.Primary().Item("CSTID").Putvalue(CurrentLot.CSTID);
                pMsgTran.Primary().Item("LOTJUDGE").Putvalue(CurrentLot.LOTJudge);
                pMsgTran.Primary().Item("LSORTTYPE").Putvalue(CurrentLot.LSORTTYPE);
                pMsgTran.Primary().Item("OPERID").Putvalue(CurrentLot.OPERID);
                pMsgTran.Primary().Item("PRODID").Putvalue(CurrentLot.PRODID);
                StringBuilder sb;
                dintPortID = pInfo.LOTID(dstrLotID).InPortID;

                #region 수정
                for (int dintSlotNo = 0; dintSlotNo < pInfo.Port(dintPortID).SlotCount; dintSlotNo++)
                {
                    if (pInfo.Port(dintPortID).Slot(dintSlotNo + 1).SLOTINFO != "E")
                    {
                        dintIndex++;
                    }
                }

                pMsgTran.Primary().Item("QTY").Putvalue(dintIndex);
                pMsgTran.Primary().Item("L2").Putvalue(25);
                dintIndex = 0;
                for (int dintSlotNo = 0; dintSlotNo < pInfo.Port(dintPortID).SlotCount; dintSlotNo++)
                {
                    InfoAct.clsLOT CurrentLOT = pInfo.LOTID(dstrLotID);
                    dstrGLSID = pInfo.Port(dintPortID).Slot(dintSlotNo + 1).GLSID;
                    if (string.IsNullOrEmpty(dstrGLSID) == false && CurrentLOT.GLSID(dstrGLSID) != null && pInfo.Port(dintPortID).Slot(dintSlotNo + 1).SLOTINFO != "E")
                    {
                        InfoAct.clsGLS CurrentGLS = CurrentLOT.GLSID(dstrGLSID);
                        if (CurrentGLS.ScrapFlag)
                        {
                            pMsgTran.Primary().Item("SLOTNO" + dintIndex).Putvalue((dintSlotNo + 1).ToString());
                            pMsgTran.Primary().Item("GLSID" + dintIndex).Putvalue("");
                            pMsgTran.Primary().Item("PPID" + dintIndex).Putvalue("");
                            pMsgTran.Primary().Item("GLSJUDGE" + dintIndex).Putvalue("");
                            pMsgTran.Primary().Item("GSORTTYPE" + dintIndex).Putvalue(0);
                            pMsgTran.Primary().Item("SMPLFLAG" + dintIndex).Putvalue(0);
                            pMsgTran.Primary().Item("RWKCNT" + dintIndex).Putvalue(0);

                            pMsgTran.Primary().Item("L4" + dintIndex).Putvalue(0);
                            dstrSLOTMAP += "X";
                        }
                        else
                        {
                            pMsgTran.Primary().Item("SLOTNO" + dintIndex).Putvalue(CurrentGLS.SlotID);
                            pMsgTran.Primary().Item("GLSID" + dintIndex).Putvalue(CurrentGLS.GLSID);
                            pMsgTran.Primary().Item("PPID" + dintIndex).Putvalue(CurrentGLS.HostPPID);
                            pMsgTran.Primary().Item("GLSJUDGE" + dintIndex).Putvalue(CurrentGLS.GLSJudge);
                            pMsgTran.Primary().Item("GSORTTYPE" + dintIndex).Putvalue(CurrentGLS.GSORTTYPE);
                            pMsgTran.Primary().Item("SMPLFLAG" + dintIndex).Putvalue(CurrentGLS.SMPLFLAG);
                            pMsgTran.Primary().Item("RWKCNT" + dintIndex).Putvalue(CurrentGLS.RWKCNT);

                            pMsgTran.Primary().Item("L4" + dintIndex).Putvalue(0);

                            if (pInfo.Port(dintPortID).Slot(dintSlotNo + 1).SLOTINFO == "P")// || pInfo.Port(dintPortID).Slot(dintSlotNo + 1).SLOTINFO == "F" || pInfo.Port(dintPortID).Slot(dintSlotNo + 1).SLOTINFO == "S")
                            {
                                dstrSLOTMAP += "O";
                            }
                            else
                            {
                                dstrSLOTMAP += "X";
                            }
                        }
                    }
                    else
                    {
                        pMsgTran.Primary().Item("SLOTNO" + dintIndex).Putvalue((dintSlotNo + 1).ToString());
                        pMsgTran.Primary().Item("GLSID" + dintIndex).Putvalue("");
                        pMsgTran.Primary().Item("PPID" + dintIndex).Putvalue("");
                        pMsgTran.Primary().Item("GLSJUDGE" + dintIndex).Putvalue("");
                        pMsgTran.Primary().Item("GSORTTYPE" + dintIndex).Putvalue(0);
                        pMsgTran.Primary().Item("SMPLFLAG" + dintIndex).Putvalue(0);
                        pMsgTran.Primary().Item("RWKCNT" + dintIndex).Putvalue(0);

                        pMsgTran.Primary().Item("L4" + dintIndex).Putvalue(0);
                        dstrSLOTMAP += "X";
                    }

                    dintIndex++;
                }
                pMsgTran.Primary().Item("SLOTSEL").Putvalue(dstrSLOTMAP);

                #endregion

                #region 이전 소스
                //if (pInfo.Port(pInfo.LOTID(dstrLotID).InPortID).AbortFlag)
                //{
                //    int GLSRunCnt = 0;
                //    foreach (string str in pInfo.LOTID(dstrLotID).GLS())
                //    {
                //        InfoAct.clsGLS CurrentGLS = pInfo.LOTID(dstrLotID).GLSID(str);
                //        if (CurrentGLS.RunState == "E")
                //        {
                //            GLSRunCnt++;
                //        }
                //    }
                //    pMsgTran.Primary().Item("QTY").Putvalue(GLSRunCnt);

                //    pMsgTran.Primary().Item("L2").Putvalue(GLSRunCnt);
                //    sb = new StringBuilder("X".PadRight(25, 'X'));
                //    foreach (string strGLSID in CurrentLot.GLS())
                //    {

                //        InfoAct.clsGLS CurrentGLS = CurrentLot.GLSID(strGLSID);
                //        if (CurrentGLS.RunState == "E")
                //        {
                //            sb[CurrentGLS.SlotID - 1] = 'O';

                //            pMsgTran.Primary().Item("SLOTNO" + dintIndex).Putvalue(CurrentGLS.SlotID);
                //            pMsgTran.Primary().Item("GLSID" + dintIndex).Putvalue(CurrentGLS.GLSID);
                //            pMsgTran.Primary().Item("PPID" + dintIndex).Putvalue(CurrentGLS.HostPPID);
                //            pMsgTran.Primary().Item("GLSJUDGE" + dintIndex).Putvalue(CurrentGLS.GLSJudge);
                //            pMsgTran.Primary().Item("GSORTTYPE" + dintIndex).Putvalue(CurrentGLS.GSORTTYPE);
                //            pMsgTran.Primary().Item("SMPLFLAG" + dintIndex).Putvalue(CurrentGLS.SMPLFLAG);
                //            pMsgTran.Primary().Item("RWKCNT" + dintIndex).Putvalue(CurrentGLS.RWKCNT);

                //            pMsgTran.Primary().Item("L4" + dintIndex).Putvalue(0);
                //            pMsgTran.Primary().Item("PNLJUDGE" + dintIndex + 0).Putvalue("");
                //            pMsgTran.Primary().Item("PNLGRADE" + dintIndex + 0).Putvalue("");
                //            dintIndex++;
                //        }
                //    }
                //}
                //else
                //{
                //    pMsgTran.Primary().Item("L2").Putvalue(CurrentLot.GLSCount);
                //    sb = new StringBuilder("X".PadRight(25, 'X'));

                //    foreach (string strGLSID in CurrentLot.GLS())
                //    {
                //        InfoAct.clsGLS CurrentGLS = CurrentLot.GLSID(strGLSID);
                //        sb[CurrentGLS.SlotID - 1] = 'O';

                //        pMsgTran.Primary().Item("SLOTNO" + dintIndex).Putvalue(CurrentGLS.SlotID);
                //        pMsgTran.Primary().Item("GLSID" + dintIndex).Putvalue(CurrentGLS.GLSID);
                //        pMsgTran.Primary().Item("PPID" + dintIndex).Putvalue(CurrentGLS.HostPPID);
                //        pMsgTran.Primary().Item("GLSJUDGE" + dintIndex).Putvalue(CurrentGLS.GLSJudge);
                //        pMsgTran.Primary().Item("GSORTTYPE" + dintIndex).Putvalue(CurrentGLS.GSORTTYPE);
                //        pMsgTran.Primary().Item("SMPLFLAG" + dintIndex).Putvalue(CurrentGLS.SMPLFLAG);
                //        pMsgTran.Primary().Item("RWKCNT" + dintIndex).Putvalue(CurrentGLS.RWKCNT);

                //        pMsgTran.Primary().Item("L4" + dintIndex).Putvalue(0);
                //        pMsgTran.Primary().Item("PNLJUDGE" + dintIndex + 0).Putvalue("");
                //        pMsgTran.Primary().Item("PNLGRADE" + dintIndex + 0).Putvalue("");
                //        dintIndex++;
                //    }
                //    pMsgTran.Primary().Item("QTY").Putvalue(dintIndex);

                //}
                //pMsgTran.Primary().Item("SLOTSEL").Putvalue(sb.ToString());

                #endregion

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