본문 바로가기

WinForms2

C# 설비 알람 로그 CSV 만들기: 필드 이스케이프와 엑셀 수식 위험 점검 설비 알람 로그를 CSV로 저장해 엑셀에서 열었는데 열이 밀리거나 한 셀에 여러 줄이 들어간 적 있으신가요? 알람 메시지에 쉼표, 큰따옴표, 줄바꿈이 있으면 단순히 문자열을 콤마로 연결한 파일은 쉽게 깨집니다. 오늘은 C#에서 설비 이벤트 로그 한 행을 안전하게 만드는 기본 구조를 살펴봅니다. CSV 문법에 맞춘 따옴표 처리는 스프레드시트 수식 실행 위험을 해결하지 않으므로 두 문제를 따로 다루겠습니다. 먼저 로그 필드를 고정하세요현장 추적에 필요한 최소 필드를 먼저 정합니다. 예를 들어 이벤트 발생 시각(UTC), 장치 ID, 알람 코드, 메시지, 상태 값과 단위를 기록할 수 있습니다. 모든 행에 같은 순서와 필드 수를 유지하고, 헤더를 함께 저장하세요. 비밀번호, 인증 토큰, 불필요한 개인정보는 로그.. 2026. 10. 18.
C# WinForms 설비 통신 중 화면 멈춤 방지: async·await와 취소 처리 설비 제어 프로그램에서 PLC나 장치 응답을 기다리는 동안 버튼과 화면이 멈춰 보인다면, 통신 작업이 UI 스레드를 점유하는지 먼저 확인해 보세요. 단순히 작업을 백그라운드로 옮기는 것보다, 통신 라이브러리가 비동기 API를 제공하는지와 취소·시간 초과를 지원하는지를 함께 살피는 편이 안전합니다.이 예제는 WinForms 화면에서 비동기 흐름을 익히기 위한 시뮬레이션입니다. 실제 PLC 주소, 출력 신호, 모션 명령은 포함하지 않습니다. 현장 적용 전에는 장치 매뉴얼, 통신 시간 초과, 인터록과 안전 절차를 별도로 검증해야 합니다.왜 화면이 멈출까요?WinForms는 기본적으로 UI 스레드에서 이벤트와 화면 갱신을 처리합니다. 버튼 이벤트 안에서 Thread.Sleep, 오래 걸리는 동기 통신, Task.. 2026. 10. 17.