1PLC-AI 통합 아키텍처
PLC-AI 통합은 엣지 AI의 추론 결과를 실시간으로 PLC에 전달하여 제어 루프를 구성하는 것입니다. AI가 단순 모니터링을 넘어 실시간 공정 제어에 직접 참여할 수 있습니다.
PLC-AI Real-time Control Loop
Edge AI Box
Camera Input
→
AI Inference (TensorRT)
→
Result Transform
OPC UA Client
OPC UA (10ms cycle)
PLC
OPC UA Server
(AI Result Receive) ↔ Sequence Control
(Ladder Logic) → Actuator
(Defect Sorter)
(AI Result Receive) ↔ Sequence Control
(Ladder Logic) → Actuator
(Defect Sorter)
핵심: AI 추론 → OPC UA → PLC → 액추에이터의 전체 루프가 100ms 이내 완료
2통신 프로토콜
OPC UA
표준, 보안 내장
Modbus TCP
레거시 호환
MQTT
경량 Pub/Sub
EtherNet/IP
실시간 보장
3OPC UA 클라이언트 구현
from asyncua import Client, ua
import asyncio
class PLCAIConnector:
"""PLC-AI 연동을 위한 OPC UA 클라이언트"""
def __init__(self, plc_endpoint):
self.endpoint = plc_endpoint # "opc.tcp://192.168.1.100:4840"
self.client = None
self.nodes = {
"ai_result": "ns=2;s=AI.InspectionResult",
"ai_confidence": "ns=2;s=AI.Confidence",
"plc_ready": "ns=2;s=PLC.Ready",
}
async def connect(self):
self.client = Client(url=self.endpoint)
await self.client.connect()
async def write_ai_result(self, result: int, confidence: float):
"""AI 추론 결과를 PLC에 전송"""
result_node = self.client.get_node(self.nodes["ai_result"])
conf_node = self.client.get_node(self.nodes["ai_confidence"])
await result_node.write_value(ua.Variant(result, ua.VariantType.Int16))
await conf_node.write_value(ua.Variant(confidence, ua.VariantType.Float))
async def read_plc_status(self):
"""PLC 상태 읽기"""
ready_node = self.client.get_node(self.nodes["plc_ready"])
return await ready_node.read_value()
4실시간 제어 루프
class AIControlLoop:
"""AI 기반 실시간 제어 루프"""
def __init__(self, ai_engine, plc_connector, camera):
self.ai = ai_engine
self.plc = plc_connector
self.camera = camera
self.cycle_time_ms = 50 # 제어 주기: 50ms
async def run(self):
await self.plc.connect()
while True:
# 1. PLC 상태 확인
ready = await self.plc.read_plc_status()
if not ready:
await asyncio.sleep(0.001)
continue
# 2. 이미지 캡처
frame = await self.camera.capture()
# 3. AI 추론
prediction = self.ai.infer(frame)
# 4. PLC에 결과 전송
await self.plc.write_ai_result(
1 if prediction["is_defect"] else 0,
prediction["confidence"]
)
5지연 시간 최적화
- 파이프라이닝: 캡처, 전처리, 추론, 후처리를 병렬 실행
- Zero-Copy: GPU 메모리 직접 공유로 복사 최소화
- Subscription 모드: 이벤트 기반 통신으로 폴링 제거
<50ms
전체 루프
<5ms
AI 추론
<10ms
OPC UA 왕복
20 FPS
제어 주기
6Fail-Safe 설계
- Watchdog: AI 무응답 시 PLC가 기본 동작으로 전환
- Confidence 임계값: 신뢰도 낮은 결과는 수동 검사로 분류
- 통신 타임아웃: OPC UA 응답 없을 시 안전 정지
AI는 PLC를 대체하지 않습니다. AI는 "어드바이저"로서 추론 결과를 제공하고, 최종 제어 결정은 PLC가 수행합니다.