ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SecsDrv_S2F18 and S2F101 processing example
    IT Story/C# & WPF 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());
                }
            }
    반응형

    댓글

Designed by Tistory.