벤더 중립 그래프 + 벤더별 Generator 구조
graph TB
A["인과 그래프 모델
(벤더 중립 IR)"] --> B["코드 생성 엔진
(EV2 Engine)"] B --> C["Rockwell
Generator"] B --> D["Siemens
Generator"] B --> E["LS Electric
Generator"] B --> F["Mitsubishi
Generator"] B --> G["Beckhoff
Generator"] C --> H["FactoryTalk
프로젝트"] D --> I["TIA Portal
프로젝트"] E --> J["XG5000
프로젝트"] F --> K["GX Works3
프로젝트"] G --> L["TwinCAT
프로젝트"] style A fill:#0891b2,stroke:#06b6d4,color:#fff style B fill:#7c3aed,stroke:#a78bfa,color:#fff style C fill:#ef4444,stroke:#f87171,color:#fff style D fill:#0066FF,stroke:#60a5fa,color:#fff style E fill:#22c55e,stroke:#4ade80,color:#fff style F fill:#f59e0b,stroke:#fbbf24,color:#fff style G fill:#8b5cf6,stroke:#a78bfa,color:#fff
(벤더 중립 IR)"] --> B["코드 생성 엔진
(EV2 Engine)"] B --> C["Rockwell
Generator"] B --> D["Siemens
Generator"] B --> E["LS Electric
Generator"] B --> F["Mitsubishi
Generator"] B --> G["Beckhoff
Generator"] C --> H["FactoryTalk
프로젝트"] D --> I["TIA Portal
프로젝트"] E --> J["XG5000
프로젝트"] F --> K["GX Works3
프로젝트"] G --> L["TwinCAT
프로젝트"] style A fill:#0891b2,stroke:#06b6d4,color:#fff style B fill:#7c3aed,stroke:#a78bfa,color:#fff style C fill:#ef4444,stroke:#f87171,color:#fff style D fill:#0066FF,stroke:#60a5fa,color:#fff style E fill:#22c55e,stroke:#4ade80,color:#fff style F fill:#f59e0b,stroke:#fbbf24,color:#fff style G fill:#8b5cf6,stroke:#a78bfa,color:#fff
벤더별 매핑 규칙
| 벤더 | 인과 그래프 요소 → 매핑 | 생성 형식 | 특징 |
|---|---|---|---|
| Rockwell | Task → Program/Routine Segment → AOI + Ladder |
L5X (Studio 5000) | Add-On Instruction 지원 |
| Siemens | Task → OB/FB/FC 구조 Segment → FB 내부 SCL |
TIA Portal XML | Step Sequence 포함 |
| LS Electric | Task → Program Segment → Ladder + FB |
XG5000 XML | Timer/Counter 최적화 |
| Mitsubishi | Task → POU Segment → Ladder/SFC |
GX Works3 포맷 | Step Ladder 자동 생성 |
| Beckhoff | Task → TwinCAT Task Group Segment → ST 코드 |
TwinCAT 프로젝트 | HMI Binding 포함 |
코드 생성 흐름
Phase 1: 인과 그래프 모델링
- 설비/라인을 Flow–Work–Call 그래프로 모델링
- HMI 기반 인터페이스에서 세그먼트 조합·배치
- AI가 세그먼트 후보, 연결 패턴, 제약조건 제안
Phase 2: 벤더별 매핑 규칙 적용
- 인과 그래프 Tag → 벤더별 PLC Tag 변환
- Flow/Work → Program/Routine/OB 구조 매핑
- Call → 벤더별 Function Block 생성
Phase 3: 코드 자동 생성
- 벤더별 프로젝트 골격 + 로직 코드 생성
- 최적화 (Dead Code 제거, 변수 병합)
- 주석 자동 생성 (Provenance 포함)
Phase 4: 벤더 전용 AI 연계
- 엔지니어가 벤더 전용 AI를 "후편집 도구"로 활용
- 추가 진단 코드, 문서화 작업
- HMI UI 디자인 개선
핵심 가치: 일괄 변경 관리
모든 벤더 프로젝트가 상위 인과 그래프를 공유하기 때문에:
공정 변경 시 인과 그래프만 수정 → 모든 벤더 프로젝트로 동일 변경 사항 일괄 재생성
- 벤더 전환 비용 최소화: 그래프는 유지, Generator만 교체
- 설비 이식 용이: 라인 로직 자체를 재사용 가능
- 표준화된 유지보수: 하나의 소스(그래프)에서 모든 코드 관리