private void Initialize() { if (opc.Connect("localhost", "Takebishi.dxp")) { chart1.ChartAreas[0].AxisY.ScaleView.Zoom(0, 10); dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor; dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor; ReadValues(); totalCount = data.Count; dataGridView1.DataSource = data; nextTemp = Convert.ToDouble(dataGridView1.Rows[0].Cells[1].Value); compTemp = (currentTemp > nextTemp) ? -10 : 5; currentTemp = 0; count = -1; point_Plot(""); perform_Calc(); for (count = 0; count < totalCount; count++) { if (Convert.ToDouble(dataGridView1.Rows[count].Cells[2].Value) != 0) { //first value currentTemp = Convert.ToDouble(dataGridView1.Rows[count].Cells[1].Value); point_Plot("Start"); //plot whole the next step string unit = dataGridView1.Rows[count].Cells[3].Value.ToString(); currentTime = currentTime + (toHour(Convert.ToDouble(dataGridView1.Rows[count].Cells[2].Value), unit.Equals("秒") ? 3600 : unit.Equals("分") ? 60 : 1)); point_Plot("End"); //search for next value count++; for (; count < totalCount; count++) { if (Convert.ToInt32(dataGridView1.Rows[count].Cells[2].Value) != 0) { nextTemp = Convert.ToDouble(dataGridView1.Rows[count].Cells[1].Value); compTemp = (currentTemp > nextTemp) ? -10 : 5; count--; break; } } //perform calculation perform_Calc(); } continue; } chart1.ChartAreas[0].AxisX.Maximum = Math.Ceiling(currentTime); //double min = data.Min(x => x.温度); //double max = data.Max(x => x.温度); //chart1.ChartAreas[0].AxisY.ScaleView.Zoom(min, max); //double offset = (max - min) * 0.1; //chart1.ChartAreas[0].AxisY.ScaleView.Zoom(min-offset, max+offset); chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset(); } }
private void btnConnect_Click(object sender, EventArgs e) { if (opc.Connect(txtNode.Text, cmbServerList.Text)) { btnListRefresh.Enabled = false; btnDisconnect.Enabled = true; btnConnect.Enabled = false; } }
// ロード時OPCサーバーリストを更新する private void Form1_Load(object sender, EventArgs e) { try { btnConnect.Enabled = true; btnDisconnect.Enabled = false; if (opc.Connect(txtNode.Text, cmbServerList.Text)) { btnListRefresh.Enabled = false; btnDisconnect.Enabled = true; btnConnect.Enabled = false; } else { DataHelper.ErrorLog("OPC connect() failed in Load()"); } } catch (Exception ex) { // Log Error DataHelper.ErrorLog(ex.Message); } }
private void btnConnect_Click(object sender, EventArgs e) { try { if (opc.Connect(txtNode.Text, cmbServerList.Text)) { btnListRefresh.Enabled = false; btnDisconnect.Enabled = true; btnConnect.Enabled = false; for (int num = 0; num < reg.Length; num++) { string[] target = new string[] { reg[num] }; CheckPlcStatus(target, num); } } } catch (Exception ex) { checkBox3.Enabled = false; MessageBox.Show(ex.ToString()); } }
private void Initialize() { if (opc.Connect("localhost", "Takebishi.dxp")) { chart1.ChartAreas[0].AxisY.ScaleView.Zoom(0, 10); dataGridView1.DefaultCellStyle.SelectionBackColor = dataGridView1.DefaultCellStyle.BackColor; dataGridView1.DefaultCellStyle.SelectionForeColor = dataGridView1.DefaultCellStyle.ForeColor; ReadValues(); totalCount = data.Count; dataGridView1.DataSource = data; for (; count < totalCount; count++) { if (Convert.ToDouble(dataGridView1.Rows[count].Cells[2].Value) != 0) { //first value currentTemp = Convert.ToDouble(dataGridView1.Rows[count].Cells[1].Value); point_Plot("Start"); //plot whole the next step string unit = dataGridView1.Rows[count].Cells[3].Value.ToString(); currentTime = currentTime + (toHour(Convert.ToDouble(dataGridView1.Rows[count].Cells[2].Value), unit.Equals("second")? 3600: unit.Equals("minute")? 60 : 1)); point_Plot("End"); //search for next value count++; for (; count < totalCount; count++) { if (Convert.ToInt32(dataGridView1.Rows[count].Cells[2].Value) != 0) { nextTemp = Convert.ToDouble(dataGridView1.Rows[count].Cells[1].Value); compTemp = (currentTemp > nextTemp) ? -10 : 5; count--; break; } } //perform calculation for (; currentTemp != nextTemp;) { if (currentTemp >= nextTemp && compTemp == 5) { if (currentTemp != nextTemp) { not_Enough(); currentTemp += 1; for (; currentTemp <= nextTemp; currentTemp = currentTemp + 1) { double add_Not_Enough = 0.2; add_Whole(add_Not_Enough); } currentTemp -= 1; nextTemp = nextTemp + decimalValue; currentTemp = (decimalValue != 0) ? currentTemp + 0.1 : currentTemp; for (; currentTemp < nextTemp; currentTemp = currentTemp + 0.1) { double add_Not_Enough = 0.02; add_Whole(add_Not_Enough); } } currentTime += 0.02; break; } else if (currentTemp <= nextTemp && compTemp == -10) { if (currentTemp != nextTemp) { not_Enough(); currentTemp -= 1; for (; currentTemp >= nextTemp; currentTemp = currentTemp - 1) { double add_Not_Enough = 0.1; add_Whole(add_Not_Enough); } currentTemp += 1; nextTemp = nextTemp + decimalValue; currentTemp = (decimalValue != 0) ? currentTemp - 0.1 : currentTemp; for (; currentTemp > nextTemp; currentTemp = currentTemp - 0.1) { double add_Not_Enough = 0.01; add_Whole(add_Not_Enough); } } currentTime += 0.01; break; } else { chart1.Series[lineName].Points.AddXY(currentTime, currentTemp); currentTemp = currentTemp + compTemp; currentTime = currentTime + 1; point++; continue; } } } continue; } chart1.ChartAreas[0].AxisX.Maximum = Math.Ceiling(currentTime); //double min = data.Min(x => x.温度); //double max = data.Max(x => x.温度); //chart1.ChartAreas[0].AxisY.ScaleView.Zoom(min, max); //double offset = (max - min) * 0.1; //chart1.ChartAreas[0].AxisY.ScaleView.Zoom(min-offset, max+offset); chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset(); } }
public void CheckButtonStatus(UserControl1 btn, Button btnVal) //, Button btnVal { if (opc.Connect(txtNode.Text, cmbServerList.Text)) { btnListRefresh.Enabled = false; btnDisconnect.Enabled = true; btnConnect.Enabled = false; string[] target = new string[2]; // string[] target = new string[]; for (int l = 0; l < btn.BtnUcs.Length; l++) { target[0] = btn.AmAddrTextbox; target[1] = btn.OpAddrTextbox; object[] val; int[] nErrorArray; short[] wQualityArray; OpcRcw.Da.FILETIME[] fTimeArray; if (opc.Read(target, out val, out wQualityArray, out fTimeArray, out nErrorArray) == true) { string regValue; regValue = ReadValCopy(val[1], 0, nErrorArray[0]); if (btnVal == btn.OpButton) { if (regValue == "0") { btn.OPStatTextbox = "None"; } else if (regValue == "1") { btn.OPStatTextbox = "Prohibition"; } else if (regValue == "2") { btn.OPStatTextbox = "Maintenance"; } else if (regValue == "3") { btn.OPStatTextbox = "Broke"; } else { return; } } else { if (regValue == "True" || regValue == "-1") { btnVal.Text = "On"; } else if (regValue == "False" || regValue == "0") { btnVal.Text = "Off"; } } } } ; //ButtonUserControl.UserControl1 parent = new ButtonUserControl.UserControl1(opc); //parent.ButtonEvent(opc); } }