OPC UA 서버의 ns(네임스페이스)를 알 수 없는 상황 ( feat. python )

2024. 3. 27. 12:59it

반응형


1. 상황 개요

스마트팩토리 프로젝트에서 데이터를 수집하는 과정은 전체 시스템의 효율성과 성능을 향상시키는 핵심 분석 요소이다. 이 데이터는 공정 모니터링, 예측 유지보수, 품질 관리 등 다양한 목적으로 사용되고 활용이 된다. 하지만, 네임스페이스를 관리하지 않아, 수집에 어려움이 있는 경우가 있다. 이러한 경우를 해결하는 방안을 이번 글에서 제시하겠다. 나는 주로 python를 활용해서 문제를 해결해 나간다. 

 


2. 도전 상황: 네임 스페이스 미확인

개발자가 특정 PLC의 TAG ID(태그 식별자) 목록만 전달받는 경우가 종종 있다. 이런 경우 OPC UA 서버 내 어떤 네임 스페이스를 몰라서 수집을 못 할 수 있다. 이런 경우 해결 방법을 제시하겠다. 



3. 발생 원인

이러한 상황은 주로 프로젝트 초기 단계에서 발생한다. 공장 운영 팀이나 기계 제조업체에서 제공하는 문서나 인터페이스가 충분히 관리 되지 않은 경우에 나타난다. 

 

728x90

 

 

4. 해결 방안

공장 운영 팀과의 협력 강화: 가장 먼저 해야 할 일은 공장 운영 팀과 긴밀히 협력하여 필요한 데이터의 네임 스페이스와 노드 식별자에 대한 정보를 전달 받는다.

OPC UA 브라우저 사용: 여러 OPC UA 브라우저 도구를 활용하여 서버를 탐색하고, 필요한 데이터 포인트를 찾아보는 방법도 있다. 

 

내가 사용하는 방법 : Python으로 해당 네임스페이스를 다 가지고 와서 매칭한다. 

 

반응형

 

import threading
from opcua import Client
import time

def read_temperature():
    server_url = "opc.tcp://localhost:4840"
    client = Client(server_url)
    client.connect()
    
    while True:
        temp_node = client.get_node("ns=3;s=Temperature")
        temperature = temp_node.get_value()
        print(f"현재 온도: {temperature}°C")
        time.sleep(10)

thread = threading.Thread(target=read_temperature)
thread.start()

 

 

5. 결론

 

스마트팩토리 프로젝트에서 OPC UA 서버의 네임 스페이스를 모르는 상황은 프로젝트 초기에 자주 발생할 수 있다. 이러한 도전을 극복하기 위해서는 공장 운영 팀과의 긴밀한 협력, OPC UA 브라우저와 같은 도구의 활용, 그리고 필요한 경우 자동화 스크립트의 개발이 필요하다.  

반응형