[CPS] OPC UA 프로토콜 실습
실습을 위해서 OPC UA 서버를 로컬에 설치하고 가상의 PLC 를 연결하여 OPC server를 구축하겠다.
( LX PLC가 사무실 어딘가에 있었던 것 같은데, 이사하면서 잃어버린 듯 하다 )
OPC Client 또한 로컬에 설치하여 별도의 네트워크 구성없이 실습을 진행하겠다. ( 실제로는 이런 구성이 있을리가 없다 )
클라이언트 소프트웨어로는 UaExpert v1.7.1를 사용하였다. 회원가입 시 무료 다운로드가 가능한 소프트웨어다.
서버 측 소프트웨어로는 Kepserverex 를 이용하였다.
해당 소프트웨어는 유료 프로그램이며, 데모를 2시간 지원해준다. 따라서 실습만 진행하고, 이후에는 ROBO DK 를 통해 가상 서버를 구현하였다.
가상의 서버를 구축하기 위해서 OPC quick client 를 사용하였다.
OPC Quick Client(서버)에서 인증 절차없이 접속을 가능하게 설정한 후, UaExpert(클라이언트)로 접속 시도하면 서버 측의 값을 확인할 수 있다.
실습 당시에는 조금 늦게 떠올랐는데, 과거 로봇 관련 취약점 분석 당시에는 ROBO DK가 OPC UA 통신을 사용하고 있었다.
어차피 Kepserverex는 유료 프로그램이므로, 서버 역할을 대신할 ROBO DK를 설치해주었다. ( 무료버전으로 설치해도 충분하다 )
add-ins에서 opc-ua 활성화 시켜주고, 임의의 로봇 모델을 다운 받아 불러온다.
opc-ua server start 버튼(우측 상단)을 눌러주면 기본적으로 4840 포트에 opc 서버가 열리게 된다.
이를 일반적으로 opc.tcp://localhost:4840 이라고 표현한다.
ROBO DK 에서 opc-ua server를 시작한 후, UaExpert로 opc.tcp://localhost:4840 를 접속해보면 아래와 같이 나타난다.
로봇 팔의 각도를 수정해보면, UaExpert에서 값이 업데이트되는 것을 확인할 수 있다.
다음 포스트에서는 client 역할의 software를 직접 구현해보도록 하겠다.