コード例 #1
0
        /// <summary>
        /// Refresh AI Channel Information
        /// </summary>
        /// <returns></returns>
        private bool RefreshData()
        {
            int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx];

            if (this.m_uiChMask != 0x00)
            {
                ushort[] usVal;
                Advantech.Adam.Apax5000_ChannelStatus[] aStatus;

                if (!m_adamSocket.AnalogInput().GetChannelStatus(m_idxID, iChannelTotal, out aStatus))
                {
                    StatusBar_IO.Text += "[GetChannelStatus] ApiErr:" + m_adamSocket.Modbus().LastError.ToString() + " ";
                    return(false);
                }
                if (!m_adamSocket.AnalogInput().GetValues(m_idxID, iChannelTotal, out usVal))
                {
                    StatusBar_IO.Text += "[GetValues] ApiErr:" + m_adamSocket.Modbus().LastError.ToString() + " ";
                    return(false);
                }

                string[] strVal      = new string[iChannelTotal];
                string[] strStatus   = new string[iChannelTotal];
                double[] dVals       = new double[iChannelTotal];
                bool     bHasTCRange = false;

                for (int i = 0; i < iChannelTotal; i++)
                {
                    if (m_aConf.wPktVer >= 0x0002)
                    {
                        dVals[i] = AnalogInput.GetScaledValueWithResolution(this.m_usRanges[i], usVal[i], m_aConf.wHwIoType_0_Resolution);
                    }
                    else
                    {
                        if (m_aConf.GetModuleName() == "5017H")
                        {
                            dVals[i] = AnalogInput.GetScaledValueWithResolution(this.m_usRanges[i], usVal[i], 12);
                        }
                        else
                        {
                            dVals[i] = AnalogInput.GetScaledValue(this.m_usRanges[i], usVal[i]);
                        }
                    }

                    if (m_usRanges[i] >= 0x400 && m_usRanges[i] < 0x500)
                    {
                        bHasTCRange = true;
                    }
                    if (m_bChMask[i])
                    {
                        if (this.IsShowRawData)
                        {
                            strVal[i] = usVal[i].ToString("X04");
                        }
                        else
                        {
                            strVal[i] = dVals[i].ToString(AnalogInput.GetFloatFormat(this.m_usRanges[i]));
                        }
                        strStatus[i] = aStatus[i].ToString();
                    }
                    else
                    {
                        strVal[i]    = "*****";
                        strStatus[i] = "Disable";
                    }
                    listViewChInfo.Items[i].SubItems[3].Text = strVal[i].ToString();    //moduify "Value" column
                    listViewChInfo.Items[i].SubItems[4].Text = strStatus[i].ToString(); //modify "Ch Status" column
                }

                if (bHasTCRange && (((m_iScanCount * timer1.Interval) % 5000 >= 0) && ((m_iScanCount * timer1.Interval) % 5000 < 1)))
                {
                    float fCJCVal;
                    Apax5000_ChannelStatus o_Status;
                    if (m_adamSocket.AnalogInput().GetCJCValue(m_idxID, out fCJCVal, out o_Status))
                    {
                        if (o_Status == Apax5000_ChannelStatus.CJCTempError)
                        {
                            timer1.Enabled = false;
                            MessageBox.Show("The CJC temperature sensor failed!\nPlease check device is install correctly.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
                            StatusBar_IO.Text += "The CJC temperature sensor failed! Please check device is install correctly.";
                        }
                    }
                }
            }
            else
            {
                for (int i = 0; i < iChannelTotal; i++)
                {
                    listViewChInfo.Items[i].SubItems[3].Text = "******";        //moduify "Value" column
                    listViewChInfo.Items[i].SubItems[4].Text = "******";        //modify "Ch Status" column
                }
            }
            return(true);
        }
コード例 #2
0
        private void RefreshChannelEnable()
        {
            bool bRet;

            bool[] bEnabled;

            if (m_b5000)
            {
                bRet = adamCom.AnalogInput(m_iAddr).GetChannelEnabled(m_iSlot, m_iChTotal, out bEnabled);
            }
            else
            {
                bRet = adamSocket.AnalogInput(m_iAddr).GetChannelEnabled(m_iSlot, m_iChTotal, out bEnabled);
            }
            if (bRet)
            {
                if (m_iChTotal > 0)
                {
                    chkboxCh0.Checked = bEnabled[0];
                }
                if (m_iChTotal > 1)
                {
                    chkboxCh1.Checked = bEnabled[1];
                }
                if (m_iChTotal > 2)
                {
                    chkboxCh2.Checked = bEnabled[2];
                }
                if (m_iChTotal > 3)
                {
                    chkboxCh3.Checked = bEnabled[3];
                }
                if (m_iChTotal > 4)
                {
                    chkboxCh4.Checked = bEnabled[4];
                }
                if (m_iChTotal > 5)
                {
                    chkboxCh5.Checked = bEnabled[5];
                }
                if (m_iChTotal > 6)
                {
                    chkboxCh6.Checked = bEnabled[6];
                }
                if (m_iChTotal > 7)
                {
                    chkboxCh7.Checked = bEnabled[7];
                }
                txtAIValue0.Text = "";
                txtAIValue1.Text = "";
                txtAIValue2.Text = "";
                txtAIValue3.Text = "";
                txtAIValue4.Text = "";
                txtAIValue5.Text = "";
                txtAIValue6.Text = "";
                txtAIValue7.Text = "";
            }
            else
            {
                MessageBox.Show("GetChannelEnabled() failed", "Error");
            }
        }
コード例 #3
0
        /// <summary>
        /// Refresh AI Channel Information
        /// </summary>
        /// <returns></returns>
        private bool RefreshData()
        {
            int iChannelTotal = this.m_aConf.HwIoTotal[m_tmpidx];

            if (this.m_uiChMask != 0x00)
            {
                ushort[] usVal;
                Advantech.Adam.Apax5000_ChannelStatus[] aStatus;

                if (!m_adamSocket.AnalogInput().GetChannelStatus(m_idxID, iChannelTotal, out aStatus))
                {
                    StatusBar_IO.Text += "[GetChannelStatus] ApiErr:" + m_adamSocket.Modbus().LastError.ToString() + " ";
                    return(false);
                }
                if (!m_adamSocket.AnalogInput().GetValues(m_idxID, iChannelTotal, out usVal))
                {
                    StatusBar_IO.Text += "[GetValues] ApiErr:" + m_adamSocket.Modbus().LastError.ToString() + " ";
                    return(false);
                }

                string[] strVal    = new string[iChannelTotal];
                string[] strStatus = new string[iChannelTotal];
                double[] dVals     = new double[iChannelTotal];

                for (int i = 0; i < iChannelTotal; i++)
                {
                    if (m_aConf.wPktVer >= 0x0002)
                    {
                        dVals[i] = AnalogInput.GetScaledValueWithResolution(this.m_usRanges[i], usVal[i], m_aConf.wHwIoType_0_Resolution);
                    }
                    else
                    {
                        if (m_aConf.GetModuleName() == "5017H")
                        {
                            dVals[i] = AnalogInput.GetScaledValueWithResolution(this.m_usRanges[i], usVal[i], 12);
                        }
                        else
                        {
                            dVals[i] = AnalogInput.GetScaledValue(this.m_usRanges[i], usVal[i]);
                        }
                    }

                    if (m_bChMask[i])
                    {
                        if (this.IsShowRawData)
                        {
                            strVal[i] = usVal[i].ToString("X04");
                        }
                        else
                        {
                            strVal[i] = dVals[i].ToString(AnalogInput.GetFloatFormat(this.m_usRanges[i]));
                        }
                        strStatus[i] = aStatus[i].ToString();
                    }
                    else
                    {
                        strVal[i]    = "*****";
                        strStatus[i] = "Disable";
                    }
                    listViewChInfo.Items[i].SubItems[3].Text = strVal[i].ToString();    //moduify "Value" column
                    listViewChInfo.Items[i].SubItems[4].Text = strStatus[i].ToString(); //modify "Ch Status" column
                }
            }
            else
            {
                for (int i = 0; i < iChannelTotal; i++)
                {
                    listViewChInfo.Items[i].SubItems[3].Text = "******";        //moduify "Value" column
                    listViewChInfo.Items[i].SubItems[4].Text = "******";        //modify "Ch Status" column
                }
            }
            return(true);
        }
コード例 #4
0
ファイル: Adam6017.cs プロジェクト: holybaby/Advantech.Adam
 public bool[] GetEnabledChannels()
 {
     bool[] enabled;
     _adamSocket.AnalogInput().GetChannelEnabled(TotalAnalogInputChannels, out enabled);
     return(enabled);
 }