private void btnUpdateData_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGrid.Rows) { try { if (row.Cells["CheckBox"].Value != null && (bool)row.Cells["CheckBox"].Value == true) { // Connect PIServerAFSDK PIServer _PIServerAFSDK = piPointTagSearchPage1.PIServer; // Find PIPoint PIPoint piPoint = PIPoint.FindPIPoint(_PIServerAFSDK, (string)row.Cells["tag"].Value); AFAttribute afAttribute = new AFAttribute(piPoint); AFValue afValue = new AFValue(afAttribute, row.Cells["Value"].Value, AFTime.Parse(row.Cells["Timestamp"].Value.ToString())); if (row.Cells["Annotation"].Value.ToString() != string.Empty) { afValue.SetAnnotation(row.Cells["Annotation"].Value.ToString()); } piPoint.UpdateValue(afValue, AFUpdateOption.Replace, AFBufferOption.BufferIfPossible); } } catch (Exception ex) { row.Cells["Message"].Value = ex.Message; } } dataGrid.Refresh(); }
private void btnDeleteData_Click(object sender, EventArgs e) { List <int> indexToRemove = new List <int>(); foreach (DataGridViewRow row in dataGrid.Rows) { if (row.Cells["CheckBox"].Value != null && (bool)row.Cells["CheckBox"].Value == true) { try { // Connect PIServerAFSDK PIServer _PIServerAFSDK = piPointTagSearchPage1.PIServer; // Find PIPoint PIPoint piPoint = PIPoint.FindPIPoint(_PIServerAFSDK, (string)row.Cells["tag"].Value); AFAttribute afAttribute = new AFAttribute(piPoint); AFValue afValue = new AFValue(afAttribute, row.Cells["Value"].Value, AFTime.Parse(row.Cells["Timestamp"].Value.ToString())); piPoint.UpdateValue(afValue, AFUpdateOption.Remove, AFBufferOption.BufferIfPossible); if (!row.IsNewRow) { indexToRemove.Add(row.Index); } } catch (Exception ex) { row.Cells["Message"].Value = ex.Message; } } } foreach (var index in indexToRemove.OrderByDescending(i => i)) { dataGrid.Rows.RemoveAt(index); } dataGrid.Refresh(); }
public bool AddPIValue(string piPoint, string dateString, string value) { bool piPointPresent = PIPointExists(piPoint); if (piPointPresent) { PIPoint myPoint = PIPoint.FindPIPoint(_pi, piPoint); PIPointType pointType = myPoint.PointType; object val = 0; try { val = ParseValue(pointType.ToString().ToLower(), value); } catch (Exception ex) { return(false); } DateTime dateValue; AFTime afTime; if (DateTime.TryParse(dateString, out dateValue)) { afTime = new AFTime(dateValue); } else { return(false); } AFValue piValue = new AFValue(val, afTime); myPoint.UpdateValue(piValue, AFUpdateOption.InsertNoCompression); return(true); } return(false); }
public void PiInsert(string Product, DataTable dt) { //**********************Insert records into pi******************************************** try { LabEntities db = new LabEntities(); PIServers myPIServers = new PIServers(); PIServer myPIServer = myPIServers.DefaultPIServer; NetworkCredential credential = new NetworkCredential("labserver", "labserver1"); myPIServer.Connect(credential); Dictionary <string, decimal?> piTagValues = new Dictionary <string, decimal?>(); var PiTaglist = (from v in db.Lab_TagTable orderby v.Id select v).Skip(39).Take(44); var date = Convert.ToDateTime(Session["alumina_date"].ToString()); int utc = DateTime.UtcNow.Hour; int dt_ = DateTime.Now.Hour; bool dst = DSTcheck(); if (dst) { dt_ = dt_ - 1; } int diff; if (utc > dt_) { diff = utc - dt_; } else { diff = utc + 24 - dt_; } //type is not feed moisture if (Product == "ALUMINA") { //string s = type.Substring(0, type.Length - 4); //string input = type.Substring(type.Length - 4); //int time = Convert.ToInt16(input.TrimEnd('0')); //DateTime datetime; //TimeSpan ts; //if (time == 24) //{ // ts = new TimeSpan(23, 59, 59); //} //else ts = new TimeSpan(time, 0, 0); //datetime = date + ts; //decimal? s = (decimal?)null; //bool nulloremtpy = string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()); piTagValues.Add("LABALUMINA_LOI", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString())); piTagValues.Add("LABALUMINA_P100", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString())); piTagValues.Add("LABALUMINA_P200", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString())); piTagValues.Add("LABALUMINA_P325", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString())); piTagValues.Add("LABALUMINA_BULKDENS", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString())); piTagValues.Add("LABALUMINA_SI", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString())); piTagValues.Add("LABALUMINA_FE", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString())); piTagValues.Add("LABALUMINA_NA", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString())); piTagValues.Add("LABALUMINA_ZN", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString())); piTagValues.Add("LABALUMINA_MN", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString())); piTagValues.Add("LABALUMINA_CA", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString())); piTagValues.Add("LABALUMINA_TI", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString())); piTagValues.Add("LABALUMINA_AI", string.IsNullOrWhiteSpace(dt.Rows[12]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[12]["value"].ToString())); piTagValues.Add("LABALUMINA_M20", string.IsNullOrWhiteSpace(dt.Rows[13]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[13]["value"].ToString())); foreach (KeyValuePair <string, decimal?> entry in piTagValues) { foreach (var item in PiTaglist) { string TagName = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5); string TagName_test = item.Pi_Tags_Test; if (TagName == entry.Key) { //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test); PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName); //use this when go to production AFValue currentTag = myPIPoint.CurrentValue(); currentTag.Value = Convert.ToString(entry.Value); //string ctv = currentTag.Value.ToString(); //DateTime cttimestamp = currentTag.Timestamp; //DateTime d = cttimestamp.Date; currentTag.Timestamp = date.AddHours(diff); if (!string.IsNullOrEmpty(currentTag.Value.ToString())) { //if (ctv != null && d != date) //{ myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert); //} //else //{ // currentTag.Timestamp = date.AddHours(diff); // myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace); //} } } } } } else if (Product == "HYDRATE") { piTagValues.Add("LABHYDRATE_P100", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString())); piTagValues.Add("LABHYDRATE_P200", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString())); piTagValues.Add("LABHYDRATE_P325", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString())); piTagValues.Add("LABHYDRATE_SI", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString())); piTagValues.Add("LABHYDRATE_FE", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString())); piTagValues.Add("LABHYDRATE_NA", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString())); piTagValues.Add("LABHYDRATE_ZN", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString())); piTagValues.Add("LABHYDRATE_MN", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString())); piTagValues.Add("LABHYDRATE_CA", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString())); piTagValues.Add("LABHYDRATE_TI", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString())); piTagValues.Add("LABHYDRATE_AI", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString())); piTagValues.Add("LABHYDRATE_FREEMOIST", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString())); piTagValues.Add("LABHYDRATE_CSEDS", string.IsNullOrWhiteSpace(dt.Rows[12]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[12]["value"].ToString())); piTagValues.Add("LABHYDRATE_INSOLS", string.IsNullOrWhiteSpace(dt.Rows[13]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[13]["value"].ToString())); piTagValues.Add("LABHYDRATE_BULKDENS", string.IsNullOrWhiteSpace(dt.Rows[14]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[14]["value"].ToString())); piTagValues.Add("LABHYDRATE_HUNTERL", string.IsNullOrWhiteSpace(dt.Rows[15]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[15]["value"].ToString())); piTagValues.Add("LABHYDRATE_HUNTERA", string.IsNullOrWhiteSpace(dt.Rows[16]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[16]["value"].ToString())); piTagValues.Add("LABHYDRATE_HUNTERB", string.IsNullOrWhiteSpace(dt.Rows[17]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[17]["value"].ToString())); foreach (KeyValuePair <string, decimal?> entry in piTagValues) { foreach (var item in PiTaglist) { string TagName = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5); string TagName_test = item.Pi_Tags_Test; if (TagName == entry.Key) { //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test); PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName); // use this when go to production AFValue currentTag = myPIPoint.CurrentValue(); currentTag.Value = Convert.ToString(entry.Value); //string ctv = currentTag.Value.ToString(); //DateTime cttimestamp = currentTag.Timestamp; //DateTime d = cttimestamp.Date; currentTag.Timestamp = date.AddHours(diff); if (!string.IsNullOrEmpty(currentTag.Value.ToString())) { //if (ctv != null && d != date) //{ // currentTag.Timestamp = date.AddHours(diff); myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert); // } // else // { // currentTag.Timestamp = date.AddHours(diff); // myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace); // } } } } } } else { piTagValues.Add("LABWETHYDRATE_P100", string.IsNullOrWhiteSpace(dt.Rows[0]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[0]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_P200", string.IsNullOrWhiteSpace(dt.Rows[1]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[1]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_P325", string.IsNullOrWhiteSpace(dt.Rows[2]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[2]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_SI", string.IsNullOrWhiteSpace(dt.Rows[3]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[3]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_FE", string.IsNullOrWhiteSpace(dt.Rows[4]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[4]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_NA", string.IsNullOrWhiteSpace(dt.Rows[5]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[5]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_ZN", string.IsNullOrWhiteSpace(dt.Rows[6]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[6]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_MN", string.IsNullOrWhiteSpace(dt.Rows[7]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[7]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_CA", string.IsNullOrWhiteSpace(dt.Rows[8]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[8]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_TI", string.IsNullOrWhiteSpace(dt.Rows[9]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[9]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_CSEDS", string.IsNullOrWhiteSpace(dt.Rows[10]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[10]["value"].ToString())); piTagValues.Add("LABWETHYDRATE_INSOLS", string.IsNullOrWhiteSpace(dt.Rows[11]["value"].ToString()) ? (decimal?)null : Convert.ToDecimal(dt.Rows[11]["value"].ToString())); foreach (KeyValuePair <string, decimal?> entry in piTagValues) { foreach (var item in PiTaglist) { string TagName = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5); string TagName_test = item.Pi_Tags_Test; if (TagName == entry.Key) { // PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test); PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName); // use this when go to production AFValue currentTag = myPIPoint.CurrentValue(); currentTag.Value = Convert.ToString(entry.Value); //string ctv = currentTag.Value.ToString(); //DateTime cttimestamp = currentTag.Timestamp; //DateTime d = cttimestamp.Date; currentTag.Timestamp = date.AddHours(diff); if (!string.IsNullOrEmpty(currentTag.Value.ToString())) { //if (ctv != null && d != date) //{ myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert); //} //else //{ // currentTag.Timestamp = date.AddHours(diff); // myPIPoint.UpdateValue(currentTag, AFUpdateOption.Replace); //} } } } } } myPIServer.Disconnect(); } catch (Exception ex) { } //*************************End******************************* }
private void DeleteEvents_Click(object sender, EventArgs e) { //Check TagList's count Int32 pointnumber = TagList.Items.Count; if (pointnumber < 1) { MessageBox.Show("Please search PI tags"); return; } else { if (radioButton_AllEvents.Checked) { //Delete all events for (int i = 1; i <= pointnumber; ++i) { PIPoint pt = PIPoint.FindPIPoint(myPIServer, TagList.Items[i - 1].Text); AFTimeRange timerange = new AFTimeRange(); timerange.StartTime = new AFTime(StartTimeTextBox.Text); timerange.EndTime = new AFTime(EndTimeTextBox.Text); AFValues vals = pt.RecordedValues(timerange, OSIsoft.AF.Data.AFBoundaryType.Inside, "", true); //delete all events within AFValues object if (vals.Count > 0) { pt.UpdateValues(vals, AFUpdateOption.Remove); string[] displayvalues = new string[3]; displayvalues[0] = pt.Name; displayvalues[1] = timerange.ToString(); displayvalues[2] = "-"; ListViewItem lvi = new ListViewItem(displayvalues); UpdateView.Items.Add(lvi); } } } else { //Delete specific events String deletestring = DeleteValueTextBox.Text.ToString(); for (int i = 1; i <= pointnumber; ++i) { PIPoint pt = PIPoint.FindPIPoint(myPIServer, TagList.Items[i - 1].Text); AFTimeRange timerange = new AFTimeRange(); timerange.StartTime = new AFTime(StartTimeTextBox.Text); timerange.EndTime = new AFTime(EndTimeTextBox.Text); AFValues vals = pt.RecordedValues(timerange, OSIsoft.AF.Data.AFBoundaryType.Inside, "", true); String Checktime = null; String Checkvalue = null; foreach (AFValue val in vals) { Checktime = val.Timestamp.LocalTime.ToString(); Checkvalue = ReadPIValueString(val); if (Checkvalue == deletestring) { pt.UpdateValue(val, AFUpdateOption.Remove); string[] displayvalues = new string[3]; displayvalues[0] = pt.Name; displayvalues[1] = Checktime; displayvalues[2] = Checkvalue; ListViewItem lvi = new ListViewItem(displayvalues); UpdateView.Items.Add(lvi); } } } } } }
public void PiInsert(string area, DataTable dt) { //**********************Insert records into pi******************************************** try { LabEntities db = new LabEntities(); PIServers myPIServers = new PIServers(); PIServer myPIServer = myPIServers.DefaultPIServer; NetworkCredential credential = new NetworkCredential("labserver", "labserver1"); myPIServer.Connect(credential); var date = Convert.ToDateTime(Session["sec3_date"].ToString()); int utc = DateTime.UtcNow.Hour; int dt_ = DateTime.Now.Hour; bool dst = DSTcheck(); if (dst) { dt_ = dt_ - 1; } int diff; if (utc > dt_) { diff = utc - dt_; } else { diff = utc + 24 - dt_; } if (area == "caustic_clean") { var PiTagList = (from v in db.Lab_TagTable where v.Tag_Name == area orderby v.Max, v.Min select v).ToList(); DataTable dt_copy = new DataTable(); dt_copy = dt.Copy(); dt_copy.Columns.RemoveAt(0); dt_copy.Columns.RemoveAt(3); for (int i = 0; i < dt_copy.Rows.Count; i++) { for (int j = 0; j < dt_copy.Columns.Count; j++) { string TagName = PiTagList[j].Pi_Tags; string TagName_test = PiTagList[j].Pi_Tags_Test;; { //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test); PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName); //-- use this when go to production AFValue currentTag = myPIPoint.CurrentValue(); currentTag.Timestamp = date; currentTag.Value = Convert.ToString(dt_copy.Rows[i][j]); string ctv = currentTag.Value.ToString(); DateTime cttimestamp = currentTag.Timestamp; DateTime d = cttimestamp.Date; if (!string.IsNullOrEmpty(currentTag.Value.ToString())) { currentTag.Value = Convert.ToString(dt_copy.Rows[i][j]); currentTag.Timestamp = date.AddHours(diff + i); myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert); } } } } } else { var PiTagList = (from v in db.Lab_TagTable where v.Tag_Name == area orderby v.Max, v.Min select v).ToList(); DataTable dt_copy = new DataTable(); dt_copy = dt.Copy(); dt_copy.Columns.RemoveAt(0); dt_copy.Columns.RemoveAt(0); { for (int i = 0; i < dt_copy.Rows.Count; i++) { for (int j = 0; j < dt_copy.Columns.Count; j++) { //string TagName = item.Pi_Tags_Test.Substring(0, item.Pi_Tags_Test.Length - 5); //string TagName_test = item.Pi_Tags_Test; //int g; //if (i != 0) //{ // g = (8 * i) + j; //} //else // g = j; if (area == "st_topsamples" || area == "tt_topsamples") { TagName = PiTagList[j].Pi_Tags; TagName_test = PiTagList[j].Pi_Tags_Test;; } else { int g; if (i != 0) { g = (8 * i) + j; TagName = PiTagList[g].Pi_Tags; TagName_test = PiTagList[g].Pi_Tags_Test; } else { TagName = PiTagList[j].Pi_Tags; TagName_test = PiTagList[j].Pi_Tags_Test; } } { //PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName_test); PIPoint myPIPoint = PIPoint.FindPIPoint(myPIServer, TagName); //-- use this when go to production AFValue currentTag = myPIPoint.CurrentValue(); string s = Convert.ToString(dt_copy.Rows[i][j]); currentTag.Value = Convert.ToString(dt_copy.Rows[i][j]); currentTag.Timestamp = date.AddHours(diff); if (!string.IsNullOrEmpty(currentTag.Value.ToString())) { myPIPoint.UpdateValue(currentTag, AFUpdateOption.Insert); } } } } } myPIServer.Disconnect(); } } catch (Exception exs) { string filePath = @"C:\Error.txt"; using (StreamWriter writer = new StreamWriter(filePath, true)) { writer.WriteLine("Message :" + exs.Message + "<br/>" + Environment.NewLine + "StackTrace :" + exs.StackTrace + "" + Environment.NewLine + "Date :" + DateTime.Now.ToString()); writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine); } } //*************************End******************************* }