이 글은 상태 영속성, 200A 아크 용접기 전원 재투입 복구와 저장 시점 설계 시리즈의 2편입니다. 앞 편에 이어 플래시 메모리 저장 시점과 무결성 검증 구조, 전원 재투입 시 계층적 상태 머신의 안전 복구 시퀀스, 맺음말을 설명합니다.
플래시 메모리 저장 시점과 무결성 검증 구조
임베디드 제어기에 내장된 플래시 메모리는 쓰기 및 지우기 수명(Endurance)이 통상 10만 회 수준으로 제한되어 있습니다. 만약 제어 소프트웨어가 용접 파라미터나 누적 통전 시간을 메인 루프나 수십 ms 주기의 타이머 인터럽트에서 주기적으로 플래시에 기록한다면 불과 수십 시간 만에 플래시 메모리 셀이 영구적인 파손을 초래합니다. 따라서 런타임 중에는 SRAM 영역에 섀도 버퍼(Shadow Buffer)를 생성하여 파라미터 갱신을 고속으로 처리하고, 플래시 쓰기 시점을 엄격하게 분리하여 제어해야 합니다.
플래시 기록 시점은 크게 세 가지 사건으로 제한합니다. 첫째는 작업자가 전면 패널의 조그 다이얼이나 버튼을 조작하여 용접 전류 설정을 변경한 후 일정 시간 동안 추가 입력이 없을 때 실행하는 이벤트 기반 저장입니다. 둘째는 아크 용접이 종료되어 출력이 차단되고 대기 상태로 복귀할 때 누적 아크 통전 시간과 적산 전력량을 기록하는 시점입니다. 셋째는 1편의 식 (2)의 홀드업 시간 내에 실행하는 PVD 정전 감지 긴급 인터럽트 루틴입니다.
정전 도중 공급 전압이 급격히 강하하여 쓰기 동작이 중간에 중단되면 메모리 영역에 부분 쓰기(Torn Write)로 인한 데이터 손상이 발생합니다. 이를 방지하기 위해 저장 데이터는 매 레코드마다 헤더, 시퀀스 번호, 페이로드 데이터, 그리고 CRC-32 체크섬을 포함하는 구조로 패킷화합니다. 무결성 검증을 위한 32비트 CRC 다항식 연산은 식 (4)와 같이 정의합니다.
식 (4)에서 M(x)는 저장할 원본 데이터 비트열 다항식이며, G(x)는 표준 CRC-32 생성 다항식입니다. 제어기는 두 개의 플래시 섹터를 번갈아 기록하는 핑퐁(Ping-Pong) 이중화 구조를 적용하여, 새로운 섹터에 쓰기 도중 전원이 차단되더라도 이전 섹터의 온전한 데이터를 유지할 수 있도록 설계합니다.
전원 재투입 시 계층적 상태 머신의 안전 복구 시퀀스
전원이 다시 투입되어 제어기 전압이 정상 범위로 상승하면 MCU는 부팅 초기화 루틴을 시작합니다. 플래시 메모리의 두 섹터를 검사하여 가장 높은 시퀀스 번호를 가진 최신 레코드를 탐색한 후 식 (4)의 CRC-32 체크섬을 재계산하여 무결성을 검증합니다. CRC 검증에 성공하면 저장되어 있던 용접 전류 지령값, 핫 스타트 설정, 아크 포스 설정값을 SRAM의 활성 파라미터 영역으로 복원합니다. 만약 CRC 검증에 실패하여 데이터 오염이 확인되면 제어기는 즉시 사전에 정의된 안전 기본값(Default Safe Settings)으로 파라미터를 복구하고 에러 플래그를 설정합니다.
이때 가장 중요한 제어 원칙은 상태 머신의 안전 복구 천이 규칙입니다. 전원 차단 직전 제어기의 상태가 아크가 점화되어 대전류가 흐르던 용접 중(WELDING) 상태였다 하더라도, 전원 재투입 시 상태 머신이 WELDING 상태로 직접 복귀하는 것은 절대적으로 금지해야 합니다. 전원이 다시 들어오는 순간 토치 노즐이 모재에 닿아 있거나 작업자가 방심한 상태에서 즉시 200A의 아크가 발생하면 치명적인 인명 피해와 화재로 이어지기 때문입니다.
따라서 계층적 상태 머신(HSM) 구조에서는 전원 투입 시 부팅 상태(BOOT)와 하드웨어 자가 진단 상태(SELF_DIAGNOSIS)를 거쳐 반드시 안전 대기 상태(SAFE_IDLE)로만 진입하도록 상태 전이를 고정합니다. 또한 작업자가 토치 스위치를 누른 상태로 전원을 켰을 때 즉각 아크가 점화되는 사고를 방지하기 위해, 토치 스위치 신호가 개방(OFF) 상태로 전환된 것을 먼저 확인한 후에만 기동 준비 상태(READY)로 천이하도록 안전 인터록(Interlock) 시퀀스를 구현합니다.
맺음말
200A급 인버터 아크 용접기 제어 소프트웨어에서 상태 영속성은 사용자 편의성을 높이는 동시에 작업 현장의 안전을 지키는 필수적인 제어 기술입니다. 본문에서 살펴본 바와 같이 정전 감지 PVD 전압과 MCU 리셋 전압 사이의 전위차를 기반으로 1편의 식 (3)을 통해 최소 3509μF 이상의 제어단 홀드업 커패시터를 확보하는 정량적 하드웨어 설계가 선행되어야 합니다.
소프트웨어 구현 측면에서는 플래시 메모리의 수명 단축을 방지하기 위해 섀도 RAM 버퍼링 구조를 도입하고 이벤트 및 정전 시점으로 저장을 제한해야 합니다. 아울러 불완전 쓰기로 인한 데이터 손상을 방어하기 위해 식 (4)의 CRC-32 체크섬 검증과 핑퐁 섹터 구조를 결합한 무결성 검증 체계를 확립해야 합니다.
실무 제어 엔지니어는 전원 재투입 시 파라미터 복원과 상태 복원을 엄격히 구분하여 설계해야 합니다. 설정값은 직전의 유효한 값으로 복원하되, 제어 상태는 반드시 SAFE_IDLE 대기 상태로 강제 천이시키고 스위치 개방 인터록을 확인하는 안전 복구 시퀀스를 준수해야만 산업 현장의 신뢰성과 안전성을 완벽하게 확보할 수 있습니다.
이 글은 앞선 내용을 몰라도 읽을 수 있게 썼습니다. 배경이 궁금하다면 무충격 절환, 150kW 전기차 구동 수동 자동 전환과 적분기 초기값 정합을 함께 보면 도움이 됩니다: https://www.infoshirimp.co.kr/?p=245
이것으로 시리즈를 마칩니다. 앞선 편들과 함께 읽으면 전체 흐름을 파악할 수 있습니다.