그동안 미추적으로 쌓여 있던 인수인계 문서를 정리해 올린다. 260903 Door 인터락 현장검증 가이드 / 파워캘 3000W 오적용 환산 260907 Arc 출사 파라미터 시각화 / LaserFrequency 단위계통 / NRE 위험구간 점검 / 레시피화면 사용설명서 260915 레시피화면 작업매뉴얼 260916 PTOP 프로그램 사용설명서 / 자동운전 전환 사전점검 현장용 작업 중 임시본(_backup)은 제외했다.
13 KiB
파워캘 CSV 3000W 오적용 및 레시피 Power 환산 (2026-09-03)
목적 : 2000W 발진기에 3000W 기준 파워캘 CSV가 적용되어 있어 레시피 지령값의 2/3만 실제 출사되던 건의 원인·근거·환산값을 남긴다.
- 대상 설비 : PtoP 각형화 단동 용접기 (유니셀)
- 관련 문서 :
Doc/인수인계/2026_08_28_레이저발진기교체_및_진행현황.md§2.4- 파라미터 원본 :
docs/파라미터PTOP_260903.xlsx시트260903
표기 규칙 (기존 인수인계 문서와 동일)
| 표기 | 의미 |
|---|---|
| 🟩 소스확인 | PC 소스/설정 파일에서 직접 대조해 확인한 사실 |
| 🟦 현장기록 | 현장 로그·시험 기록에 남아 있는 값 |
| 🟨 미확보 | 아직 확인되지 않음. 이어받는 사람이 채워야 할 항목 |
1. 한 줄 요약
발진기는 2000W/2000W (Core/Ring, 싱글모드) 인데 파워캘 CSV가 만점 3000W 짜리로 물려 있어, 레시피에 적힌 W의 2/3만 실제로 출사되고 있었다. CSV를 2000W 기준으로 재작성했으므로 레시피의 Power #1 / #2 를 × 2/3 으로 환산해야 종전과 같은 실출력이 유지된다.
레시피 1500W → 지령 50% → DA 5.0V → 2000W × 50% = 1000W 출사
2. 원인 🟩
2.1 레시피 W 는 발진기로 그대로 가지 않는다
SeqUploadWeldingList.cs:639-671 — 자동 용접 시 파워를 싣는 경로.
레시피 LaserPower1/2 (W)
→ CalibrateWattToPercent(W) ← 파워캘 CSV 조회
→ percentLaser1/2 (0~100)
→ WriteDA(DA1/DA2, percent) ← ×40.95 → 12bit DAC → 0~10V
→ 발진기 아날로그 입력 = 자기 정격의 그 %
CSV의 만점이 곧 "설비가 믿고 있는 발진기 정격" 이다.
MaxCenterPower / MaxRingPower 도 레이저 Config 가 아니라 CSV 마지막 행에서 읽는다
(LaserPowerCalParam.cs:70-71). 발진기를 바꿔도 CSV 를 안 바꾸면 소프트웨어는 옛 정격으로 계산한다.
2.2 실제로 참조되는 열
현장은 로그상 Normal Models:: 분기(TruFiberType 미지정)를 탄다. 이 분기의 CalibrateWattToPercent 가
보는 열은 두 개뿐이다.
| 열 | 이름 | 용도 |
|---|---|---|
| 0 | Index (%) | 반환값 — 그대로 WriteDA 지령 |
| 1 | DesiredPower | 이 분기에선 미사용 |
| 2 | CalibratedPower | 조회 키 — 레시피 W 를 여기서 찾음 |
| 3 | volt | 이 분기에선 미사용 |
TruFiberType을TruFiberP/CalPercentToMeasuredVoltage로 바꾸면 3열(전압)을 쓰는 다른 분기로 넘어간다. CSV 를 새로 만들 때는 어느 분기를 타는지부터 확인할 것.
3. 근거
3.1 로그 실측 🟦
Original Power → Calibrated Percent 가 전부 정확히 W ÷ 3000 × 100 이다.
| 로그 | 지령 W | Calibrated % | 검산 |
|---|---|---|---|
| Aurora_20260825.log | 150 | 5.000 | 150/3000 |
| Aurora_20260826.log | 500 | 16.667 | 500/3000 |
| Aurora_20260826.log | 800 | 26.667 | 800/3000 |
| Aurora_20260826.log | 600 | 20.000 | 600/3000 |
| Aurora_20260826.log | 1100 | 36.667 | 1100/3000 |
Center · Ring 양쪽 모두 3000 으로 나뉘었다.
3.2 CSV 대조 🟩
| 파일 | 관계 | 성격 |
|---|---|---|
docs/3000W_CenterPower.csv · 3000W_RingPower.csv (구) |
파워 = 30 × Index | 선형, 보정 없음 (CalibratedPower = DesiredPower) |
docs/2000W_CenterPower.csv · 2000W_RingPower.csv (신) |
파워 = 20 × Index | 선형, 보정 없음 |
양쪽 다 선형이므로 환산계수 2000/3000 = 2/3 는 근사가 아니라 정확값이다.
volt 열이 Center/Ring 미세하게 다르지만(50% 에서 5.0 vs 4.8) Normal Models 분기는 이 열을 쓰지 않는다.
3.3 ⭐ 교차검증 — 「출력을 올려야 했다」의 정체 🟦
기존 인수인계 문서 §2.4 에 발진기 교체 후 기존 출력으로는 접합이 되지 않아 출력을 올렸다는 기록이 있다. 이번 건으로 계산해 보면 실제 출사 파워는 거의 그대로였다.
| 12_1page (CC Anode) | 레시피 값 | 당시 CSV | 실제 출사 | 결과 |
|---|---|---|---|---|
| 교체 전 (3000W 발진기) | 450 | 3000 (정상) | 450W | 접합 O |
| 교체 직후 | 450 | 3000 (오적용) | 300W | 접합 X |
| 탐색 | 500 / 550 | 3000 (오적용) | 333 / 367W | 접합 X |
| 최종 적용 | 650 | 3000 (오적용) | 433W | 접합 O |
즉 접합에 필요한 실출력은 계속 430~450W 였고, 레시피 숫자를 450 → 650 으로 올린 것은 공정상 필요가 아니라 CSV 오적용을 사람이 손으로 보정한 것이었다.
× 2/3 환산으로 650 → 433 이 되는데, 이는 교체 전 정상값 450 과 사실상 같은 실출력이다. (싱글모드 전환으로 파워밀도가 높아져 약간 낮은 값에서 접합되는 것도 방향이 맞다.)
12_2page · 12_3page 는 Ramping 변경(50%→70%)과 싱글모드 효과가 섞여 있어 이만큼 깔끔하게 떨어지지 않는다.
4. 환산
4.1 규칙
새 레시피 W = 기존 레시피 W × 2/3
4.2 환산 대상 / 제외 🟩
| 항목 | 환산 | 이유 |
|---|---|---|
| Power #1 (Core, W) | × 2/3 | 절대 W → 지령 % 로 변환되는 값 |
| Power #2 (Ring, W) | × 2/3 | Ring 표도 만점 3000 선형이었음 |
| Ramping Start/End Power | 그대로 | % 단위. percentLaser1 × RampingStartPower / 100 이라 자동 추종 (SeqUploadWeldingList.cs:1319-1323) |
| Laser Duty | 그대로 | % |
| Draw/Jump speed, 각종 Delay | 그대로 | 파워 무관 |
| Frequency / Pulse Duration | 그대로 | 파워 무관 |
| Wobbel · Zigzag | 그대로 | 파워 무관 |
| Center/Ring 비율 | 자동 | 코드가 round(100×P1/(P1+P2)) 로 매번 계산 |
| 레이저 프로그램 워드 IW03/IW04 | 자동 | Power #1/#2 에서 파생 (SeqWaitWeldOrChangePage.cs:205-223) |
4.3 환산표 — 파라미터PTOP_260903.xlsx 시트 260903 기준 🟦
| 레시피 | No | Page | 항목 | 기존 (W) | 지령 % | 변경 (W) |
|---|---|---|---|---|---|---|
| cc welding | 12 | 1 (직렬 음) | Power #1 | 650 | 21.67 | 433 |
| Power #2 | 1050 | 35.00 | 700 | |||
| 2 (sensing) | Power #1 | 550 | 18.33 | 367 | ||
| Power #2 | 1050 | 35.00 | 700 | |||
| 3 (직렬 양) | Power #1 | 600 | 20.00 | 400 | ||
| Power #2 | 1200 | 40.00 | 800 | |||
| U-Frame_pre | 21 | 1~6 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 | |||
| U-Frame_Back_pre | 22 | 1~6 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 | |||
| U-Frame_Main | 23 | 1~6 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 | |||
| U-Frame_Back_Main | 24 | 1~6 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 | |||
| Top_Frame | 31 | 1~2 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 | |||
| Top_Frame | 32 | 1~2 | Power #1 | 700 | 23.33 | 467 |
| Power #2 | 900 | 30.00 | 600 |
고유값 7개 — 550→367, 600→400, 650→433, 700→467, 900→600, 1050→700, 1200→800
4.4 검산
지령 % 불변 — 환산 목적이 "기존에 실제로 나가던 파워 재현"이므로 지령 % 와 DA 전압은 변하지 않아야 한다.
기존 : 700W ÷ 30 = 23.33% → DA 2.33V → 2000W × 23.33% = 467W
신규 : 467W ÷ 20 = 23.35% → DA 2.33V → 2000W × 23.35% = 467W ✅
Center/Ring 비율 유지 — 반올림 후에도 전부 동일하다.
| 기존 | 신규 | |
|---|---|---|
| cc 1page (650/1050) | 38 | 38 (433/700) |
| cc 2page (550/1050) | 34 | 34 (367/700) |
| cc 3page (600/1200) | 33 | 33 (400/800) |
| U-Frame · Top (700/900) | 44 | 44 (467/600) |
정수 반올림 오차는 최대 0.08 % (433 vs 433.33) 로 무시 가능하다.
5. ⚠ 주의
5.1 환산 전에 신 CSV 만 적용된 상태는 위험하다 🟩
| 기존 레시피 값 | 신 CSV 에서의 결과 |
|---|---|
| 2000 이하 | 의도의 1.5배 과출력 |
| 2000 초과 | CalibrateWattToPercent 가 구간을 못 찾아 0 반환 → 0V, 무출력 |
같은 레시피 안에서 과출력 라인과 무출력 라인이 섞인다. 환산은 한 번에 끝낼 것. (환산 후에는 모든 값이 2000 이하가 되어 이 함정은 사라진다.)
5.2 지령 상한 클램프가 없다 🟩
percentLaser1/2 는 WriteDA 로 가기 전 상한 검사를 받지 않는다 (SeqUploadWeldingList.cs:665-671).
램핑 구간만 <= 100 ? … : 100 으로 막혀 있다.
따라서 열 구성이 어긋난 CSV(예: 0열에 Index % 대신 W 가 들어간 파일)를 물리면
WriteDA(600) → 600 × 40.95 = 24570 → DAC 풀스케일 부근 → 정격 전출력이 나간다.
CSV 를 교체할 때는 0열이 0~100 인지 반드시 확인할 것.
5.3 환산은 W 를 복원할 뿐, 용접 결과를 복원하지 않는다 🟦
듀얼모드(3000W/3000W) → 싱글모드(2000W/2000W) 전환이라 빔 품질(BPP/M²)이 달라졌다. 같은 W 라도 집광 스팟이 작아 파워밀도(W/mm²)가 훨씬 높다.
| 환산으로 해결 | 남는 것 | |
|---|---|---|
| 실제 출사 W | ✅ 종전과 동일 복원 | — |
| 용입 깊이 | ❌ | 싱글모드라 더 깊음 |
| 비드 폭 | ❌ | 싱글모드라 더 좁음 |
현장 기록에도 싱글모드는 "깊게 쏨 / 얇게 나옴" 으로 적혀 있다. 환산값은 재튜닝의 출발점이지 최종값이 아니다. 실물 비드 기준 재검증이 필요하다.
6. 추적성 — 어떤 CSV 가 물렸는지 확인하는 방법 🟩
소프트웨어는 적용된 CSV 의 경로도 값도 로그에 남기지 않는다. 남는 것은 아래뿐이다.
| 방법 | 얻는 것 |
|---|---|
_config_setting/LaserPowerCalParam.json |
현재 물린 Center/Ring CSV 경로 (이력 없음, 덮어쓰기) |
로그 AURORA_SYS_SETTING_CHANGED :: Param[LaserPowerCalParam] |
설정을 바꾼 시점 (경로는 안 나옴) |
로그 Original Power1 : X … Calibrated Percent1 : Y |
X ÷ Y × 100 = 그 시점 CSV 만점 ← 가장 확실한 역산 수단 |
| CSV 파일 수정일시 | 경로 그대로 두고 내용만 고친 경우의 유일한 단서 |
출사 시마다
Initialize()가 CSV 를 다시 읽으므로(UCScannerLaserControlViewModel.cs:332,:422,SeqUploadWeldingList.cs:154), 앱 재기동 없이 파일 내용만 바꿔도 즉시 반영된다.
이력 확인 결과 🟦
| 로그 | Param[LaserPowerCalParam] 변경 |
|---|---|
| Aurora_20260825.log | 0 건 |
| Aurora_20260826.log | 0 건 |
| Aurora_20260902.log | 1 건 — 11:44:32 From[USER_via_UI] |
2026-09-02 11:44:32 이 CSV 경로 교체 시점이고, 이어진 13:45~15:03 의 Laser On 58 회가
2000W 재캘리브레이션 작업이다.
7. 이어받는 사람에게
- 🟨 발진기 교체 시에는 CSV 재작성과 레시피 W 환산을 반드시 한 세트로 처리할 것. 둘 중 하나만 하면 이번과 같이 조용히 1.5배 또는 2/3 로 어긋난다.
- 🟨 파워 이상 신고가 오면 §6 의
Original Power1 / Calibrated Percent1비로 CSV 만점부터 역산할 것. - 🟨 §5.3 의 싱글모드 재검증은 미완이다. 환산 적용 후 비드 단면 확인 필요.
- 🟨 CSV 경로·값을 로그에 남기는 계측을 추가하면 이런 추적이 훨씬 쉬워진다.
출사 시작 로그(
UCScannerLaserControlViewModel.cs:361,:452)에 CSV 경로 + Max 파워 + 산출된powerVolt1/2를 붙이는 것만으로 충분하다. 미적용.
8. 참고 파일 위치
| 구분 | 경로 |
|---|---|
| 파라미터 원본 | docs/파라미터PTOP_260903.xlsx 시트 260903, 환산 이력 시트 260903_2000W환산 |
| 구 파워캘 CSV | docs/3000W_CenterPower.csv · docs/3000W_RingPower.csv |
| 신 파워캘 CSV | docs/2000W_CenterPower.csv · docs/2000W_RingPower.csv |
| 현장 로그 | docs/Aurora_20260825.log · 20260826 · 20260902 |
| 파워캘 설정 클래스 | WeldingComponents/WeldingCommon/Settings/LaserPowerCalParam.cs |
| 자동 용접 파워 적용부 | WeldingComponents/WeldingCommon/Sequences/Main/SeqUploadWeldingList.cs:639-671 |
| 수동 출사 파워 적용부 | WeldingComponents/WeldingCommon/Views/Manual/Scanner/UCScannerLaserControlViewModel.cs:329-345, :419-436 |
| DA 전압 변환 | AuroraDevices/AuroraLaserScanner/ScannerRTC5.cs:342-351 |
| 발진기 교체 경위 | Doc/인수인계/2026_08_28_레이저발진기교체_및_진행현황.md §2.4 |
변경 이력
| 일자 | 작성 | 내용 |
|---|---|---|
| 2026-09-03 | 노도연 | 최초 작성. 3000W CSV 오적용 원인·근거·환산표·주의사항 정리. 기존 인수인계 §2.4 「출력을 올려야 했다」가 CSV 오적용 보정이었음을 교차검증 |