1CMMS/EAM 통합의 필요성
예측 정비 AI의 인사이트가 실제 정비 행동으로 이어지려면 CMMS(Computerized Maintenance Management System) 또는 EAM(Enterprise Asset Management)과의 통합이 필수입니다. AI가 "베어링 RUL 14일"을 예측해도, 작업 지시가 생성되고 부품이 준비되며 기술자가 배정되지 않으면 가치가 없습니다. CMMS 통합은 AI 예측 → 작업 지시 생성 → 자원 배정 → 실행 → 완료 기록의 폐루프(Closed-loop)를 완성합니다. 이를 통해 예측 정비가 일상 업무 프로세스에 자연스럽게 녹아듭니다.
| 시스템 | 주요 기능 | 대표 제품 |
|---|---|---|
| CMMS | 작업 지시, 예방 보전 일정 | Maximo, Fiix, eMaint |
| EAM | 자산 수명주기 관리, 재무 연계 | SAP PM, Oracle EAM |
| APM | 자산 성능/위험 관리 | GE APM, Bentley AssetWise |
2작업 지시 자동 생성
AI 예측 결과를 기반으로 CMMS에 작업 지시(Work Order)를 자동 생성합니다. RUL이 임계값 이하가 되거나, Health Index가 특정 수준 아래로 떨어지거나, 특정 고장 모드가 탐지되면 트리거됩니다. 작업 지시에는 설비 ID, 예상 고장 모드, 권장 조치, 필요 부품, 우선순위, 예상 소요 시간이 포함됩니다. AI의 신뢰도에 따라 자동 생성(높은 신뢰도) 또는 담당자 승인 후 생성(낮은 신뢰도)을 구분할 수 있습니다.
# ============================================
# 예측 정비 기반 작업 지시 자동 생성
# ============================================
# 작업 지시 데이터 구조
작업지시 = {
설비ID, 설비명, 작업유형(PdM),
우선순위(1-5), 설명, 고장모드,
예측RUL, 신뢰도, 필요부품[], 예상시간, 기한
}
# 고장 모드별 작업 템플릿
템플릿 = {
베어링외륜결함: {설명, 부품:[베어링,윤활유], 시간:4h},
불균형: {설명, 부품:[밸런싱웨이트], 시간:2h},
축정렬불량: {설명, 부품:[커플링심], 시간:3h},
윤활부족: {설명, 부품:[윤활유], 시간:1h}
}
# --------------------------------------------
# 작업 지시 생성 조건 확인
# --------------------------------------------
함수 생성_조건_확인(예측):
조건1 = RUL < 21일
조건2 = HI < 50
조건3 = 이상_탐지됨
조건4 = 신뢰도 > 70%
반환 (조건1 OR 조건2 OR 조건3) AND 조건4
# --------------------------------------------
# 작업 지시 생성
# --------------------------------------------
함수 작업지시_생성(설비정보, 예측결과):
템플릿 = 고장모드별_템플릿 조회
# RUL 기반 우선순위 결정
우선순위 = RUL < 3일이면 1(긴급)
RUL < 7일이면 2
RUL < 14일이면 3
그외 기본값
# 기한 = RUL의 70% 시점
기한 = 현재 + max(1일, RUL × 0.7)
반환 작업지시_객체
# --------------------------------------------
# CMMS API로 전송
# --------------------------------------------
함수 CMMS_전송(작업지시):
페이로드 = {설비ID, 작업유형, 우선순위, 설명,
기한, 예상시간, 필요부품,
커스텀필드: {고장모드, RUL, 신뢰도}}
POST 요청 → CMMS API
반환 생성된_작업지시_ID
3SAP PM 연동
SAP Plant Maintenance(PM)는 대기업에서 널리 사용되는 EAM 모듈입니다. SAP PM과의 연동은 RFC/BAPI 또는 SAP Integration Suite(CPI)를 통해 이루어집니다. 예측 정비 AI 플랫폼이 SAP의 BAPI_ALM_NOTIF_CREATE로 정비 알림(Notification)을 생성하고, BAPI_ALM_ORDER_MAINTAIN으로 오더를 생성합니다. SAP의 설비 마스터(Functional Location, Equipment)와 동기화하여 AI 플랫폼의 자산 정보를 일치시킵니다.
# ============================================
# SAP Plant Maintenance 연동
# ============================================
# SAP 연결 설정
설정 = {서버주소, 시스템번호, 클라이언트, 사용자, 비밀번호}
# --------------------------------------------
# 정비 알림(Notification) 생성
# --------------------------------------------
함수 정비알림_생성(작업지시):
알림_데이터 = {
알림유형: 'M2' (정비요청),
기능위치: 설비ID,
짧은설명: 작업설명 앞 40자,
긴설명: AI 예측 상세정보,
우선순위, 알림일자, 요청완료일
}
# SAP BAPI 호출
결과 = BAPI_ALM_NOTIF_CREATE(알림_데이터)
BAPI_TRANSACTION_COMMIT() # 커밋
반환 알림_번호
# --------------------------------------------
# 정비 오더(Order) 생성
# --------------------------------------------
함수 정비오더_생성(알림번호, 오더유형='PM01'):
결과 = BAPI_ALM_ORDER_MAINTAIN({
오더ID: 신규,
오더유형: PM01,
알림번호: 알림번호,
생성_메서드: 'CREATE'
})
BAPI_TRANSACTION_COMMIT()
반환 오더_ID
# --------------------------------------------
# 설비 마스터 동기화
# --------------------------------------------
함수 설비목록_조회(플랜트):
결과 = BAPI_EQUI_GETLIST(플랜트, 전체설비)
반환 [{설비ID, 설명, 기능위치, 플랜트}]
함수 자산_매핑(PdM자산들, SAP설비들):
각 PdM자산에 대해:
이름 또는 ID로 SAP설비 매칭
매핑[PdM_ID] = SAP_설비ID
반환 매핑_딕셔너리
4부품 재고 연동
예측 정비의 핵심 이점 중 하나는 필요한 부품을 미리 준비할 수 있다는 것입니다. AI 예측 결과를 재고 관리 시스템(MRO)과 연동하면, 예상 정비에 필요한 부품 재고를 자동으로 확인하고, 부족 시 발주를 권장합니다. "2주 후 10개의 베어링 교체가 예상되는데 현재 재고가 3개"라면 7개 추가 발주가 필요합니다. 이를 통해 긴급 발주 비용과 정비 지연을 방지합니다.
# ============================================
# 부품 재고 관리 시스템 연동
# ============================================
# --------------------------------------------
# 부품 가용성 확인
# --------------------------------------------
함수 부품_가용성_확인(작업지시_리스트):
# Step 1: 필요 부품 집계
필요부품 = {}
각 작업지시에 대해:
각 부품에 대해:
필요부품[부품명].수량 += 1
필요부품[부품명].관련_작업지시.추가(설비명)
# Step 2: 재고 조회 및 비교
가용성 = {}
각 부품에 대해:
재고 = API.재고조회(부품명)
가용성[부품명] = {
필요수량, 재고수량,
부족수량: max(0, 필요-재고),
단가, 리드타임,
영향받는_작업지시들
}
반환 가용성
# --------------------------------------------
# 발주 권고 생성
# --------------------------------------------
함수 발주_권고_생성(가용성):
권고목록 = []
각 부품에 대해:
만약 부족수량 > 0:
권고목록.추가({
부품명,
주문수량: 부족 + 안전재고(2개),
긴급도: 리드타임 > 14일이면 'High',
예상비용: 단가 × 주문수량,
사유: "X개 부족, Y건 정비 영향"
})
반환 권고목록
# --------------------------------------------
# 자동 구매 요청 생성
# --------------------------------------------
함수 구매요청_자동생성(권고목록):
각 권고에 대해:
ERP_API.구매요청_생성({
자재: 부품명,
수량: 주문수량,
납품일: 현재 + 14일,
요청자: 'PdM_AI',
비고: 사유
})
반환 생성된_구매요청_리스트
5정비 이력 피드백 루프
CMMS에서 완료된 정비 이력은 AI 모델 개선의 귀중한 피드백입니다. 실제로 어떤 고장이 발생했는지, AI 예측이 정확했는지, 정비 후 설비 상태가 어떻게 변화했는지를 추적합니다. 이 데이터는 모델 재학습에 활용되어 예측 정확도를 지속적으로 향상시킵니다. 또한 False Positive(불필요한 정비)와 False Negative(놓친 고장)를 분석하여 임계값을 조정합니다.
# ============================================
# 정비 이력 피드백 분석
# (AI 예측 정확도 검증 및 재학습)
# ============================================
# --------------------------------------------
# 완료된 작업 지시 수집
# --------------------------------------------
함수 완료_작업지시_수집(기간=30일):
완료목록 = CMMS_API.작업지시_조회(상태='완료', 기간)
PdM_목록 = [작업유형 == 'PdM'인 것만 필터]
반환 PdM_목록
# --------------------------------------------
# 예측 정확도 분석
# --------------------------------------------
함수 예측_정확도_분석(완료_목록):
TP = 0 # 예측 정확 (실제 고장)
FP = 0 # 오탐 (예측했지만 고장 아님)
각 작업지시에 대해:
예측_고장모드 = 커스텀필드.pdmFailureMode
실제_결과 = actualFindings
만약 예측 == 실제:
TP += 1
아니면:
FP += 1
정밀도 = TP / 전체예측수
반환 {TP, FP, 정밀도}
# --------------------------------------------
# 재학습 데이터 준비
# --------------------------------------------
함수 재학습_데이터_준비(완료_목록):
학습데이터 = []
각 작업지시에 대해:
센서데이터 = 정비직전_센서데이터_조회(설비ID, 완료일)
만약 센서데이터 존재:
학습데이터.추가({
특징: 센서데이터,
실제_고장모드,
실제_RUL: 0, # 정비 시점
예측_정확_여부
})
반환 학습데이터
# --------------------------------------------
# 모델 재학습 트리거
# --------------------------------------------
함수 재학습_트리거(신규데이터, 최소샘플=50):
만약 신규데이터 >= 최소샘플:
모델.증분_학습(신규데이터)
반환 True
반환 False
핵심 포인트: CMMS 통합은 AI 예측을 실제 정비 행동으로 연결하는 핵심입니다. 작업 지시 자동 생성, 부품 준비, 정비 이력 피드백으로 예측 정비의 완전한 폐루프를 구현합니다.
6통합 아키텍처 설계
예측 정비 AI와 CMMS/EAM의 통합 아키텍처는 실시간성, 신뢰성, 확장성을 고려해야 합니다. 메시지 큐(Kafka, RabbitMQ)를 통해 AI 플랫폼과 CMMS 간 비동기 통신을 구현하여 시스템 간 의존성을 낮춥니다. API Gateway가 인증, 속도 제한, 로깅을 처리합니다. 마스터 데이터(자산, 부품, 인력) 동기화를 위한 별도 서비스가 주기적으로 데이터를 맞춥니다. 장애 상황에서도 작업 지시가 유실되지 않도록 재시도 로직과 Dead Letter Queue를 구현합니다.