IT Story/C# & WPF

SecsDrv_S2F18 and S2F101 processing example

Hoyami7 2022. 7. 3. 17:34
반응형
private void PSecsDrv_S2F18()
        {
            try
            {
                this.m_Info.Set_ReceiveHostSF("S2F18");
            }
            catch (Exception ex)
            {
                this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
            }
        }

        private void S2F18()
        {
            string dstrData = string.Empty;
            try
            {
                if (this.m_Info.All.HostConnect == false) return;
                if (funACTSECSAort_Send(this.PSecsDrv.S2F17.Header) == true) return;

                dstrData = this.PSecsDrv.S2F18.TIME.Trim();

                if (dstrData == string.Empty || dstrData.Length != 14)
                {
                    this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "S2F18 Date Time Data가 올바르지 않습니다. : " + dstrData.ToString());
                    return;
                }

                //여기서 만약 시간이 잘못되면 에외로 빠진다.
                DateTime.ParseExact(dstrData.Substring(0, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
                DateTime.ParseExact(dstrData.Substring(8, 6), "HHmmss", CultureInfo.InvariantCulture);

                //PC에 시간 설정(여기까지 오면 정상임)
                //(TEST) 주석
                DateAndTime.Today = DateTime.ParseExact(dstrData.Substring(0, 8), "yyyyMMdd", CultureInfo.InvariantCulture);
                DateAndTime.TimeOfDay = DateTime.ParseExact(dstrData.Substring(8, 6), "HHmmss", CultureInfo.InvariantCulture);

                this.m_Info.Set_PLCCommand(Structure.classStructure.PLCCommand.DateandTimeSetting, dstrData);
            }
            catch (Exception ex)
            {
                this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
            }
        }

        /// <summary>
        /// Host로부터 S2F101(Operator Call)을 수신하였을때
        /// </summary>
        /// <remarks>2006/11/01                   [Ver 00]</remarks>
        private void PSecsDrv_S2F101()
        {
            try
            {
                this.m_Info.Set_ReceiveHostSF("S2F101");
            }
            catch (Exception ex)
            {
                this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
            }
        }

        private void S2F101()
        {
            string sMsg = string.Empty;
            string sTID = string.Empty;
            string sMsgHader = "OPCall";

            int nTID = 0;

            int nAck = 0;

            try
            {
                if (this.m_Info.All.HostConnect == false) return;
                if (funACTSECSAort_Send(this.PSecsDrv.S2F101.Header) == true) return;

                sTID = this.PSecsDrv.S2F101.TID.ToString().Trim();
                sMsg = this.PSecsDrv.S2F101.MSG.ToString().Trim();

                int.TryParse(sTID.Substring(sTID.Length - 1), out nTID);
                if (nTID == 1)          //CIM
                {
                    this.m_Info.Set_OPCallMessage(Structure.classStructure.OPCallMessage.MSGBuzzer, 0, sMsgHader, sMsg);
                    this.m_Info.Set_Message(Structure.classStructure.MsgType.HostMsg, "[" + sMsgHader + "]".PadRight(15) + sMsg);
                    nAck = 0;
                }
                else if (nTID == 2)     //EQP
                {
                    this.m_Info.Set_OPCallMessage(Structure.classStructure.OPCallMessage.MSGBuzzer, 0, sMsgHader, sMsg);
                    this.m_Info.Set_Message(Structure.classStructure.MsgType.HostMsg, "[" + sMsgHader + "]".PadRight(15) + sMsg);

                    this.m_Info.Set_PLCCommand(Structure.classStructure.PLCCommand.BuzzerOn);
                    this.m_Info.Set_PLCCommand(Structure.classStructure.PLCCommand.OPCall, sMsg);
                    nAck = 0;
                }
                else
                    nAck = 2;

                if (nAck == 0)
                    this.m_Info.Set_Log(Common.EnuCommon.LogType.MSG, "," + sMsgHader + "," + sMsg);

                this.PSecsDrv.S2F102.ACKC10 = nAck;
                this.PSecsDrv.S2F102.Reply(this.PSecsDrv.S2F101.Header);
            }
            catch (Exception ex)
            {
                this.m_Info.Set_Log(Common.EnuCommon.LogType.CIM, "", ex.ToString());
            }
        }
반응형