This is an old revision of the document!


CFADC-A4L

전압, 전류를 측정할 수 있는 4채널 AD입력 모듈, Dip스위치 설정으로 전류(0~20mA) 또는 전압(0~10V) 입력을 선택할 수 있습니다.

전기적 사양

  • AD입력 점수 : 4채널
  • 전압 입력 범위 : 0 ~ 10VDC
  • 전류 입력 범위 : 0 ~ 20mA
  • 오차율 : ±0.1%
  • 분해능 : 약 14.7Bit (0 ~ 26,666값 반환)
  • 입력 응답속도 : 약 5mS
  • 절연방식 : 비절연방식

결선 방법

측정 Dip스위치 설정

  • 측정하고자 하는 전압 또는 전류를 DIP스위치로 설정합니다.
  • 각 채널에 있는 V, A스위치 중 한나만 ON 상태로 사용해야 합니다.
    • V=On / A=Off ⇒ 전압측정
    • V=Off / A=On ⇒ 전류측정

어드레스 설정

  • 하나의 시스템에 서로 다른 어드레스 설정으로 CFADC-A4L을 최대 4개 까지 사용 가능합니다.
  • 다른 I/O모듈과 어드레스 설정방법이 다릅니다. 주의가 필요합니다.
  • 4개 딥스위치중 하나만 On 하는 방식입니다.

CFHEADER API

컴버젼 및 처리속도

  • analogInputModule0.Channels[ ]의 NumberOfConversions 속성은 채널 별 아날로그 컨버젼(변환) 횟수를 설정합니다.
  • 선형적이고 안정적인 값 측정을 원하신다면, 이 NumberOfConversions 속성 값을 4 이상으로 설정하는 것을 권장합니다.(Defualt = 4)
  • 변환 속도는 채널당 약 7.8ms가 소요됩니다.
  • NumberOfConversions 값이 4인 경우, 하나의 채널에서 변환이 완료되기까지 약 7.8ms × 4 = 31ms가 걸립니다. 이 후에 변환된 값을 읽을 수 있습니다. 이때 모듈의 통신을 점유하고 있지는 않습니다.
  • 채널을 사용하지 않을 경우, 해당 채널의 NumberOfConversions 값을 0으로 설정하세요. 이렇게 하면 시스템이 채널을 건너뛰고 다음 채널로 넘어갑니다.
  • NumberOfConversions 값이 0로 설정시 : 해당 채널은 비활성화된 상태로 간주되며, 이때 IsEnabled 속성은 false(비활성화)를 반환합니다.
  • NumberOfConversions 값이 1이상 설정시 : 채널은 활성화된 것으로 간주되어 IsEnabled는 true(활성화)를 반환합니다.
var cfheader0 = Cfheader.Instances[0];
var analogInputModule0 = cfheader.AnalogInputModules[0];
 
// Channel 0 will perform 2 conversions first,
// then Channel 1 will perform 2 conversions,
// channels 2 and 3 will be immediately skipped,
// then back to channel 0.
analogInputModule0.Channels[0].NumberOfConversions = 2;
analogInputModule0.Channels[1].NumberOfConversions = 2;
analogInputModule0.Channels[2].NumberOfConversions = 0;
analogInputModule0.Channels[3].NumberOfConversions = 0;

Read(RawValue, Voltage, Current)

채널의 상태는 RawValue라는 디지털 원시 값, 전압(Voltage), 또는 전류(Current)로 읽을 수 있습니다. Voltage와 Current 속성은 RawValue 속성으로부터 계산됩니다. 보정(Calibration)이 필요할 수 있습니다.

var cfheader0 = Cfheader.Instances[0];
var analogInputModule0 = cfheader0.AnalogInputModules[0];
 
cfheader0.Open();
 
while (true)
{
    cfheader0.Sync();
 
    foreach (var c in analogInputModule0.Channels)
    {
        Console.WriteLine($"Channel {c.Address,2}: {c.RawValue,8} {c.Voltage,8:F2}V {c.Current,8:F2}A");
    }
}

ConversionCompleted Event

채널의 모든 NumberOfConversions가 완료되고 Sync를 통해 읽힐 때마다 ConversionCompleted 이벤트가 발생합니다. 이 이벤트는 채널의 상태(RawValue)가 변경되지 않았더라도 항상 발생합니다.
반면, RawValue 값이 변경되어 전압(Voltage) 및 전류(Current) 속성에도 영향을 줄 경우 이를 감지하려면 RawValueChanged 이벤트를 사용하세요.

var cfheader0 = Cfheader.Instances[0];
var analogInputModule0 = cfheader0.AnalogInputModules[0];
 
foreach(var channel in analogInputModule0.Channels)
{
    channel.ConversionCompleted += c =>
    {
        Console.WriteLine($"Channel {c.Address,2}: {c.RawValue,8} {c.Voltage,8:F2}V {c.Current,8:F2}A");
    };
}
 
cfheader0.Open();
 
while (true)
{
    cfheader0.Sync();
}

C# 예제 프로그램

  • CFADC모듈의 Ch0 의 아날로그 DATA 값, 전압 값을 읽어오는 프로그램입니다. [ CFHEADER[0] x CFADC[0] ]
sing ComfileTech.Cfnet.Cfheader;
 
var cfheader0 = Cfheader.Instances[0];
var analogInputModule0 = cfheader0.AnalogInputModules[0];
var CFADC_0_CH0 = analogInputModule0.Channels[0];
 
cfheader0.Open();
 
while (true){
    cfheader0.Sync();
    Console.WriteLine($"Channel {CFADC_0_CH0.Address,2}: {CFADC_0_CH0.RawValue,8} {CFADC_0_CH0.Voltage,8:F2}V {CFADC_0_CH0.Current,8:F2}A");
}

기술 지원 정책

고객님께서 개발 중이신 소스 코드는 기술 지원 대상에 포함되지 않습니다. 이는 저희가 해당 프로젝트에 직접 참여하지 않아 상세한 내용을 파악하기 어렵기 때문입니다. 이 점 양해 부탁드립니다.

제품이 이상이 있다고 판단되시는 경우, 제품 자체를 저희 회사로 보내주시기 바랍니다. 저희가 만든 소스와 지그로 테스트 한뒤 이상 유무를 판단해서 이상이 발견된 경우 조치해드리고 있습니다.

이전 페이지로 이동