예제 #1
0
        public void SetInpuAverageMode(ADCChannel channelNo, ushort averageTimes)
        {
            ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_AverageMode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, averageTimes);

            if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR)
            {
                throw new Exception("CS_ECAT_Slave_ESC8124_Set_Input_AverageMode, " + GetEtherCATErrorCode(g_uRet));
            }
        }
예제 #2
0
        public void SetInputEnable(ADCChannel channelNo, bool enable)
        {
            ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC8124_Set_Input_Enable(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, (ushort)(enable ? 1 : 0));

            if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR)
            {
                throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_Enable, " + GetEtherCATErrorCode(g_uRet));
            }
        }
예제 #3
0
        public void SetInputConvstFreqMode(ADCChannel channelNo, ConvstFreqMode rangeMode)
        {
            ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_ConvstFreq_Mode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, (ushort)rangeMode);

            if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR)
            {
                throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_RangeMode, " + GetEtherCATErrorCode(g_uRet));
            }
        }
예제 #4
0
        public ushort GetInputValue(ADCChannel channelNo)
        {
            ushort value  = 0;
            ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_AIO_Get_Input_Value(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, ref value);

            if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR)
            {
                throw new Exception("CS_ECAT_Slave_AIO_Get_Input_Value, " + GetEtherCATErrorCode(g_uRet));
            }
            return(value);
        }
예제 #5
0
        public ushort GetInputRangeMode(ADCChannel channelNo)
        {
            ushort rangeMode = 0;
            ushort g_uRet    = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC8124_Get_Input_RangeMode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, ref rangeMode);

            if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR)
            {
                throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_RangeMode, " + GetEtherCATErrorCode(g_uRet));
            }
            return(rangeMode);
        }
예제 #6
0
 /// <summary>
 /// Reads an ADC channel result
 /// </summary>
 /// <param name="channel">channel to read</param>
 /// <returns>convert results</returns>
 public UInt32 ReadChannel(ADCChannel channel)
 {
     try
     {
         byte [] data = new byte[4];
         this.DeviceIoControl(IOCTL_ADC_GETCHANNEL, SerializeToByteArray((UInt32)channel), data);
         return((UInt32)DeserializeFromByteArray(data, typeof(UInt32)));
     }
     catch (Exception)
     {
         throw new Exception("Unable to complete DeviceIoControl:" + Marshal.GetLastWin32Error());
     }
 }
예제 #7
0
        public bool SetChannelGain(ADCChannel ChannelNo, ADCGain Gain)
        {
            I16 rc = CA180_L132.CS_mnet_ai8_set_channel_gain((U16)adcPara.CardSwitchNo, (U16)adcPara.RingNoOfCard, (U16)adcPara.SlaveIP, (U16)ChannelNo, (U8)Gain);

            if (rc != 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
예제 #8
0
        public bool SetChannelEnable(ADCChannel channelNo, bool enable)
        {
            I16 rc = CADC_A180.CS_mnet_ai8_enable_channel((U16)adcPara.CardSwitchNo, (U16)adcPara.SlaveIP, (U16)channelNo, Convert.ToByte(enable));

            if (rc != 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }