X-Reach Welder 산업용 로봇 용접 HMI UI 시스템 종합 분석 및 아키텍처 보고서
초록
본 보고서는 .NET Framework 4.8 WPF 기반 X-Reach Welder 산업용 로봇 용접 HMI UI 시스템의 구조, 3D 실시간 키네마틱 시각화 엔진, ROS 통신 연동 프록시, Fronius 용접기 실시간 텔레메트리 알람 체계 및 작업 관리 알고리즘을 종합 분석한다.
X-Reach Welder 산업용 로봇 용접 HMI UI 시스템 종합 분석 및 아키텍처 보고서
작성: Antigravity (Google DeepMind Team)
공동저자: Moojoco
대상 프로젝트:X_Reach_Welder_dotnet4_8(WPF / .NET Framework 4.8)
개정일자: 2026년 8월 21일 (v4 — 계층 아키텍처, 3D 관절 좌표계, 시퀀스, 안전 상태 머신 및 데이터 파이프라인 Mermaid 종합 도식화 보강)
1. 개요 (Executive Summary)
본 보고서는 산업용 로봇 TIG/MIG 자동 용접 셀 관제를 위해 C# WPF(.NET Framework 4.8) 기반으로 구축된 X-Reach Welder HMI(Human-Machine Interface) UI 시스템의 전체 코드베이스 및 아키텍처를 종합 분석한 결과를 담고 있다.
X-Reach Welder UI 프로그램은 산업 현장의 1280×800 해상도 터치 패널 환경에 최적화된 고신뢰성 제어 솔루션으로, HelixToolkit.Wpf 기반의 3D 키네마틱 실시간 시각화, ROS(Robot Operating System) TCP 통신 연동, Fronius 용접기 실시간 텔레메트리 & 엣지 알람 감지, 직관적인 작업(Job) 및 파라미터 제어 UX를 통합 구현하고 있다.
2. 전체 시스템 아키텍처 및 HMI UI 레이아웃 (System Architecture & UI Layout)
X-Reach Welder HMI 시스템은 계층화된 3-Tier 관제 아키텍처를 채택하여 UI 렌더링, 3D 연산, 외부 로봇/용접기 통신 간의 명확한 역할 분리와 높은 응답성을 보장한다.
graph TD
subgraph Layer3["[ Presentation Layer - WPF UI ]"]
style Layer3 fill:#1a2634,stroke:#3b82f6,color:#fff
MW["MainWindow.xaml / .cs<br/>(메인 관제 윈도우 & Dispatcher)"]
subgraph Controls["[ Control Panels ]"]
WelderCtrl["WelderControl.xaml<br/>(용접기 관제)"]
WeldCondCtrl["WeldConditionsControl.xaml<br/>(용접 파라미터)"]
ModelCfgCtrl["ModelConfigurationsControl.xaml<br/>(모재/모델 설정)"]
MotionCfgCtrl["MotionConfigurationsControl.xaml<br/>(모션 파라미터)"]
end
subgraph Dialogs["[ Safety & Touch Dialogs ]"]
EStopDialog["EmergencyStopDialog<br/>(비상정지 UI)"]
PStopDialog["ProtectiveStopDialog<br/>(보호정지 UI)"]
KeypadDlg["KeypadWindow<br/>(가상 터치 키패드)"]
ReviewDlg["StartWeldingReviewDialog<br/>(용접 개시 검토)"]
end
end
subgraph Layer2["[ Core Logic & Proxy Layer ]"]
style Layer2 fill:#111c28,stroke:#10b981,color:#fff
MWC["MainWindowController<br/>(WPF Thread Dispatcher Manager)"]
Vis3D["Job3DVisualizer<br/>(HelixToolkit.Wpf 3D Engine)"]
RosProxy["RosWeldingMotionProxy<br/>(TCP Port 55000 / KeepAlive Monitor)"]
AlarmTracker["FroniusStatusAlarmTracker<br/>(Base64 JSON Alarm Decoder)"]
JobStorage["JobFileStorage<br/>(JSON Job Read/Write)"]
SynCatalog["SynLineProcessCatalog<br/>(Synergic Process Data)"]
end
subgraph Layer1["[ Infrastructure & Hardware Layer ]"]
style Layer1 fill:#0d1520,stroke:#f59e0b,color:#fff
ROS_Bridge["ROS / Robot Controller<br/>(Robot Kinematics Engine)"]
Fronius_HW["Fronius Welding Machine<br/>(Fieldbus Telemetry Stream)"]
FileSystem["File System<br/>(Jobs/*.json, Robot & Workpiece STL)"]
end
%% Layer Connections
MW <--> MWC
MW --> Controls
MW --> Dialogs
MWC --> Vis3D
MWC --> RosProxy
MWC --> AlarmTracker
Controls --> JobStorage
Controls --> SynCatalog
RosProxy <== "TCP Socket (Port 55000)" ==> ROS_Bridge
AlarmTracker <== "Telemetry Snapshot Stream" ==> Fronius_HW
Vis3D <== "Model & Trajectory Loading" ==> FileSystem
JobStorage <== "I/O Stream" ==> FileSystem
메인 HMI 화면 인터페이스 (Main HMI Screen Interface)
그림 1. X-Reach Welder 메인 관제 HMI 화면 목업 (상단 상태바, 좌측 로봇 조그 및 팬던트 제어, 중앙 작업 리스트 및 3D 뷰포트, 하단 동작 제어 패널)
그림 2. X-Reach Welder 실제 HMI 메인 관제 화면 (작업 리스트, 좌표계 제어 및 실시간 상태 표시등)
3. 3D 실시간 키네마틱 시각화 엔진 (Job3DVisualizer)
Job3DVisualizer 모듈은 로봇 관절 이동, 모재(Workpiece) STL 모델, 용접 궤적을 3차원 공간 상에 실시간 렌더링한다.
그림 3. 3D 키네마틱 뷰포트 및 궤적 트레이싱 실시간 화면 (HelixToolkit.Wpf 기반)
graph LR
subgraph World_Frame["[ Base Coordinate Frame ]"]
style World_Frame fill:#1e293b,stroke:#94a3b8,color:#fff
Base["World Origin<br/>(0, 0, 0)"]
end
subgraph Robot_Base_Frame["[ Robot Base Frame ]"]
style Robot_Base_Frame fill:#1e293b,stroke:#38bdf8,color:#fff
RBase["Robot Mount Base<br/>(Rotated Z: 180°)"]
end
subgraph Kinematic_Chain["[ 6-Axis Articulated Kinematic Chain ]"]
style Kinematic_Chain fill:#0f172a,stroke:#34d399,color:#fff
J1["Joint 1<br/>(Base Swivel)"] --> J2["Joint 2<br/>(Lower Arm)"]
J2 --> J3["Joint 3<br/>(Upper Arm)"]
J3 --> J4["Joint 4<br/>(Wrist Roll)"]
J4 --> J5["Joint 5<br/>(Wrist Pitch)"]
J5 --> J6["Joint 6<br/>(Tool Flange)"]
end
subgraph Tool_TCP_Frame["[ Tool Center Point (TCP) ]"]
style Tool_TCP_Frame fill:#1e293b,stroke:#f43f5e,color:#fff
Torch["Torch Offset & Angle<br/>(Welding Arc Center)"]
Trajectory["TCP Trajectory Buffer<br/>(Max 12,000 Points)"]
end
subgraph Workpiece_Frame["[ Workpiece / Metal Frame ]"]
style Workpiece_Frame fill:#1e293b,stroke:#a855f7,color:#fff
MetalSTL["Workpiece STL Mesh<br/>(Build-up / Lug / Support Key)"]
MiniView["X / Z Section Mini Viewports"]
end
Base -->|Robot Base Transform| RBase
RBase -->|Forward Kinematics| J1
J6 -->|Flange Offset| Torch
Torch -->|Real-time Logging| Trajectory
Base -->|Workpiece Mount Transform| MetalSTL
MetalSTL -->|Cross-section Clip| MiniView
4. 로봇 모션 제어 연동 프록시 (RosWeldingMotionProxy)
로봇 제어기와의 통신은 RosWeldingMotionProxy 클래스가 전담하며, 소켓 끊김 방지 및 안전 메커니즘이 강건하게 설계되어 있다.
sequenceDiagram
autonumber
participant HW as ROS / Robot Controller
participant Proxy as RosWeldingMotionProxy (Async Net Thread)
participant Tracker as FroniusStatusAlarmTracker
participant Dispatcher as WPF UI Dispatcher (Main Thread)
participant UI as MainWindow / UI Controls
participant Vis as Job3DVisualizer
HW->>Proxy: TCP Status Packet (Joint Angles, TCP Position, State)
Proxy->>Proxy: Parse Packet & Update Sequence ID
alt Normal Status Update
Proxy->>Dispatcher: InvokeAsync(UpdateUIState)
Dispatcher->>UI: Update Telemetry Labels & Connect Status
Dispatcher->>Vis: UpdateJointAngles(θ1~θ6) & AppendTCP(x,y,z)
Vis-->>UI: Re-render 3D Robot & Trajectory Line
else Emergency Stop / Fault Detected
Proxy->>Tracker: ProcessEncodedSnapshot(Base64 Payload)
Tracker->>Tracker: Decode F108 / F105 Flags (Edge-Triggered)
Proxy->>Dispatcher: Invoke(ShowEmergencyStopDialog)
Dispatcher->>UI: Open EmergencyStopDialog & Play Speech Alarm
UI->>HW: Send Emergency Stop Override Command (Port 55000)
end
5. Fronius 용접기 실시간 텔레메트리 & 알람 감지 (FroniusStatusAlarmTracker)
용접 모듈 관제를 위한 FroniusStatusAlarmTracker는 산업용 용접기 레지스터 상태를 정밀 추적한다.
stateDiagram-v2
[*] --> Disconnected : System Startup
Disconnected --> Connected_Ready : ROS TCP Port 55000 Connected & Telemetry Normal
state Connected_Ready {
[*] --> Idle
Idle --> MotionRunning : Start Button Triggered
MotionRunning --> WeldingActive : Arc On Signal Received
WeldingActive --> MotionRunning : Arc Off Signal Received
MotionRunning --> Idle : Job Path Completed
}
state Alarm_Warning {
Warning_Flag : F105.14 / F109 Warning Active
Wire_Stuck : Wire Stick to Workpiece
}
state Alarm_Error {
Main_Error : F108 Main Error Active
System_Not_Ready : System Not Ready Signal
E_Stop : Emergency Stop Triggered
P_Stop : Protective Stop Triggered
}
Connected_Ready --> Alarm_Warning : Warning Condition Edge Triggered
Alarm_Warning --> Connected_Ready : Warning Cleared
Connected_Ready --> Alarm_Error : Fault Signal / E-Stop Button Pressed
Alarm_Warning --> Alarm_Error : Escalated Error Signal
Alarm_Error --> Disconnected : Communication Loss / Port Reset
Alarm_Error --> Connected_Ready : Reset Signal & Safety Review Passed
6. 작업(Job) 및 용접 조건 파라미터 관리 (Weld Parameters & Condition Control)
시스템은 용접 공정의 재현성을 보장하기 위해 정형화된 JSON 기반 Job 저장 구조 및 SynLine 프로세스 카탈로그를 운영한다.
그림 4. 용접 조건 파라미터 설정 HMI 목업 (용접 속도, 전류/전압, 위빙 파라미터, 프리가스/포스트가스 제어)
그림 5. 용접 제어기 파라미터 상세 설정 및 상태 텔레메트리 화면
그림 6. 모션 및 용접 조건 파라미터 제어반 스냅샷
graph TD
subgraph Storage_Files["[ Persistent Storage ]"]
JobFile["Jobs/Weld-Job-001.json<br/>(Work Paths, Coordinates, Parameters)"]
SynFile["Parameters/SynLineCatalog.json<br/>(Synergic Wire/Gas Parameters)"]
end
subgraph UI_Controls["[ HMI Input & Edit Controls ]"]
JobListUI["JobList ObservableCollection<br/>(DataGrid UI Control)"]
BatchEditDlg["WorkPathInsertDialog /<br/>AutoGeneratePathCountDialog"]
WeldParamUI["WeldConditionsControl<br/>(Current, Voltage, Speed, Weaving)"]
end
subgraph Data_Pipeline["[ Data Pipeline & Storage Manager ]"]
StorageManager["JobFileStorage Class<br/>(JSON Serializer / Deserializer)"]
ParamCalculator["LiveWelderConfigSnapshot<br/>(Parameter Validation & Sync)"]
end
subgraph Vis_Engine["[ 3D Render Pipeline ]"]
PathSegments["Job3DVisualizer Path Engine"]
RapidLine["LinesVisual3D (Rapid Path - Cyan)"]
WeldLine["LinesVisual3D (Weld Path - Yellow)"]
SelectedLine["LinesVisual3D (Selected Path - Green)"]
end
%% Connections
JobFile <== "Load / Save" ==> StorageManager
SynFile --> StorageManager
StorageManager <--> JobListUI
JobListUI <--> BatchEditDlg
JobListUI <--> WeldParamUI
WeldParamUI --> ParamCalculator
JobListUI --> StorageManager
StorageManager --> PathSegments
PathSegments --> RapidLine
PathSegments --> WeldLine
PathSegments --> SelectedLine
7. 결론 및 향후 발전 방향 (Conclusion)
X-Reach Welder HMI UI 프로젝트는 산업용 로봇 용접 관제 분야에서 요구되는 3D 키네마틱 시각화, ROS 로봇 연동, 하드웨어 텔레메트리 추적, 안전 제어 및 터치 UX가 뛰어난 완성도로 결합된 C# WPF 애플리케이션이다.
본 분석 결과를 바탕으로 타 사 로봇 브랜드 확장 및 AI 기반 용접 품질 모니터링 모듈과의 연동성을 용이하게 확보할 수 있으며, 산업용 로봇 자동화 UI 설계의 우수 표준 사례로 평가할 수 있다.
