private void btnSetSafetyValue_Click(object sender, EventArgs e) { if (!CheckControllable()) { return; } timer1.Enabled = false; int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx]; float[] fAOSafetyVals = new float[iChannelTotal]; for (int i = 0; i < iChannelTotal; i++) { fAOSafetyVals[i] = AnalogOutput.GetScaledValue(m_usRanges[i], m_usAOSafetyVals[i]); } string[] szRanges = new string[iChannelTotal]; for (int idx = 0; idx < szRanges.Length; idx++) { szRanges[idx] = AnalogInput.GetRangeName(m_usRanges[idx]); } FormSafetySetting formSafety = new FormSafetySetting(iChannelTotal, fAOSafetyVals, szRanges); formSafety.ApplySafetyValueClick += new FormSafetySetting.EventHandler_ApplySafetyValueClick(formSafety_ApplySafetyValueClick); formSafety.ShowDialog(); formSafety.Dispose(); formSafety = null; timer1.Enabled = true; }
/// <summary> /// Refresh start up value /// </summary> /// <returns></returns> private bool RefreshAoStartupValues() { try { string[] strVals; int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx]; if (m_adamSocket.AnalogOutput().GetStartupValues(m_idxID, iChannelTotal, out m_usStartupAO)) { strVals = new string[iChannelTotal]; for (int i = 0; i < m_usStartupAO.Length; i++) { strVals[i] = AnalogOutput.GetScaledValue(this.m_usRanges[i], m_usStartupAO[i]).ToString("0.000;-0.000"); listViewChInfo.Items[i].SubItems[5].Text = strVals[i]; } } else { StatusBar_IO.Text += "GetStartupValues() Failed! "; } return(true); } catch { return(false); } }
/// <summary> /// Refresh Modules's Safety column value /// </summary> private void RefreshSafetySetting() { int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx]; if (!m_adamSocket.Configuration().OUT_GetSafetyEnable(m_idxID, out m_bIsEnableSafetyFcn)) { StatusBar_IO.Text += "OUT_GetSafetyEnable(Error:" + m_adamSocket.Modbus().LastError.ToString() + ") Failed! "; } if (m_bIsEnableSafetyFcn) { ushort[] o_usValues; string[] strSafetyValue; if (m_adamSocket.AnalogOutput().GetSafetyValues(m_idxID, iChannelTotal, out o_usValues)) { m_usAOSafetyVals = o_usValues; strSafetyValue = new string[iChannelTotal]; for (int i = 0; i < iChannelTotal; i++) { listViewChInfo.Items[i].SubItems[6].Text = AnalogOutput.GetScaledValue(this.m_usRanges[i], m_usAOSafetyVals[i]).ToString("0.000;-0.000"); //moduify "Safety" column } } else { StatusBar_IO.Text += "GetSafetyValues(Error:" + m_adamSocket.Modbus().LastError.ToString() + ") Failed! "; } } else { for (int i = 0; i < iChannelTotal; i++) { listViewChInfo.Items[i].SubItems[6].Text = "Disable"; //moduify "Safety" column } } }
public void RefreshOutputPanel(float fHigh, float fLow) { float fOutputVal; fOutputVal = AnalogOutput.GetScaledValue(m_Adam6000Type, m_usRange[cbxAoChannel.SelectedIndex], m_usAoValue[cbxAoChannel.SelectedIndex]); labAoHigh.Text = fHigh.ToString(); labAoLow.Text = fLow.ToString(); txtAoOutputVal.Text = fOutputVal.ToString("0.000"); try { tBarAoOutputVal.Value = Convert.ToInt32(tBarAoOutputVal.Minimum + (tBarAoOutputVal.Maximum - tBarAoOutputVal.Minimum) * (fOutputVal - fLow) / (fHigh - fLow)); } catch { tBarAoOutputVal.Value = 0; } }
/// <summary> /// Refresh AI Channel Information /// </summary> /// <returns></returns> private bool RefreshData() { int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx]; ushort[] usVal; string[] strVal; float fHigh = 0, fLow = 0; if (!m_adamSocket.AnalogOutput().GetValues(m_idxID, iChannelTotal, out usVal)) { StatusBar_IO.Text += "ApiErr:" + m_adamSocket.Modbus().LastError.ToString() + " "; return(false); } strVal = new string[usVal.Length]; for (int i = 0; i < iChannelTotal; i++) { if (this.IsShowRawData) { strVal[i] = usVal[i].ToString("X04"); } else { strVal[i] = AnalogOutput.GetScaledValue(this.m_usRanges[i], usVal[i]).ToString(AnalogOutput.GetFloatFormat(this.m_usRanges[i])); } listViewChInfo.Items[i].SubItems[3].Text = strVal[i].ToString(); //moduify "Value" column } //Update tBarOutputVal if (!b_AOValueModified) { int idx = 0; for (int i = 0; i < listViewChInfo.Items.Count; i++) { if (listViewChInfo.Items[i].Selected) { idx = i; } } AnalogOutput.GetRangeHighLow(m_usRanges[idx], out fHigh, out fLow); RefreshOutputPanel(fHigh, fLow, AnalogOutput.GetScaledValue(this.m_usRanges[idx], usVal[idx])); } return(true); }
private void RefreshOutputValue(int i_iChannel) { int iStart = 11 + i_iChannel; int[] iData; float fValue; string szFormat; Adam6024_OutputRange byRange; if (adamModbus.Modbus().ReadInputRegs(iStart, 1, out iData)) { fValue = AnalogOutput.GetScaledValue(m_Adam6000Type, m_byAoRange[i_iChannel], iData[0]); // szFormat = AnalogOutput.GetFloatFormat(m_Adam6000Type, m_byAoRange[i_iChannel]); byRange = (Adam6024_OutputRange)m_byAoRange[i_iChannel]; if (byRange == Adam6024_OutputRange.mA_0To20) // 0~20mA { lblLow.Text = "0 mA"; lblHigh.Text = "20 mA"; trackBar1.Value = Convert.ToInt32(fValue * trackBar1.Maximum / 20); } else if (byRange == Adam6024_OutputRange.mA_4To20) // 4~20mA { lblLow.Text = "4 mA"; lblHigh.Text = "20 mA"; trackBar1.Value = Convert.ToInt32((fValue - 4.0) * trackBar1.Maximum / 16); } else // 0~10V { lblLow.Text = "0 V"; lblHigh.Text = "10 V"; trackBar1.Value = Convert.ToInt32(fValue * trackBar1.Maximum / 10); } txtOutputValue.Text = fValue.ToString(szFormat); } else { txtReadCount.Text += "ReadInputRegs() failed;"; } }
private void RefreshAoChannelValue(int i_iChannel) { int iStart = 11 + i_iChannel; int[] iData; float fValue; string szFormat; if (adamModbus.Modbus().ReadInputRegs(iStart, 1, out iData)) { fValue = AnalogOutput.GetScaledValue(m_Adam6000Type, m_byAoRange[i_iChannel], iData[0]); // szFormat = AnalogOutput.GetFloatFormat(m_Adam6000Type, m_byAoRange[i_iChannel]); // txtCurrentValue.Text = fValue.ToString(szFormat) + " " + AnalogOutput.GetUnitName(m_Adam6000Type, m_byAoRange[i_iChannel]); } else { txtReadCount.Text += "ReadInputRegs() failed;"; } }
private bool RefreshAoModbusValue(int i_AoValueStart, int i_AoChTotal, ref DataGridView dgViewModbus) { int iIdx; int[] iValueData; string szRange, szFormat; if (adamModbus.Modbus().ReadInputRegs(i_AoValueStart, i_AoChTotal, out iValueData)) { for (iIdx = 0; iIdx < i_AoChTotal; iIdx++) { szRange = AnalogOutput.GetRangeName(m_Adam6000Type, m_usRange[iIdx]); szFormat = AnalogOutput.GetFloatFormat(m_Adam6000Type, m_usRange[iIdx]); m_usAoValue[iIdx] = Convert.ToUInt16(iValueData[iIdx]); dgViewModbus.Rows[iIdx].Cells[3].Value = m_usAoValue[iIdx].ToString(); dgViewModbus.Rows[iIdx].Cells[4].Value = m_usAoValue[iIdx].ToString("X04"); dgViewModbus.Rows[iIdx].Cells[5].Value = AnalogOutput.GetScaledValue(m_Adam6000Type, m_usRange[iIdx], m_usAoValue[iIdx]).ToString(szFormat); dgViewModbus.Rows[iIdx].Cells[6].Value = szRange; } return(true); } return(false); }
private void RefreshChannelValue(int i_iChannel, ref TextBox i_txtCh) { int iStart = m_iSlot * 8 + i_iChannel + 1; int[] iData; float fValue; string szFormat; if (m_b5000) { if (adamCom.AnalogOutput(m_iAddr).GetCurrentValue(m_iSlot, i_iChannel, out fValue)) { szFormat = AnalogOutput.GetFloatFormat(m_Adam5000Type, m_byRange[i_iChannel]); i_txtCh.Text = fValue.ToString(szFormat) + " " + AnalogOutput.GetUnitName(m_Adam5000Type, m_byRange[i_iChannel]); } else { i_txtCh.Text = "Failed to get"; } } else { if (adamSocket.Modbus(m_iAddr).ReadInputRegs(iStart, 1, out iData)) { fValue = AnalogOutput.GetScaledValue(m_Adam5000Type, m_byRange[i_iChannel], iData[0]); // szFormat = AnalogOutput.GetFloatFormat(m_Adam5000Type, m_byRange[i_iChannel]); // i_txtCh.Text = fValue.ToString(szFormat) + " " + AnalogOutput.GetUnitName(m_Adam5000Type, m_byRange[i_iChannel]); } else { i_txtCh.Text = "Failed to get"; } } }
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { string strSelPageName = tabControl1.TabPages[tabControl1.SelectedIndex].Text; int idx; float fHigh = 0, fLow = 0, fVal = 0; ushort usVal; StatusBar_IO.Text = ""; m_adamSocket.Disconnect(); m_adamSocket.Connect(m_adamSocket.GetIP(), protoType, portNum); if (strSelPageName == "Module Information") { m_iFailCount = 0; m_iScanCount = 0; } else if (strSelPageName == "AO") { RefreshRanges(); RefreshAoStartupValues(); RefreshSafetySetting(); chbxEnableSafety.Checked = m_bIsEnableSafetyFcn; //Set AO info idx = 0; //initial index if (m_adamSocket.AnalogOutput().GetCurrentValue(m_idxID, idx, out usVal)) { AnalogOutput.GetRangeHighLow(m_usRanges[idx], out fHigh, out fLow); fVal = AnalogOutput.GetScaledValue(m_usRanges[idx], usVal); RefreshOutputPanel(fHigh, fLow, fVal); } else { this.StatusBar_IO.Text += "GetValues() filed!"; } //synchronize channel status for (int i = 0; i < listViewChInfo.Items.Count; i++) { if (i == idx) { listViewChInfo.Items[i].Selected = true; } else { listViewChInfo.Items[i].Selected = false; } } string szTemp = AnalogOutput.GetRangeName(m_usRanges[idx]); for (int i = 0; i < cbxRange.Items.Count; i++) { if (szTemp == cbxRange.Items[i].ToString()) { cbxRange.SelectedIndex = i; break; } } } if (tabControl1.SelectedIndex == 0) { this.timer1.Enabled = false; } else { this.timer1.Enabled = true; } }