일상에 꼭 필요한 정보, 늘 함께하는 나침반 일상에 꼭 필요한 정보, 늘 함께하는 나침반

SET·RESET 명령이란? 상태를 기억하는 PLC Logic

읽는 시간 약 7분

SET·RESET 명령이란 PLC에서 입력조건이 사라진 뒤에도 BOOL 상태를 유지하고 별도의 조건으로 해제하는 Logic입니다. 상태 기억과 Latch 동작 원리를 알아봅니다.

SET·RESET 명령이란 무엇이며 왜 사용할까?

SET·RESET 명령은 PLC Program에서 특정 조건이 한 번 성립하면 해당 BOOL 또는 Bit의 상태를 기억하고, 이후 입력조건이 사라져도 상태를 유지하도록 만드는 Logic입니다. 일반적인 Output Coil은 앞쪽 조건이 TRUE일 때 ON되고 조건이 FALSE가 되면 다시 OFF됩니다. 반면 SET 명령은 조건이 TRUE가 되는 순간 지정된 Bit를 ON 상태로 만들고 SET 조건이 FALSE로 돌아온 뒤에도 ON 상태를 유지합니다. 이후 별도의 RESET 조건이 성립해야 해당 Bit가 OFF됩니다. 이러한 특성 때문에 SET·RESET은 설비 운전모드, Sequence 상태, Alarm Latch와 작업완료 Flag처럼 특정 Event가 발생한 사실을 기억해야 하는 Logic에서 활용됩니다. 제조사에 따라 SET·RST, SET·RESET, Latch·Unlatch, S·R Coil 등 서로 다른 명칭을 사용할 수 있지만 기본적인 개념은 비슷합니다. 핵심은 현재 Input 상태를 그대로 Output에 전달하는 것이 아니라 이전 Scan에서 만들어진 상태를 다음 Scan에서도 유지하는 Memory Logic이라는 점입니다.

SET 명령은 어떻게 ON 상태를 기억할까?

SET 명령의 조건이 TRUE가 되면 PLC는 대상 Bit를 TRUE 또는 ON 상태로 변경합니다. 이후 다음 Scan에서 SET 조건이 FALSE가 되더라도 일반 Coil과 달리 대상 Bit를 자동으로 OFF시키지 않으므로 이전에 설정된 TRUE 상태가 계속 유지됩니다. 예를 들어 Start_Event가 발생했을 때 Auto_Run Bit를 SET하면 Start Button에서 손을 떼어도 Auto_Run은 ON 상태로 남아 있을 수 있습니다. PLC Program은 이후 Auto_Run을 이용해 필요한 Sequence를 계속 실행합니다. 이러한 동작은 하나의 순간적인 Event를 지속적인 State로 변환하는 데 유용합니다. Rising Edge나 One Shot과 SET을 함께 사용하면 특정 Event가 발생한 순간 State를 기억하는 Logic도 만들 수 있습니다. 다만 SET Bit가 PLC 전원을 껐다 켠 뒤에도 유지되는지는 별개의 문제입니다. 해당 Variable이 Retentive Memory인지, CPU Restart 시 어떤 Initial Value를 사용하는지에 따라 달라질 수 있으므로 SET 기능 자체와 전원 OFF 후 Data Retention을 동일한 개념으로 보면 안 됩니다.

RESET 명령은 저장된 상태를 어떻게 해제할까?

RESET은 SET으로 ON 상태가 유지되고 있는 Bit를 FALSE 또는 OFF 상태로 변경하는 명령입니다. 예를 들어 Motor Fault가 발생했을 때 Fault_Latched를 SET하여 Alarm 상태를 기억하고 작업자가 Fault 원인을 제거한 뒤 Reset Button을 누르면 RESET 명령을 통해 Fault_Latched를 OFF시킬 수 있습니다. 이처럼 SET과 RESET은 서로 다른 조건을 사용하여 하나의 State를 설정하고 해제하는 형태로 많이 사용됩니다. 중요한 점은 같은 Scan에서 SET 조건과 RESET 조건이 동시에 TRUE가 되었을 때 어떤 결과가 남는지를 명확하게 설계해야 한다는 것입니다. PLC 제조사와 사용 Instruction, Program 실행순서에 따라 마지막으로 실행된 명령의 결과가 남는 방식 등이 적용될 수 있으므로 특정 동작을 모든 PLC에 일반화해서는 안 됩니다. Program을 작성할 때는 두 조건이 동시에 성립하지 않도록 Logic을 구성하거나 Reset Priority 또는 Set Priority가 명확한 SR·RS Function Block을 사용하여 우선순도를 의도적으로 정의하는 것이 좋습니다.

SET·RESET과 자기유지 회로는 무엇이 다를까?

SET·RESET과 Self-holding Logic은 모두 입력조건이 사라진 뒤에도 상태를 유지할 수 있지만 구현방식에는 차이가 있습니다. 전통적인 자기유지 Logic에서는 Output Contact를 Start Condition과 병렬로 연결하여 Output이 한 번 ON되면 자신의 Contact를 통해 계속 운전조건을 유지합니다. Stop 조건이 열리면 유지경로가 끊어져 Output이 OFF됩니다. 반면 SET·RESET 방식은 PLC의 Memory State를 직접 설정하고 별도의 RESET 명령으로 해제합니다. SET·RESET은 Sequence Step, Mode Flag와 Alarm Memory처럼 상태를 명확하게 저장해야 하는 Logic에 편리하지만 여러 Program에서 동일한 Bit를 SET하거나 RESET하면 State가 어디에서 변경되었는지 추적하기 어려워질 수 있습니다. 자기유지 Logic은 Start·Stop 관계를 Ladder에서 직관적으로 확인하기 쉬운 장점이 있습니다. 따라서 어떤 방식이 무조건 우수하다기보다 Control 목적과 Program Standard에 따라 선택해야 하며 특히 Motor 운전과 Safety 관련 Logic에서는 단순한 Memory 기능만으로 필요한 안전요건을 충족한다고 판단해서는 안 됩니다.

SET·RESET Logic을 사용할 때 무엇을 주의해야 할까?

SET·RESET을 사용할 때 가장 중요한 원칙은 하나의 State를 어떤 Logic이 설정하고 어떤 Logic이 해제하는지 명확하게 관리하는 것입니다. 동일한 BOOL Variable을 여러 Routine이나 Function에서 SET·RESET하면 Troubleshooting 과정에서 상태변화의 원인을 찾기 어려워집니다. Alarm Latch를 구성할 때는 Fault가 실제로 제거되기 전에 Reset Command만으로 Alarm이 해제되지 않도록 현재 Fault Condition을 함께 확인할 수 있습니다. Sequence State에서는 비정상정지나 Mode 변경 시 어떤 Bit를 Reset해야 하는지도 정의해야 합니다. 또한 Retentive Variable을 사용하면 Power Cycle 이후에도 이전 State가 남을 수 있으므로 설비 재기동 시 자동으로 위험한 동작이 시작되지 않도록 Initial Sequence를 별도로 검토해야 합니다. Emergency Stop과 Guard Interlock처럼 사람의 안전에 직접 관련된 기능은 일반 SET·RESET Logic만으로 구현하는 것이 아니라 요구되는 Safety PLC, Safety Relay와 인증된 Safety Function을 적용해야 합니다. 결국 SET·RESET은 순간적인 조건을 지속적인 PLC State로 저장하고 필요한 조건에서 해제하여 Sequence와 Alarm을 체계적으로 관리하는 기본적인 Memory Logic입니다.

jssj2627

함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.