본문 바로가기
study

[CPS] OPC UA 프로토콜 실습

by pwnhub 2024. 5. 5.

실습을 위해서 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를 직접 구현해보도록 하겠다.

'study' 카테고리의 다른 글

[Network] SynFlood 실습 VM 이용 시 주의사항  (0) 2024.05.05
[CPS] OPC UA 프로토콜 클라이언트 개발  (0) 2024.05.05
[CPS] OPC UA 프로토콜 정리  (0) 2024.05.05
[RAID] h/w raid card 03  (0) 2024.04.29
[RAID] h/w raid card 02  (0) 2024.04.29