private void insertPCBData(int headerID, type_PCB_DATA qData) { try { using (SqlConnection con = new SqlConnection(cnstr)) { String sql = "INSERT INTO plc_data (header_id, position, units, vardata, passed, failed, test_description, unit_measure) VALUES " + "(@header_id, @position, @units, @vardata, @passed, @failed, @test_description, @unit_measure)"; using (SqlCommand command = new SqlCommand(sql, con)) { command.Parameters.Add("header_id", SqlDbType.Int).Value = headerID; command.Parameters.Add("position", SqlDbType.Int).Value = qData.ID; command.Parameters.Add("units", SqlDbType.Bit).Value = qData.Units; command.Parameters.Add("vardata", SqlDbType.Real).Value = qData.VarData; command.Parameters.Add("passed", SqlDbType.Bit).Value = qData.Passed; command.Parameters.Add("failed", SqlDbType.Bit).Value = qData.Failed; command.Parameters.Add("test_description", SqlDbType.VarChar, 500).Value = qData.TestDescription; command.Parameters.Add("unit_measure", SqlDbType.VarChar, 25).Value = qData.UnitMeasure; con.Open(); command.ExecuteNonQuery(); con.Close(); } } } catch (System.Data.SqlClient.SqlException e) { // SEND EMAIL addToLog("PLC DB ERROR (insertPCBData): " + e.StackTrace, true); } }
private type_PCB_DATA createDummyType_PCB_DATA(int id) { type_PCB_DATA qData = new type_PCB_DATA(); qData.ID = (short)id; qData.Units = 2; qData.VarData = 0; qData.Failed = false; qData.Passed = true; return(qData); }
private void printPCBDetail(type_PCB_DATA pcbQData) { if (showDebug) { addToLog("QID: " + pcbQData.ID, showDebug); addToLog("Units: " + pcbQData.Units, showDebug); addToLog("VarData: " + pcbQData.VarData, showDebug); addToLog("Passed: " + pcbQData.Passed, showDebug); addToLog("Failed: " + pcbQData.Failed, showDebug); addToLog("Test Description: " + pcbQData.TestDescription, showDebug); addToLog("Unit Measure: " + pcbQData.UnitMeasure, showDebug); addToLog("-----------------", showDebug); } }
private void getDetailData(int pcbID, int headerID, String[] unitMeasure, String[] testDescription) { String lastPartID = "LastPart[" + pcbID + "]"; for (int i = 1; i < QSIZE; i++) { /* * type_PCB_DATA pcbQData = createDummyType_PCB_DATA(i); * printPCBDetail(pcbQData); * insertPCBData(headerID, pcbQData); */ Tag udfQTag = new Tag(lastPartID + ".Q[" + i + "]"); if (ControlLogix.ReadTag(udfQTag) != Logix.ResultCode.E_SUCCESS) { addToLog("ERROR: Unable to download PLC Detail Data: " + ControlLogix.ErrorString + "--" + udfQTag.ErrorCode, true); return; } if (ResultCode.QUAL_GOOD == udfQTag.QualityCode) { type_PCB_DATA pcbQData = (type_PCB_DATA)udtEnc.ToType(udfQTag, typeof(type_PCB_DATA)); bool passed = pcbQData.Passed; bool failed = pcbQData.Failed; if (passed || failed) { pcbQData.TestDescription = testDescription[i]; pcbQData.UnitMeasure = unitMeasure[i]; printPCBDetail(pcbQData); insertPCBData(headerID, pcbQData); } } } }