연재(9) - 나만의 실험실을 저렴하게 제작한다

게재월 | 2014 - 05 조회151252 추천0

목록으로 글자확대하기 글자축소하기

특성 변화를 자동 측정하는 리피트 테스트 어시스턴트

ON/OFF와 측정을 계속해서 반복한다


기기의 부품을 한결같이 ON/OFF하고 ON 저항의 경시 변화를 EEPROM에 저장할 수 있는 장치(사진 1, 그림 1)를 제작했다. 내구성 시험 등에 사용할 수 있다.


▲ 사진 1. 기계 소모를 시험해 주는 리피트 테스트 장치


▲ 그림 1. 이 기기를 사용하여 측정한 릴레이의 접촉 저항 변화

(서지 보호 부품 없이 사용한 외산 릴레이의 열화 정도)


장치 소개


1. 서지 대책이 없는 릴레이 수명은 어느 정도?

소형 릴레이로 AC100V 전원의 파워 릴레이를 ON/OFF하는 장치 수리를 의뢰받았다. 보통 릴레이 코일에는 서지 대책이 실시되어 있다(그림 2). 


▲ 그림 2. 보통은 릴레이 접점에 서지 대책을 실시하지만…


유도부하를 ON했을 때의 돌입 전류와 OFF했을 때 개방되는 전자(電磁) 에너지로부터 접점을 보호하는 것이 목적이다. 직류 릴레이의 경우 다이오드가 일반적이다[그림 2(a)]. 교류라면 그림 2(b)와 같이 저항+콘덴서의 서지 킬러 회로 혹은 배리스터[그림 2(c), 사진 2]를 부하에 병렬 접속한다.


▲ 사진 2. 서지 대책용 부품 (서지 킬러와 ZNR)


배선 길이가 길 경우에는 접점 보호를 목적으로 접점 측에 서지 킬러를 설치할 때도 있다. 릴레이 점점이 아니라 SSR(솔리드 스테이트 릴레이, 반도체 릴레이)에서도 동일하다.

수리를 의뢰 받은 제품은 그림 1(d)와 같이 파워 릴레이 코일과 릴레이 접점을 연결하기만 한 것으로, 서지 대책이 실시되어 있지 않았다. 이로 인해 장기간 운전하는 동안 릴레이 접점이 열화되고 파워 릴레이가 동작하지 않아 장치 전체의 동작 불량이 발생했다(사진 3, 사진 4).


▲ 사진 3. 소형 릴레이의 내부


▲ 사진 4. 서지 대책 없이 열화된 접점 모습

(중앙이 가동부, 위가 A 접점이며 아래쪽 B 점점과

비교하면 열화되었다는 것을 알 수 있다)


2. 사양

• 100VAC ON/OFF

• 분해능 1mΩ에서 저항 계측


3. 응용 예

전류 계측과 AC 릴레이, 기기 스위치를 높은 빈도로 ON/OFF한다.

 ‌

이 기기로 할 수 있는 것


1. 릴레이 수명은 접촉 저항 변화를 조사하면 알 수 있다

서지 대책 없이 사용한 릴레이 접점 수명은 어느 정도인지, Arduino를 사용하여 접점의 접촉 저항 변화를 측정해 보았다.

그림 3은 부하가 되는 파워 릴레이를 개폐하는 모습이다. 릴레이 ON/OFF 신호(파형 위쪽)와 파워 릴레이에 흐르는 전류(ON일 때 약 11mA)를 관측한 것이다(아래쪽). 커런트 트랜스로 전류를 잡았다. 서지 킬러가 없으므로 OFF일 때 큰 스파이크가 생겼다.


▲ 그림 3. 파워 릴레이는 OFF일 때 대전류가 흐른다

(5V/div, 10mA/div, 100ms/div)


2. 124만 회 개폐해도 성능이 열화되지 않은 릴레이

124만 회 개폐하고 얻은 접촉 저항 변화(EEPROM에 기록한 값)를 그래프로 그린 것이 그림 4이다. 예상과 달리 매우 안정적인 결과가 나왔다.


▲ 그림 4. 갖고 있던 릴레이를 124만 회 개폐하여 얻은 접촉 저항 변화

(200회 연속 ON/OFF 50회를 반복하여 저항값 측정. 안정적인 값을

얻기 위해 60s 동안 시간을 갖고 재측정하는 등의 연구를 실시했다)


그림 5는 200회 개폐할 때마다 출력하는 데이터(시간 대기 없이 측정한 데이터)를 점으로 그린 것이다. 측정 최대값인 4095mΩ이 된 부분도 있다. 그러나 1만 번마다 대기 시간을 넣어 측정한 데이터는 낮게 안정되었다.


▲ 그림 5. 그림 4와 같이 측정할 때, 200회 개폐할 때마다 출력하는

데이터를 점으로 그린 것 (연속해서 ON/OFF한 직후 측정하면

저항값이 높게 나오는 경향이 있다)


그 릴레이를 해체하여 접점을 관찰한 것이 사진 5이다. 실제 기기에서 동작 불량이 발생한 접점과 같이 검은색 부착물(증발한 접점 소재일까?)이 없었다.


▲ 사진 5. 일본제 릴레이는 124만 회

개폐해도 접점 상태가 깨끗하다


실험에서는 200mm 정도의 전선을 사용하여 부하가 되는 파워 릴레이와 실험 릴레이의 접점을 연결했다. 실제 기기의 경우 더 가까이에 배치되어 있다. 이 약간의 차이가 접점 열화 상태에 영향을 미쳤을지 모른다.


3. 해외 제품은 변동이 크다

이어서 수리 시 대체품으로 이용하려고 한 외국산 릴레이를 사용하여 동작을 확인해 보았다. 시간 관계상 85만 번으로 끝냈으며, 그 저항값 변화는 그림 1과 같다.

측정 1만 번째마다 마찬가지로 대기 시간을 두었다. 그러나 국산 제품과 같이 안정적이지 않았다. 풀 스케일값도 나타났다. 50만 번 부근부터 1000m~1500mΩ에서 안정될 것으로 생각했지만, 그 후에도 큰 변동이 생겼다.

사진 6은 접점 모습을 나타낸 것이다. 릴레이의 외형과 핀 접속은 같지만 접점 형상은 국산 제품과 다르다. A 접점과 가동부의 검은 색 부착물이 신경 쓰인다.


▲ 사진 6. 수리에 사용하려고 한 외산

릴레이 85만 회 개폐 후의 접점


시험 결과는 필자의 홈페이지(http://www.oct.zaq.ne.jp/i-garage/trbl/g2e_relay.htm)에서 보고한다.

이번에는 릴레이 접점 수명을 시험했지만 릴레이를 구동하는 대신 솔레노이드를 작동시켜 기계 스위칭 수명을 시험할 수도 있다. 사진 7은 기판 실장용 택트 스위치를 시험하는 모습이다. 솔레노이드 구동으로 스위치 윗면이 눌려 접점이 ON된다. 그 때의 잔류 전압과 전원에 가해지는 풀업 저항에서 접점의 접촉 저항을 추정해 변화를 기록하는 것이다.


▲ 사진 7. 솔레노이드를 사용하여 택트 스위치를 ON/OFF하는 장치


하드웨어


1. 4095mΩ까지 1mΩ 분해능으로 측정한다

회로 블록도는 그림 6과 같다. Arduino가 구동하는 릴레이는 3개이다. 우선 하나는 시험 대상 릴레이 (A)로, 이 접점이 AC100V에 연결되는 부하(파워 릴레이)를 ON/OFF한다. 릴레이 (B)로 AC100V 전원을 ON/OFF하고, 릴레이 (C)로 시험 접점의 연결 위치를 AC100V 측과 접촉 저항 측정 회로 측으로 변환한다.


▲ 그림 6. 이 기기의 구성


저항 측정에는 4단자법을 이용한다. 그림 7은 그 구성을 나타낸 것이다. 직류 20mA를 접점에 흘리고 접점에서의 전압 강하를 계장 앰프(인스트루먼테이션 앰프)로 증폭한다. 그 출력을 12비트 A-D 컨버터로 디지털화했다. 1mΩ 분해능에서 4095mΩ이 측정 최대값이다. 기준 전원이 2.5V를 12비트로 분해하면, 1비트는 약 0.6mV이다.


▲ 그림 7. 접점 저항 측정 방법 (4단자 측정법 이용)


Arduino 내장 A-D 컨버터(10비트)를 사용하지 않은 것은 마이컴 부분의 전원이나 GND 라인의 영향을 배제하고 싶었기 때문이다. 아날로그부 회로가 모여 있는 곳에 A-D 컨버터를 배치하며, 이 GND는 주변 회로와 한 점에서만 연결된다.


2. Arduino와 접속

유니버설 기판 위에 회로를 구성했다(사진 1). 범용 유니버설 기판이므로 Arduino 기판을 직접 얹지 않았다. 그래서 MIL 30핀 커넥터에 신호를 모아 6, 8, 10핀 총 4개의 SIP 플러그에서 신호를 뽑기로 했다. 30핀 커넥터 접속은 그림 8, 외관은 사진 8과 같다.


▲ 그림 8. 제작한 기판과 Arduino 접속용 케이블 배선


▲ 사진 8. Arduino 접속용으로 만든 30핀 케이블


그림 9는 제작한 기판의 디지털 신호 접속도를 나타낸 것이다. 아날로그부에는 A-D 컨버터의 4선으로만 연결된다. 제어에 사용한 릴레이는 DC12V, 2회로 제품이므로 저항 내장 트랜지스터로 구동한다. 스위치 3개 중 Arduino가 읽는 것은 2개뿐이다. SW3는 시험하는 접점을 소프트웨어에 관계없이 강제적으로 ON하기 위한 것으로, Arduino의 출력 신호와 다이오드 OR되어 있다.


▲ 그림 9. 이 기기의 디지털 회로 블록


액정은 busy 판독이 없는 4비트 모드에서 사용한다. 라이브러리 덕분에 간단히 제어할 수 있다. 그림 10은 회로를, 표 1은 부품표를 나타낸 것이다.


▲ 그림 10. 이 기기의 아날로그 회로 블록


▲ 표 1. 부품표


3. 정전류 회로

전류 검출 저항 R1(10Ω) 양단 전압이 일정해지도록 Tr1의 이미터 전류가 제어된다. VR1으로 전류를 설정한다.

전류를 흘려 내보내는 트랜지스터 Tr1의 전원(컬렉터)은 안정화된 5V계 전원이 아니라 DC 잭에서 공급되는 12V계 전원을 이용한다. 전류 설정을 크게(예를 들면 100mA)했을 때 Arduino 상의 레귤레이터에 부담을 가하지 않기 때문이다.

시험하는 릴레이 접점(A)이 OFF일 때는 전류가 흐르지 않는다. 정전류 회로 제어계는, 어떻게든 전류를 흘리려면 Tr1을 구동한다. 이 때, Tr1의 컬렉터 전압인 12V가 나올 것 같지만, 이미터에 나오는 전압은 제어하고 있는 OP 앰프(IC1)의 출력 전압(5V 전원)으로 되어 계장 앰프 입력에 과다한 전압이 가해지는 일이 없다.


4. 계장 앰프

AD8226은 PNP 트랜지스터 입력의 계장 앰프이다. 단전원으로 사용할 수 있지만 설정 게인에 대한 동상 입력 전압 범위 제한으로 마이너스 전원이 필요해졌다. 단전원이면 출력 전압이 1.5V를 넘는 부근부터 포화가 시작되는 것이다. R1에 연결되는 마이너스 측 입력 전압이 0V에 가까운 것이 원인이다. 대표적인 ICL7660(스위치드 커패시터 전압 컬렉터)을 사용하여 -5V를 발생시키기로 했다. VR2로 계장 앰프 게인을, VR3로 제로 오프셋을 조정한다. 앰프에 필요한 게인은 다음과 같이 계산한다.

① 4095mΩ이 측정 최대값

② ‌정전류 회로에서 20mA가 흐르므로 약 82mV 전압이 된다.

③ 이것을 2.5V 풀 스케일 A-D 컨버터 입력까지 증폭

④ 2.5V÷0.082V로 약 30.5배

⑤ AD8226의 게인 설정 저항은 49.4Ω÷(게인-1)로 계산

⑥ ‌1.6kΩ에서 31.8배, 1.7kΩ에서 약 30배가 되므로 1.6kΩ의 고정 저항에 100Ω의 조정용 볼륨 부가

(1) A-D 컨버터

MCP3204는 4채널 입력의 12비트 A-D 컨버터이다. 이 중 1채널만 사용했다. 기준 전압원은 외장이며 2.5V 출력의 MCP1525를 접속했다.


5. 조정 방법

조정 방법은 그림 11과 같다. Arduino와의 접속이 끝나고 프로그램을 기동해 액정 표시를 보면서 실시한다.


▲ 그림 11. 측정 전에 아날로그 회로를 조정한다


① 20mA 정전류값 설정

② 시험하는 릴레이 접점(a)를 단락하여 제로 조정

③ 저항을 사용하여 게인 조정


AVR 마이컴 본래의 I/O 동작 속도를 나오게 하려면


Arduino의 출력 신호를 제어할 때에는 핀 번호를 지정한 dititalWrite( )를 사용한다. 그러나 이 함수 처리 속도가 느려 “H” 펄스를 꺼내 내리기만 해도 4㎲ 정도 걸려 버린다. 

그러므로 다음과 같은 라이브러리를 사용한다. 본래의 비트 I/O 속도가 나온다.

#include<compat/deprecated.h> 혹은 “wiring_private.h”

sbi(PORTB, PORTB5) ; //고속 펄스 출력

cbi(PORTB, PORTB5) ;

이와 같은 기술에서 어셈블러인

_ _asm_ _(″sbi 0x05, 5″) ;

_ _asm_ _(″cbi 0x05, 5″) ;

로 동일한 코드(최고속)를 나오게 할 수 있다. 이렇게 하면 125ns의 펄스폭(2클록분)이 된다.


소프트웨어


1. Arduino에서 제어

시험하는 릴레이 접점을 여러 차례 ON/OFF하여 횟수를 보고 접점의 접촉 저항을 측정한다. 그리고 그 결과를 내장 EEPROM에 기록하는 처리를 반복한다. 상세한 내용은 소스 파일을 따라서 한다. 여기서는 처리의 개요를 설명한다.

(1) 타이머 제어

라이브러리 ‘MsTimer2.h’를 사용하여 1ms마다 인터럽트 처리한다. 릴레이 3개의 ON/OFF 전환이나 스위치 입력 시간 관리를 실행한다.

(2) 액정 표시

라이브러리 ‘LiquidCrystal.h’를 사용하여 액정 표시한다. 문자 수나 수식을 지정할 수 없는 lcd.print( )가 아니라 C언어 함수인 sprintf( )를 사용하여 수치를 문자열로 변환한다.

(3) EEPROM 기록

라이브러리 ‘EEPROM.h’를 사용한다. 릴레이 ON/OFF 1만 회마다 측정한 접촉 저항값을 EEPROM에 기록한다. 1K바이트 용량이므로 2바이트의 mΩ 값을 최대 500회분, 즉 500만 회 분의 측정 결과를 저장한다.

(4) 시리얼 출력

데이터 송출 스위치(SW1)를 누르면 EEPROM에 저장된 측정값을 모아 시리얼 출력한다. 또한, 릴레이 ON/OFF 실행 시에는 200회마다 접촉 저항 측정 타이밍을 설정해 두고, 이 때 측정한 값을 ON/OFF 횟수와 함께 시리얼 출력한다(리스트 1).


▲ 리스트 1. 이 기기에서

구한 접촉 저항값 (릴레이

ON/OFF 실행 시 200회마다

접촉 저항 측정 타이밍을

설정해 두고 계측한 값)


(5) A-D 컨버터 입력 처리

A-D 컨버터 제어 포트는 digitalWrite( )와 digitalRead( )에서 처리하며, 특히 고속화(SBI, CBI 명령을 이용)해서는 안 된다. 수치 안정화를 위해 64회 평균 처리한다.

(6) 릴레이 제어

접촉 저항 측정 측에 대한 릴레이 전환과 전원 접속 측에 대한 전환, 시험 릴레이 접점의 ON/OFF 실행은 독립된 처리로 기술한다. ON 명령 혹은 OFF 명령, 접촉 저항 측정 시작 플래그를 올리면 릴레이 전환 처리가 순서대로 실행된다.

(7) 조작 스위치 입력 처리

데이터 송출 스위치(SW1)는 채터링을 제거하고 ON 에지를 보는 것뿐이지만, 측정 시작 스위치(SW2)는 길게 누름(2초 간)을 판단한다. 길게 누르면 릴레이의 ON/OFF 횟수를 제로로 클리어하고 스타트된다.

(8) 측정 실행

일련의 처리를 기술한 루틴을 함수표로 나열하고, 그것을 순차 실행하는 방식으로 측정한다. 리스트 2와 같이 17개의 처리로 나뉘어 있다.


▲ 리스트 2. 저항값 측정 프로그램 (일련의 처리는 기술한 루틴을

함수표로 나열하고, 그것을 순차 실행한다)


2. 릴레이 제어

그림 12와 같은 타이밍에서 릴레이 ON/OFF, A-D 컨버터에서의 접촉 저항을 측정한다. 부하 개폐는 매시 대략 2만 회이며, 1회당 주기가 180ms이다. 이 때, 전원 주파수와 동기하지 않도록 난수를 이용하여(+0ms~+3ms) ON/OFF 시간을 조금씩 변동시킨다. 100만 회 개폐 시험에 2일 이상 필요하다.


▲ 그림 12. 접촉 저항 측정 타이밍


(1) 접촉 저항 측정 시

① 릴레이 (A) (B) (C) 모두 OFF. 릴레이 (C)의 B 접점에서 4단자법에 의한 측정 회로에 연결된다.

② 릴레이 (A) (시험 접점) ON. 접점에 20mA가 흐른다.

③ A-D 변환 시작, 접촉 저항 측정

④ 변환 종료로 릴레이 (A) OFF

(2) 접점 단속 개폐 시

① 릴레이 (A) (B) (C) 모두 OFF

② 릴레이 (C) (신호 변환 릴레이) ON. 4단자 측정 회로가 분리되며, 부하가 되는 파워 릴레이에 연결된다.

③ 릴레이 (B) (전원 접속 릴레이) ON. 부하의 파워 릴레이에 전원이 연결된다.

④ 릴레이 (A)를 ON/OFF하여 시험하는 접점의 개폐를 반복한다. 부하의 파워 릴레이가 ON/OFF된다.

⑤ 200회 경과하면 릴레이 (B), 릴레이 (C) 순으로 OFF하여 접촉 저항 측정 동작을 실행한다.

⑥ 1만 회 경과하면 측정한 접촉 저항값을 EEPROM에 기록한다.

⑦ EEPROM 용량 한도까지 기록하면 종료한다.

⑧ SW2 조작으로 계측 실행 일시 정지 및 재개


3. 안정적인 측정값을 얻으려면…

시운전을 반복하다 보니 다음과 같은 사실을 알게 되었다.

• ON/OFF 반복 직후, 접촉 저항값이 커진다.

• 잠시 방전시켜 두면 접촉 저항값이 낮아져 안정된다.

•‌ 부하가 되는 파워 릴레이를 떼어내면 이 현상은 일어나지 않는다.

•‌ 부하 개폐에 의한 스파크 등 접점부의 발열이 영향을 주는 것은 아닌지 추측되며, 진짜 원인은 확실하지 않다.

그래서 1만 회마다 접촉 저항을 기록하는 것에 다음과 같은 처리를 추가했다.

① 1만 회째 접촉 저항 측정

② 측정 후 60초 시간 대기

③ 접촉 저항을 재측정하여 지난 번 값과 비교

④ 값이 작아지지 않으면 다시 10초 대기

⑤ ③과 ④ 반복

⑥ 안정되면 EEPROM에 기록

이렇게 해서 안정된 값을 얻었다. 시간 경과와 함께 측정값이 변화하는 모습을 리스트 3에 나타낸다. 릴레이 구동 시간과 측정 횟수는 리스트 4와 같이 설정했다. 적시에 변경하도록 하자.


▲ 리스트 3. 1만 회마다 접촉 저항 기록 시 안정적인 값을 구하는 연구를 실시하여 얻은 데이터


▲ 리스트 4. 릴레이 구동 시간과 측정 횟수 설정


下間 憲行


本 記事는 日本 CQ出版社가 發行하는 「トランジスタ技術」誌와의 著作權 協定에 依據하여 提供받은 資料입니다.

목록으로

게재월 | 2014 - 05 조회 151252 추천 0

기사 미리보기