Esempio n. 1
0
        /// <summary>
        /// 将Mes数据写入到文件
        /// </summary>
        /// <param name="mesTxtPath">文件的路径</param>
        /// <returns>如果写入成功返回true,否则返回false</returns>
        public bool WriteMesTxtToFile(string mesTxtPath, EV_MSTR EvData)
        {
            try
            {
                if ((EvData == null) || (Arr_ME_MSTR == null))
                {
                    LogHelper.Info("成员对象为空,生成Mes数据失败");
                    return(false);
                }
                bool result = true;
                foreach (ME_MSTR me in Arr_ME_MSTR)//所有步骤的状态为Pass或Done,则最终结果为Pass
                {
                    result = result && me.Step_Status.In("Passed", "Done");
                }
                EvData.TestStatus = result ? "Passed" : "Failed";

                StringBuilder strResult = new StringBuilder();
                strResult.AppendLine("UUT_Order|UUT_SOURCE|DeviceA2C|EquipmentFunction|SerialNumber|StationName||||ProductTime|TestStandName|LoginName|ExecutionTime|TestScoket|BatchSerialNumber|Error Code|Error Message||||||||||||||TestStatus|");
                strResult.AppendLine($"{EvData.UUT_Order}|{EvData.UUT_SOURCE}|{EvData.DeviceA2C}|{EvData.EquipmentFunction}|{EvData.SerialNumber}|{EvData.StationName}||||{EvData.ProductTime}|{EvData.TestStandName}|{EvData.LoginName}|{EvData.ExecutionTime}|{EvData.TestSocket}|{EvData.BatchSerialNumber}||||||||||||||||{EvData.TestStatus}|");
                strResult.AppendLine();
                strResult.AppendLine("Step_Order|Step_Source|ProductionTime|ErrorCode|ErrorMessage|TotalTime|StepName|Step_Status|ReportText|Num_Loops|Num_Passed|Num_Failed|StepGroup|StepType|Step_PassFail|Multiple_SubName|Units|Comp|Limit.Step_Data|Limit.Low|Limit.High|Result_String|Limits_String|");

                foreach (ME_MSTR me in Arr_ME_MSTR)
                {
                    strResult.AppendLine($"{me.Step_Order}|{me.Step_Source}|{me.ProductionTime}|{me.ErrorCode}|{me.ErrorMessage}|{me.TotalTime}|{me.StepName}|{me.Step_Status}|{me.ReportText}|{me.Num_Loops}|{me.Num_Passed}|{me.Num_Failed}|{me.Step_Group}|{me.StepType}|{me.Step_PassFail}|{me.Multiple_SubName}|{me.Units}|{me.Comp}|{me.LimitStep_Data}|{me.limitLow}|{me.limitHigh}|{me.Result_String}|{me.limits_String}|");
                }
                //LogHelper.Info("生成Mes数据成功");
                return(FileHelper.WriteAllText(mesTxtPath, strResult.ToString()));
            }
            catch (System.Exception ex)
            {
                LogHelper.Debug("生成Mes数据失败", ex);
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 通过工站3扫描PCB2查询PCB1是否在工站2绑定及在工站1PCB1是否有数据上传Pass
        /// </summary>
        public string CheckedPCB1FromFCB2Result(EV_MSTR EvData, string SN, string pcb1StationID, string pcb2StationID)
        {
            string strResult = "Error";

            using (SqlConnection conn_HZHE015A = new SqlConnection())
            {
                string connectionString;

                connectionString = @"Password=PedTest@rn_radio;User ID=TE_RN;Initial Catalog=" + EvData.DatabaseName + ";Data Source=HZHE015A";
                conn_HZHE015A.ConnectionString = connectionString;
                string queryStr = "SELECT(SELECT TOP 1[UUT_STATUS]" +
                                  "FROM[" + EvData.DatabaseName + "].[dbo].[UUT_RESULT]" +
                                  "WHERE STATION_ID = '" + pcb1StationID + "'" +
                                  " AND UUT_SERIAL_NUMBER = (SELECT TOP 1[BATCH_SERIAL_NUMBER]" +
                                  "FROM[" + EvData.DatabaseName + "].[dbo].[UUT_RESULT]" +
                                  " WHERE UUT_SERIAL_NUMBER = '" + SN + "'" +
                                  "AND STATION_ID = '" + pcb2StationID + "'" +
                                  "AND UUT_ERROR_MESSAGE <> 'ReWork' ORDER BY START_DATE_TIME DESC)" +
                                  "AND UUT_ERROR_MESSAGE <> 'ReWork' AND TEST_SOCKET_INDEX = '-1'" +
                                  " ORDER BY START_DATE_TIME DESC)";
                DataTable dt = ReadOrderData(connectionString, queryStr);

                try
                {
                    strResult = dt.Rows[0][0].ToString();
                    LogHelper.Info(SN + ",SN查询结果:" + strResult);
                }
                catch (Exception ex)
                {
                    LogHelper.Error(SN + ",查询异常" + ex);
                }
            }
            return(strResult);
        }
Esempio n. 3
0
        /// <summary>
        /// MES_SplitSN_64 C#开发DLL
        /// </summary>
        public short MES_SplitSN_64(string SerialNumber, string SplitSerialNumber, EV_MSTR EvData)
        {
            string[] InputString = new string[4];
            InputString[0] = SerialNumber;      //SN
            InputString[1] = SplitSerialNumber; //SplitSN
            InputString[2] = EvData.SW_User;    //Employee
            InputString[3] = "False";           //HideWindow
            short SplitSNResult = MES_Interlock_DLL_EDCMESASS_64_Class.SplitSN(String.Join(",", InputString));

            LogHelper.Info(SplitSerialNumber + ",SplitSNResult_64=" + SplitSNResult);
            return(SplitSNResult);
        }
Esempio n. 4
0
        /// <summary>
        /// MES_BindingSN labview dll
        /// </summary>
        /// <param name="SerialNumber"></param>
        /// <param name="bindingSerialNumber"></param>
        /// <param name="mes"></param>
        /// <returns></returns>
        public short MES_BindingSN(string SerialNumber, string bindingSerialNumber, EV_MSTR EvData)
        {
            string[] InputString = new string[4];
            InputString[0] = SerialNumber;   //SN
            InputString[1] = bindingSerialNumber;
            InputString[2] = EvData.SW_User; //Employee
            InputString[3] = "False";        //HideWindow
            short bindingSNResult = BindingSN(String.Join(",", InputString));

            LogHelper.Info(bindingSerialNumber + ",bindingSNResult=" + bindingSNResult);
            return(bindingSNResult);
        }
Esempio n. 5
0
        /// <summary>
        /// MES_MoveIn_64 C#开发DLL
        /// </summary>
        public short MES_MoveIn_64(string SerialNumber, EV_MSTR EvData)
        {
            string[] InputString = new string[5];
            InputString[0] = SerialNumber;     //SN
            InputString[1] = EvData.StationID; //Station
            InputString[2] = "";               //Spec
            InputString[3] = EvData.LoginName; //Employee
            InputString[4] = "False";          //HideWindow
            short MoveInResult = MES_Interlock_DLL_EDCMESASS_64_Class.MoveIn(String.Join(",", InputString));

            LogHelper.Info(SerialNumber + ",MoveInResult_64=" + MoveInResult);
            return(MoveInResult);
        }
Esempio n. 6
0
        /// <summary>
        /// MES_MoveStd_64 C#开发DLL
        /// </summary>
        public short MES_MoveStd_64(string SerialNumber, string TestResult, EV_MSTR EvData)
        {
            string[] InputString = new string[6];
            InputString[0] = SerialNumber;                                           //SN
            InputString[1] = EvData.StationID;                                       //Station
            InputString[2] = string.Format("{0:yyyy-MM-ddTHH:mm:ss}", DateTime.Now); //Time
            InputString[3] = TestResult;                                             //TestResult
            InputString[4] = EvData.SW_User;                                         //Employee
            InputString[5] = "False";                                                //HideWindow
            short MoveStdResult = MES_Interlock_DLL_EDCMESASS_64_Class.MoveStd(String.Join(",", InputString));

            LogHelper.Info(SerialNumber + ",MoveStdResult_64=" + MoveStdResult);
            return(MoveStdResult);
        }
Esempio n. 7
0
        public bool AppendTestValuesRoCsvFile(EV_MSTR EvData, string csvFilePath)
        {
            try
            {
                string[] testValues = new string[Arr_ME_MSTR.Length];
                string[] colNames   = new string[Arr_ME_MSTR.Length];

                for (int i = 0; i < Arr_ME_MSTR.Length; i++)
                {
                    colNames[i] = Arr_ME_MSTR[i].StepName;
                    switch (Arr_ME_MSTR[i].StepType)
                    {
                    case "Record":
                    case "NumericLimitTest": testValues[i] = Arr_ME_MSTR[i].LimitStep_Data; break;

                    case "StringValueTest":
                        if (Arr_ME_MSTR[i].Step_Status == "Done")
                        {
                            testValues[i] = Arr_ME_MSTR[i].ReportText; break;
                        }
                        else
                        {
                            testValues[i] = Arr_ME_MSTR[i].Result_String; break;
                        }

                    case "PassFailTest":

                        break;

                    default: break;
                    }
                }
                if (!File.Exists(csvFilePath))//如果文件不存在(即新文件,则增加列首)
                {
                    FileHelper.WriteAllText(csvFilePath, "SN," + colNames.Join(",") + "\r\n", true);
                }
                FileHelper.WriteAllText(csvFilePath, EvData.SerialNumber + "," + testValues.Join(",") + "\r\n", true);
                return(true);
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show($"{ex}");
                return(false);

                throw;
            }
        }
Esempio n. 8
0
        /// <summary>
        /// SV_InterLocking(C#)
        /// </summary>
        /// <param name="SN"></param>
        /// <param name="sv"></param>
        /// <returns></returns>
        public int SV_Interlocking(string SN, EV_MSTR EvData)
        {
            //DSV互锁模式
            string[] Information = new string[12];
            Information[0]  = EvData.DB_Password;  //DB_Password
            Information[1]  = EvData.DB_User;      //DB_User
            Information[2]  = EvData.DatabaseName; //DatabaseName
            Information[3]  = EvData.ServerName;   //ServerName
            Information[4]  = SN;                  //SerialNumber
            Information[5]  = EvData.StationID;    //StationID
            Information[6]  = EvData.LineGroup;    //LineGroup
            Information[7]  = EvData.LoginName;    //SV_User
            Information[8]  = EvData.Debug;        //Debug
            Information[9]  = EvData.ShowWindow;   //ShowWindow
            Information[10] = "False";             //PassForNoDB
            Information[11] = EvData.Function;     //Function
            int SVResult = sv_Interlocking_Main.sv_Interlocking_Main_Class.SV_Interlocking_Main(String.Join(",", Information));

            LogHelper.Info(SN + ",SVResult=" + SVResult.ToString());
            return(SVResult);
        }
Esempio n. 9
0
        /// <summary>
        /// 单独查询SN在上一个工位状态 Passed or Failed   (注:也可以查询本工站SN状态,可防重测功能)
        /// </summary>
        ///
        public string SNStatus(string SN, string frontStationID, EV_MSTR EvData)
        {
            string strResult = "Error";

            using (SqlConnection conn_HZHE015A = new SqlConnection())
            {
                string constr = "Server=" + EvData.ServerName + ";" + "user="******";" + "pwd=" + EvData.DB_Password + ";" + "database=" + EvData.DatabaseName;
                conn_HZHE015A.ConnectionString = constr;
                string    snOrder = "SELECT TOP 1  UUT_STATUS  from UUT_RESULT where UUT_SERIAL_NUMBER = '" + SN + "' AND STATION_ID = '" + frontStationID + "'";//查询数据库数据结果
                DataTable status  = ReadOrderData(constr, snOrder);
                try
                {
                    strResult = status.Rows[0][0].ToString();
                    LogHelper.Info(SN + ",SN查询结果:" + strResult);
                }
                catch (Exception ex)
                {
                    LogHelper.Error(SN + ",查询异常" + ex);
                }
            }
            return(strResult);
        }
Esempio n. 10
0
        /// <summary>
        /// 获取服务器时间
        /// </summary>
        ///
        public DateTime GetServerTime(EV_MSTR EvData)
        {
            DateTime servertime = new DateTime();

            using (SqlConnection conn_HZHE015A = new SqlConnection())
            {
                string constr = "Server=" + EvData.ServerName + ";" + "user="******";" + "pwd=" + EvData.DB_Password + ";" + "database=" + EvData.DatabaseName;
                conn_HZHE015A.ConnectionString = constr;
                string    timeSearchOrder = "select getdate() as systemtimes";
                DataTable time            = ReadOrderData(constr, timeSearchOrder);
                int       con             = time.Rows.Count;
                if (con > 0)
                {
                    string dt = time.Rows[0][0].ToString();
                    servertime = Convert.ToDateTime(Convert.ToDateTime(dt));
                    LogHelper.Info("服务器时间:" + servertime);
                }
                else
                {
                    LogHelper.Error("服务器时间查询异常,默认时间" + servertime);
                }
            }
            return(servertime);
        }
Esempio n. 11
0
        /// <summary>
        /// 查询上一工站到本工站时间间隔
        /// </summary>
        public DateTime Get_SN_time_interval(string SN, string frontStationID, EV_MSTR EvData)
        {
            DateTime enddatetime = new DateTime();

            using (SqlConnection conn_HZHE015A = new SqlConnection())
            {
                string constr = "Server=" + EvData.ServerName + ";" + "user="******";" + "pwd=" + EvData.DB_Password + ";" + "database=" + EvData.DatabaseName;
                conn_HZHE015A.ConnectionString = constr;
                string    timeSearchOrder = "SELECT *FROM dbo.UUT_RESULT where  UUT_SERIAL_NUMBER = '" + SN + "' And station_id = '" + frontStationID + "'And UUT_STATUS = 'PASSED'order by START_DATE_TIME desc";
                DataTable time            = ReadOrderData(constr, timeSearchOrder);
                int       con             = time.Rows.Count;
                if (con > 0)
                {
                    string strResult = time.Rows[0][6].ToString();
                    enddatetime = Convert.ToDateTime(Convert.ToDateTime(strResult));
                    LogHelper.Info(SN + ",时间间隔:" + enddatetime);
                }
                else
                {
                    LogHelper.Info(SN + ",查询不到数据,输出默认时间:" + enddatetime);
                }
            }
            return(enddatetime);
        }
Esempio n. 12
0
        /// <summary>
        /// MES_CreateEOL_SN labview dll
        /// </summary>
        public short MES_CreateEOL_SN(string SerialNumber, string CreateEOL_SerialNumber, EV_MSTR EvData)
        {
            string[] InputString = new string[4];
            InputString[0] = SerialNumber;   //SN
            InputString[1] = CreateEOL_SerialNumber;
            InputString[2] = EvData.SW_User; //Employee
            InputString[3] = "False";        //HideWindow
            short CreateEOL_SNResult = CreateEOL_SN(String.Join(",", InputString));

            LogHelper.Info(CreateEOL_SerialNumber + ",CreateEOL_SNResult=" + CreateEOL_SNResult);
            return(CreateEOL_SNResult);
        }