PLC 프로그램에서 상승엣지와 하강엣지 검출을 사용하는 이유
PLC 프로그램에서 순간을 포착하는 기술
자동화 현장에서 일해본 적이 있거나 PLC 프로그래밍을 접해보았다면 엣지 검출이라는 단어를 한 번쯤 들어보았을 것입니다. 프로그래밍을 처음 배울 때 가장 헷갈리면서도 막상 현장에 나가서는 가장 많이 쓰이는 개념 중 하나가 바로 상승엣지와 하강엣지입니다. 버튼을 누르고 있는 동안 계속 신호가 들어오는 것과, 누르는 그 찰나의 순간만 인식하는 것은 제어의 질을 완전히 바꾸어 놓습니다.
우리가 일상에서 사용하는 스마트폰 화면을 켤 때를 생각해보면 이해가 쉽습니다. 전원 버튼을 꾹 누르고 있는다고 화면이 계속 켜졌다 꺼졌다를 반복하지는 않습니다. 버튼을 누르는 바로 그 순간의 변화를 인식해 화면을 켜는 것입니다. PLC에서도 이와 똑같은 논리가 필요하며, 이를 구현하는 가장 핵심적인 도구가 바로 엣지 검출 명령어입니다.
엣지 검출이 왜 자동화 제어의 핵심인가
PLC는 기본적으로 아주 빠른 속도로 프로그램을 처음부터 끝까지 반복해서 실행합니다. 이를 스캔 타임이라고 부릅니다. 센서가 물체를 감지하거나 작업자가 누른 버튼의 상태를 이 스캔 과정마다 확인하게 되는데, 이때 신호가 켜져 있는 상태가 여러 스캔 주기 동안 유지됩니다. 만약 이 신호의 지속 시간을 고려하지 않고 프로그램을 작성하면 원하지 않는 오작동이 발생할 수 있습니다.
예를 들어 컨베이어 벨트 위에 놓인 상자의 개수를 세는 카운터 프로그램을 만든다고 가정해보겠습니다. 센서 앞에 상자가 지나갈 때 센서가 켜지는데, 센서의 감지 영역이 넓거나 상자가 천천히 지나가면 PLC는 이 하나의 상자를 수십 번 감지한 것으로 착각할 수 있습니다. 상자는 하나인데 카운터 숫자는 순식간에 올라가 버리는 현상이 발생합니다. 이때 필요한 것이 바로 신호가 들어오는 딱 한 순간만 포착하는 기술입니다.
상승엣지와 하강엣지의 정의와 작동 원리
엣지라는 영어 단어는 모서리나 경계면을 뜻합니다. 신호의 세계에서 엣지는 전기가 켜지거나 꺼지는 변화의 순간을 의미합니다. 이 변화의 방향에 따라 두 가지 종류로 나뉘며 각각의 특성이 뚜렷합니다.
신호가 켜지는 찰나를 잡는 상승엣지
상승엣지는 신호가 꺼져 있는 상태인 0에서 켜져 있는 상태인 1로 바뀌는 바로 그 찰나를 검출합니다. 영어로는 Rising Edge라고 부르며, 국내 현장에서는 줄여서 PLc 프로그램에 따라 P접점이나 Up 접점 등으로 부르기도 합니다. 버튼을 손가락으로 누르는 그 순간, 혹은 센서가 무언가를 막 감지하기 시작한 바로 그 첫 번째 스캔 주기에서만 딱 한 번 신호를 내보냅니다.
이 기능은 주로 어떤 동작을 시작하게 만드는 기동 조건으로 자주 쓰입니다. 컨베이어를 시작하는 버튼을 누를 때, 모터의 회전을 시작할 때, 혹은 새로운 공정이 시작되어야 할 때 상승엣지를 사용하면 버튼을 계속 누르고 있더라도 프로그램은 단 한 번만 명령을 실행하게 됩니다.
신호가 꺼지는 순간을 놓치지 않는 하강엣지
하강엣지는 반대로 신호가 켜져 있던 1의 상태에서 꺼지는 0의 상태로 전환되는 순간을 잡아냅니다. Falling Edge라고 부르며, 현장에서는 N접점이나 Down 접점 등으로 표현됩니다. 버튼에서 손가락을 떼는 순간, 혹은 센서가 물체를 통과하여 더 이상 감지되지 않는 바로 그 순간에 작동합니다.
이 기능은 주로 어떤 동작이 끝났음을 확인하고 다음 단계를 진행할 때 유용합니다. 예를 들어 프레스 기계가 내려갔다가 다시 올라오는 공정에서, 실린더가 완전히 후진하여 센서에서 벗어나는 하강엣지를 감지해야 다음 상자가 들어올 수 있도록 허용하는 안전한 로직을 짤 수 있습니다.
현장에서 마주하는 대표적인 활용 사례
실제 제조 현장이나 빌딩 자동화 설비에서 엣지 검출은 거의 모든 프로그램의 뼈대를 이룹니다. 몇 가지 구체적인 상황을 통해 어떻게 쓰이는지 살펴보겠습니다.
- 설비의 수동 조작과 자동 조작을 전환하는 모드 선택 스위치
- 한 번 누르면 켜지고 다시 누르면 꺼지는 토글 스위치 회로
- 제품 생산 수량을 정확하게 누적하는 카운터 연산
- 경보가 발생했을 때 최초의 원인 발생 시점을 기록하는 트러블슈팅 로직
- 실린더나 모터의 동작 완료 후 타이머를 새롭게 시작하는 조건
특히 토글 스위치를 구현할 때 엣지 검출이 없으면 매우 난감해집니다. 접점 버튼을 한 번 눌렀을 때 출력을 반전시키고 싶은데, 일반 접점을 쓰면 버튼을 누르고 있는 동안 출력이 매 스캔마다 반전되어 출력이 파도처럼 떨리는 현상이 발생합니다. 이때 상승엣지를 사용하여 버튼을 누르는 최초의 순간에만 변수의 값을 반전시키면 완벽한 토글 동작을 구현할 수 있습니다.
초보자가 자주 하는 오해와 실수 바로잡기
PLC를 처음 공부하는 이들이 가장 많이 하는 실수는 엣지 접점을 일반 접점처럼 연속적인 신호 제어에 그대로 사용하는 것입니다. 엣지 접점은 단 한 스캔 주기 동안만 켜졌다가 꺼지기 때문에, 이 접점 바로 뒤에 출력을 직접 연결하면 출력이 눈에 보이지 않을 정도로 깜빡이거나 아예 동작하지 않는 것처럼 보일 수 있습니다.
예를 들어 램프를 켜는 출력 코일에 곧바로 상승엣지 접점을 연결해 두면, 버튼을 누르는 순간 램프가 아주 짧게 번쩍이고는 바로 꺼져 버립니다. 작업자는 램프가 켜지기를 기대했겠지만 실제로는 전기가 통했다가 밀리초 단위로 꺼져버리기 때문에 켜진 것인지 알 수 없습니다. 따라서 엣지 검출은 주로 내부 릴레이를 세트하거나 리셋하는 명령어와 조합하거나, 연산 블록의 트리거 조건으로 사용하는 것이 올바른 방법입니다.
스마트하고 효율적인 프로그래밍을 위한 조언
프로그램의 용량을 줄이고 가독성을 높이기 위해서는 엣지 검출을 꼭 필요한 곳에만 전략적으로 사용하는 지혜가 필요합니다. 모든 입력마다 엣지 처리를 해두면 프로그램이 복잡해지고 나중에 유지보수할 때 어떤 신호가 어떤 목적으로 변환되었는지 파악하기 어려워집니다.
효율적인 시스템 구축을 위한 몇 가지 실용적인 팁은 다음과 같습니다.
- 자주 사용되는 물리적 입력 단자는 초입에서 미리 한 번만 엣지 처리를 해두고 내부 메모리에 저장하여 재사용합니다.
- 변수 명명 규칙을 철저히 지켜 일반 접점과 엣지 접점의 구분을 이름만 보고도 알 수 있게 합니다.
- 시뮬레이션 기능을 적극 활용하여 스캔 타임에 따른 동작 차이를 눈으로 직접 확인합니다.
- 통신을 통해 외부 기기와 데이터를 주고받을 때 데이터가 중복으로 전송되는 것을 막기 위해 엣지 검출을 활용합니다.
현장의 엔지니어들은 종종 엣지 검출을 프로그램의 숨은 조력자라고 부릅니다. 눈에는 잘 보이지 않지만 시스템이 오작동 없이 물 흐르듯 자연스럽게 움직이도록 만드는 핵심적인 역할을 수행하기 때문입니다. 기본적인 원리를 정확히 이해하고 현장 경험을 쌓아간다면, 복잡하고 까다로운 제어 요구사항도 엣지 검출을 통해 우아하고 안정적인 코드로 풀어낼 수 있을 것입니다.
takshout




댓글 0
첫 댓글을 남겨보세요.