OPC 통신

1 minute read

OPC DA 파이썬 연결

OPC DA는 산업용 데이터 통신 프로토콜이다. 주로 오래된 산업용 소프트웨어가 가진 데이터를 받아오기 위해서는 이 프로토콜을 이용해야 한다. 데이터를 가져오고자 하는 머신에 OPC server가 있고 내가 만들려고 하는 소프트웨어에 OPC client가 있기 때문에 파이썬으로 OPC client를 개발하는 것이 목적이다.

과거에 비슷한 작업을 한적이 있어서 크게 어렵지 않을 것이라고 생각했지만… 현재 몇가지 문제점이 있고 아직 해결하지 못하고 있다.

큰 개념은 OPC server에서 DCOM 설정을 해주고 서브넷 마스크 상의 IP를 동일하게 맞춰서 같은 네트워크안에 있도록 하면, OPC client에서 데이터를 가져올 수 있는 구조이다. 즉, 아래 3가지만 하면 통신이 되어야 한다고 생각했다.

  1. 네트워크 통일
  2. DCOM 설정
  3. OPC client 코드 작성

현재 네트워크 통일 (ping으로 확인)은 되었고 OPC server가 있는 곳의 DCOM 설정도 모두 허용하였다. 그리고 나서 OPC client 코드로 접근을 하려고 하였는데 접근 거부 에러가 나면서 실패하였다.

고민하다가, 과거에 했던 방식을 그대로 사용하기 위해 (구조는 달라졌지만, 과거엔 동일한 머신에서 OPC server/client가 있었지만, 현재는 다른 머신에 있고 심지어 다른 머신안의 VM상에 OPC server가 존재) OPC gateway service를 OPC server 머신에 설치하여 DCOM을 우회하는 방식으로 하기로 했다. 그래서 해당 환경을 세팅하고 (인터넷이 되지 않는 환경에서 파이썬 및 관련 라이브러리 설치), 그 이후에 OPC gateway를 동작시킨 후에 OPC client에서 통신을 시도하였지만 또 실패하였다.

테스트 목적으로 같은 머신에 OPC client 코드를 설치하여 테스트 해봤지만 이것도 실패. 아마도 OPC gateway service에 문제가 있는 것으로 보인다. 내일은 이 부분을 위주로 시도해볼 예정.

단순한 두 머신간의 통신 문제를 해결하는데 하루안에 끝나지 않아서 마음이 괜히 다급해졌다. 그러다가 갑자기 데스크탑에 부팅 후 검은색 화면에 마우스 커서면 보여서 또 기분이 언짢아졌다.

오늘 안으로 원천세 신고해야하는데… 이 문제를 해결하기 위해 이것저것 시도해봤지만 검색하면 많이 나오는 해결책은 나는 해당이 없어서 윈도우 부팅용 USB 미디어를 만들어서 해결해보려고 하는 중.

Updated: