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

+ Recent posts