This is an old revision of the document!
Table of Contents
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"); }
기술 지원 정책
고객님께서 개발 중이신 소스 코드는 기술 지원 대상에 포함되지 않습니다. 이는 저희가 해당 프로젝트에 직접 참여하지 않아 상세한 내용을 파악하기 어렵기 때문입니다. 이 점 양해 부탁드립니다.
제품이 이상이 있다고 판단되시는 경우, 제품 자체를 저희 회사로 보내주시기 바랍니다. 저희가 만든 소스와 지그로 테스트 한뒤 이상 유무를 판단해서 이상이 발견된 경우 조치해드리고 있습니다.
