728x90
GX Works3로 설정하고, Visual Studio로 바로 연동하세요!
Mitsubishi MELSEC PLC는 일본 자동화 업계의 대표 주자입니다.
기존엔 전용 프로토콜(MC, SLMP 등)만 지원했지만, 최신 iQ-R/iQ-F 시리즈는 OPC UA 서버 기능을 내장하면서 IT와 OT 통합의 중심에 섰습니다.

이 글에서는 C# 기반 OPC UA 클라이언트를 활용해 MELSEC PLC와 통신하는 방법을 소개합니다.
GX Works3에서 OPC UA 설정을 마치고 나면, Visual Studio에서 노드값을 읽고 변경 이벤트를 실시간으로 받을 수 있습니다
- 통신 프로토콜: OPC UA (opc.tcp:// 포트 49320 등)
- 개발 언어: C# (.NET 6 이상)
- 개발 환경: Visual Studio 2022 이상
- 사용 라이브러리: OPCFoundation.NetStandard.Opc.Ua
- 주요 기능:
- GX Works3에서 설정한 태그(NodeId) 연동
- 실시간 변경 감지 (Subscription)
- 인증서 기반 보안 통신 구성 팁 제공
1. 미쯔비시 MELSEC OPC UA 기본 설정
지원 모델 예시:
- iQ-R Series: R04CPU-P, R08ENCPU 등
- iQ-F Series: FX5U (OPC UA 옵션 모듈 필요)
- Q 시리즈: Q03UDVCPU + QJ71E71 TCP/IP 모듈 + OPC UA 게이트웨이 필요
기본 설정 방법 (GOT or GX Works3 사용):
- OPC UA 기능 활성화
- 통신 포트 설정 (opc.tcp://192.168.0.10:49320)
- 사용자 인증 or Anonymous 설정
- 보안 정책 선택 (None, Basic256 등)
- Server 인증서 등록 (클라이언트에서 신뢰 필요)
2. C# OPC UA 통신 – 기본 예제

Mitsubishi PLC도 LS산전과 동일하게 OPC Foundation 라이브러리 사용 가능. 핵심 코드는 비슷하지만, 노드 네이밍 규칙이 제조사마다 다릅니다.
var endpointURL = "opc.tcp://192.168.3.101:49320"; // Mitsubishi PLC OPC UA 주소
var nodeId = "ns=4;s=Channel1.Device1.D100"; // D100 주소에 연결된 태그
노드 ID 규칙은 OPC UA Gateway 또는 Mitsubishi의 설정 툴에서 확인 가능.
3. 예제 코드 – 값 읽기
var session = await Session.Create(config, endpoint, false, "MELSEC Client", 60000, null, null);
Console.WriteLine("미쯔비시 OPC UA 연결 성공.");
string nodeId = "ns=4;s=Channel1.Device1.D100"; // D100 메모리 주소
DataValue value = session.ReadValue(nodeId);
Console.WriteLine($"D100 현재값: {value.Value}");
4. 예제 코드 – Subscription 이벤트 처리
var subscription = new Subscription(session.DefaultSubscription)
{
PublishingInterval = 1000
};
var monitoredItem = new MonitoredItem(subscription.DefaultItem)
{
StartNodeId = "ns=4;s=Channel1.Device1.D100",
DisplayName = "D100",
SamplingInterval = 500
};
monitoredItem.Notification += OnValueChanged;
subscription.AddItem(monitoredItem);
session.AddSubscription(subscription);
subscription.Create();
private static void OnValueChanged(MonitoredItem item, MonitoredItemNotificationEventArgs e)
{
foreach (var value in item.DequeueValues())
{
Console.WriteLine($"D100 변경됨: {value.Value}");
}
}
5. 실무 노하우
| 항목 | 설명 |
| 포트 변경 | OPC UA 포트 기본값이 49320으로, 방화벽에서 열어야 함 |
| 인증서 정책 | Mitsubishi는 Client 인증서 신뢰 필요. CertificateStore 경로 확인 |
| 태그 구조 | OPC UA 게이트웨이나 GX Works3로 설정한 태그 구조를 반드시 확인 |
| 보안 정책 | 테스트 시 SecurityPolicy.None으로 설정, 운영환경에서는 TLS 권장 |
| 통신 오류 대처 | 접속 지연 or Bad Status 발생 시, 재시도 또는 KeepAlive 체크 필수 |
6. Mitsubishi 노드 구조 확인 팁
- MELSOFT OPC UA Configurator 사용하여 노드 ID 구조 확인
- iQ-R의 경우 실제 노드 ID는 ns=4;s=Channel1.Device1.D100처럼 구성됨
- GX Works3에서 변수 이름을 등록하면 심볼 기반 노드 사용 가능
https://www.youtube.com/watch?v=kUUtLGdolsE
728x90
'산업 IoT & 스마트 팩토리 디지털트윈 > OPC UA 표준 통신' 카테고리의 다른 글
| OPC UA & C# 통신 예제 – IOT(아두이노) 연동편 (0) | 2026.02.12 |
|---|---|
| OPC UA & C# 통신 예제 – Siemens S7-1200/1500 PLC 연동편 (0) | 2026.02.12 |
| OPC UA & C# 통신 예제 - OMRON NX/NJ PLC 연동편 (0) | 2026.02.12 |
| OPC UA & C# 기초 통신 예제 – LS산전 PLC 연동편 (0) | 2026.02.11 |
| OPC UA 쉽게 이해하기: 구조부터 Python 예제까지 한눈에 정리! (0) | 2025.06.09 |