You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
8.1 KiB
220 lines
8.1 KiB
|
1 month ago
|
# 8. 로그 및 데이터 관리
|
||
|
|
|
||
|
|
[← 메뉴얼 목차로 돌아가기](사용자_메뉴얼.md)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8.1 검사 데이터 로그 (CSV)
|
||
|
|
|
||
|
|
### 기본 정보
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| **저장 위치** | `[프로그램 폴더]\Logs\yyyy-MM-dd.csv` |
|
||
|
|
| **파일 형식** | CSV (UTF-8 인코딩) |
|
||
|
|
| **파일 생성** | 날짜별 자동 생성 (해당 날짜 첫 시험 시) |
|
||
|
|
| **데이터 추가** | 매 시험 완료 시 자동으로 해당 날짜 파일에 1행 추가 |
|
||
|
|
|
||
|
|
### CSV 헤더 및 컬럼
|
||
|
|
|
||
|
|
```
|
||
|
|
IC_SN,PCB_Barcode,Maker,Model,Variant_1,Variant_2,Operator,Production_Date,Line,Lot_No,Jig_No,Channel,Spec_UL,Spec_LL,Leak_Value,Result
|
||
|
|
```
|
||
|
|
|
||
|
|
| 컬럼 | 예시 | 설명 |
|
||
|
|
|------|------|------|
|
||
|
|
| `IC_SN` | `260508A00123B01C` | 제품 고유 시리얼 번호 (PK/FK) |
|
||
|
|
| `PCB_Barcode` | `260508A00123B01C` | PCB 바코드 고유 식별 정보 (UK) |
|
||
|
|
| `Maker` | `Hyundai` | 메이커 정보 |
|
||
|
|
| `Model` | `NE1aW` | 모델 정보 |
|
||
|
|
| `Variant_1` | `PT` | 변형1 정보 |
|
||
|
|
| `Variant_2` | `SENSOR` | 변형2 정보 |
|
||
|
|
| `Operator` | `op001` | 작업자 ID |
|
||
|
|
| `Production_Date` | `2026-05-08 10:30:15` | 검사 수행 일시 |
|
||
|
|
| `Line` | `L1` | 작업 라인 번호 |
|
||
|
|
| `Lot_No` | `LOT001` | Lot 번호 |
|
||
|
|
| `Jig_No` | `JIG01` | 지그 번호 |
|
||
|
|
| `Channel` | `LEFT` | 검사 채널 (LEFT 또는 RIGHT) |
|
||
|
|
| `Spec_UL` | `1.00` | 규격 상한값 |
|
||
|
|
| `Spec_LL` | `-1.00` | 규격 하한값 |
|
||
|
|
| `Leak_Value` | `0.5234` | 측정된 릭 측정값 (소수점 4자리) |
|
||
|
|
| `Result` | `OK` | 최종 판정 결과 (OK 또는 NG) |
|
||
|
|
|
||
|
|
### CSV 예시
|
||
|
|
```csv
|
||
|
|
IC_SN,PCB_Barcode,Maker,Model,Variant_1,Variant_2,Operator,Production_Date,Line,Lot_No,Jig_No,Channel,Spec_UL,Spec_LL,Leak_Value,Result
|
||
|
|
260508A00123B01C,260508A00123B01C,Hyundai,NE1aW,PT,SENSOR,op001,2026-05-08 10:30:15,L1,LOT001,JIG01,LEFT,1.00,-1.00,0.5234,OK
|
||
|
|
260508A00456D02E,260508A00456D02E,Hyundai,NE1aW,PT,SENSOR,op002,2026-05-08 10:30:45,L1,LOT001,JIG01,RIGHT,1.00,-1.00,1.2000,NG
|
||
|
|
```
|
||
|
|
|
||
|
|
> **참고**: 타임아웃 발생 시에도 측정값 `0.0000`, 판정 `NG`로 로그에 기록됩니다.
|
||
|
|
|
||
|
|
> **참고**: 프로그램은 구형 8개 컬럼 포맷(`Date,Time,ID,Channel,SpecUL,SpecLL,Value,Judgment`)의 로그 파일에 대해서도 컬럼 크기를 기준으로 자동 감지 및 파싱(하위 호환성)을 수행합니다.
|
||
|
|
|
||
|
|
> **참고**: CSV 값에 쉼표, 따옴표, 줄바꿈이 포함된 경우 자동으로 이스케이프 처리됩니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8.2 시스템 로그
|
||
|
|
|
||
|
|
### 기본 정보
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| **저장 위치** | `[프로그램 폴더]\Logs\yyyy-MM-dd_system.log` |
|
||
|
|
| **파일 형식** | 텍스트 파일 (UTF-8 인코딩) |
|
||
|
|
| **내용** | 통신 오류, 시스템 이벤트 등 |
|
||
|
|
|
||
|
|
### 로그 형식
|
||
|
|
```
|
||
|
|
[HH:mm:ss.fff] [TAG] 메시지 내용
|
||
|
|
```
|
||
|
|
|
||
|
|
### 예시
|
||
|
|
```
|
||
|
|
[10:30:00.123] [SYSTEM] 프로그램 시작
|
||
|
|
[10:30:01.456] [COMM] Sentinel C28 포트 연결 성공 (COM1)
|
||
|
|
[10:35:15.789] [ERROR] Sentinel C28 통신 타임아웃
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8.3 설정 파일
|
||
|
|
|
||
|
|
### config.xml
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| **위치** | 프로그램 실행 폴더 |
|
||
|
|
| **생성** | 최초 실행 시 기본값으로 자동 생성 |
|
||
|
|
| **수정** | Comm. Settings 또는 Parameters에서 저장 시 갱신 |
|
||
|
|
|
||
|
|
```xml
|
||
|
|
<AppConfig>
|
||
|
|
<SensorPort>COM1</SensorPort>
|
||
|
|
<SensorBaudRate>9600</SensorBaudRate>
|
||
|
|
<Board4251Port>COM3</Board4251Port>
|
||
|
|
<Board4251BaudRate>115200</Board4251BaudRate>
|
||
|
|
<Board4251Timeout>5000</Board4251Timeout>
|
||
|
|
<SpecUL>1.00</SpecUL>
|
||
|
|
<SpecLL>-1.00</SpecLL>
|
||
|
|
</AppConfig>
|
||
|
|
```
|
||
|
|
|
||
|
|
| 설정 키 | 기본값 | 설정 위치 | 설명 |
|
||
|
|
|---------|--------|----------|------|
|
||
|
|
| `SensorPort` | COM1 | Comm. Settings | C28 센서 COM 포트 |
|
||
|
|
| `SensorBaudRate` | 9600 | Comm. Settings | C28 센서 통신 속도 |
|
||
|
|
| `Board4251Port` | COM3 | Comm. Settings | 4251 보드 COM 포트 |
|
||
|
|
| `Board4251BaudRate` | 115200 | Comm. Settings | 4251 보드 통신 속도 |
|
||
|
|
| `Board4251Timeout` | 5000 | (코드 내 고정) | 4251 보드 응답 대기 시간(ms) |
|
||
|
|
| `SpecUL` | 1.00 | Parameters | 누설 상한 규격값 |
|
||
|
|
| `SpecLL` | -1.00 | Parameters | 누설 하한 규격값 |
|
||
|
|
|
||
|
|
### Database.ini
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| **위치** | 프로그램 실행 폴더 |
|
||
|
|
| **생성** | 배포 시 기본 포함 및 파일 누락 상태로 기동 시 기본 양식이 자동 생성됨 |
|
||
|
|
| **수정** | 메모장 등의 텍스트 에디터를 통해 연결 주소 및 프로시저 정보 직접 수정 |
|
||
|
|
|
||
|
|
```ini
|
||
|
|
; [데이터베이스 접속 상세 설정]
|
||
|
|
Db_Server=192.168.0.20
|
||
|
|
Db_Name=NE1aW_PT_SENSOR
|
||
|
|
Db_User=sa
|
||
|
|
Db_Password=sa1234
|
||
|
|
|
||
|
|
[Login]
|
||
|
|
Procedure=dbo.CheckOperator
|
||
|
|
ProcessName=EOL
|
||
|
|
OfflinePreview=false
|
||
|
|
```
|
||
|
|
|
||
|
|
| 설정 키 | 예시 | 설명 |
|
||
|
|
|---------|--------|------|
|
||
|
|
| `Db_Server` | 192.168.0.20 | 데이터베이스 서버 IP 주소 또는 호스트명 |
|
||
|
|
| `Db_Name` | NE1aW_PT_SENSOR | 대상 데이터베이스(DB) 이름 |
|
||
|
|
| `Db_User` | sa | 데이터베이스 접속 계정 ID |
|
||
|
|
| `Db_Password` | sa1234 | 데이터베이스 접속 계정 비밀번호 |
|
||
|
|
| `Procedure` | dbo.CheckOperator | 로그인 계정 검증용 저장 프로시저명 |
|
||
|
|
| `ProcessName` | EOL | 검증 공정명 |
|
||
|
|
| `OfflinePreview` | false | true 시 DB 연결 없이 로그인 즉시 성공 (오프라인 모드) |
|
||
|
|
|
||
|
|
### DioConfig.ini
|
||
|
|
|
||
|
|
| 항목 | 내용 |
|
||
|
|
|------|------|
|
||
|
|
| **위치** | `[프로그램 폴더]\Settings\DioConfig.ini` |
|
||
|
|
| **생성** | 최초 실행 시 자동 생성 |
|
||
|
|
| **수정** | 일반적으로 수정 불필요 (하드웨어 변경 시에만) |
|
||
|
|
|
||
|
|
```ini
|
||
|
|
[DIO]
|
||
|
|
CompanyName=ADLink
|
||
|
|
BoardCnt=1
|
||
|
|
|
||
|
|
[BOARD_1]
|
||
|
|
BoardType=PCI_7432
|
||
|
|
BoardNumber=0
|
||
|
|
|
||
|
|
[BOARD_1_IN]
|
||
|
|
0=LEFT_START,1,좌측 시험 시작 신호
|
||
|
|
1=RIGHT_START,1,우측 시험 시작 신호
|
||
|
|
|
||
|
|
[BOARD_1_OUT]
|
||
|
|
0=LEFT_OK,1,좌측 합격 출력
|
||
|
|
1=RIGHT_OK,1,우측 합격 출력
|
||
|
|
2=PC_ON,1,PC 가동 신호
|
||
|
|
3=LEFT_NG,1,좌측 불합격 출력
|
||
|
|
4=RIGHT_NG,1,우측 불합격 출력
|
||
|
|
```
|
||
|
|
|
||
|
|
**INI 포맷 설명**: `비트인덱스=신호명,활성여부,설명`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8.4 파일 관리 주의사항
|
||
|
|
|
||
|
|
| 주의사항 | 설명 |
|
||
|
|
|---------|------|
|
||
|
|
| Logs 폴더 삭제 금지 | 검사 기록이 영구 삭제됩니다 |
|
||
|
|
| CSV 파일 직접 편집 | Excel 등으로 편집 시 인코딩이 변경될 수 있으므로 주의 |
|
||
|
|
| config.xml 직접 편집 | 잘못된 값 입력 시 프로그램 오작동 가능. 프로그램 내 설정 화면 사용 권장 |
|
||
|
|
| 디스크 용량 | 일일 수백 건 검사 기준, 연간 약 50~100MB 정도의 로그가 생성됩니다 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8.5 데이터베이스 데이터 관리 (dbo.EOL)
|
||
|
|
|
||
|
|
매 시험 완료 시 검사 결과 및 로그인 정보가 데이터베이스에 실시간으로 저장(MERGE/UPSERT)됩니다.
|
||
|
|
|
||
|
|
### 데이터베이스 테이블 및 컬럼 매핑
|
||
|
|
|
||
|
|
* **대상 테이블**: `[dbo].[EOL]`
|
||
|
|
* **매핑 상세**:
|
||
|
|
|
||
|
|
| DB 컬럼명 | 데이터 타입 | 매핑되는 C# 데이터 | 비고 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| **`IC_SN`** | `NVARCHAR(10)` | 제품의 최종 조합 ID (`inspectData.ProductId`) | **PK / FK** |
|
||
|
|
| **`PCB_Barcode`** | `NVARCHAR(10)` | 고유 식별용 바코드 정보 (`inspectData.ProductId` 매핑) | **UK** |
|
||
|
|
| `Maker` | `NVARCHAR(10)` | 로그인 제조사 정보 (`App.LoginResult.Maker`) | |
|
||
|
|
| `Model` | `NVARCHAR(10)` | 로그인 모델 정보 (`App.LoginResult.Model`) | |
|
||
|
|
| `Variant_1` | `NVARCHAR(10)` | 로그인 변형1 정보 (`App.LoginResult.Variant1`) | |
|
||
|
|
| `Variant_2` | `NVARCHAR(10)` | 로그인 변형2 정보 (`App.LoginResult.Variant2`) | |
|
||
|
|
| `Operator` | `NVARCHAR(10)` | 로그인 검사자 ID (`App.LoginResult.Operator`) | |
|
||
|
|
| `Production_Date` | `DATETIME2(0)` | 검사 수행 일시 (`DateTime.Now`) | |
|
||
|
|
| `Line` | `NVARCHAR(5)` | 로그인 작업 라인 (`App.LoginResult.LineNo`) | |
|
||
|
|
| `Lot_No` | `NVARCHAR(8)` | 로그인 Lot 번호 (`App.LoginResult.LotNo`) | |
|
||
|
|
| `Jig_No` | `NVARCHAR(10)` | 로그인 지그 번호 (`App.LoginResult.JigNo`) | |
|
||
|
|
| `Channel` | `NVARCHAR(5)` | 검사 채널 (`LEFT` / `RIGHT`) | |
|
||
|
|
| `Spec_UL` | `DECIMAL(3,2)` | 규격 상한값 (소수점 2자리) | |
|
||
|
|
| `Spec_LL` | `DECIMAL(3,2)` | 규격 하한값 (소수점 2자리) | |
|
||
|
|
| `Leak_Value` | `DECIMAL(5,4)` | 측정된 릭 값 (소수점 4자리) | |
|
||
|
|
| `Result` | `NVARCHAR(5)` | 최종 판정 결과 (`OK` 또는 `NG`) | |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
[← 이전: 시험 프로세스](07_시험_프로세스.md) | [다음: 오류 대응 →](09_오류_대응.md)
|