이번 강의에서는 파워빌더로 소켓통신을 구현하는 방법에 대해 설명하겠습니다. 소켓 통신은 양방향 통신으로 서버와 클라이언트가 서로 데이터를 주고 받습니다. 개발자는 소켓 서버 프로그램 또는  소켓 클라이언트 프로그램을 개발합니다. 이번 강의에서는 미쓰비시 PLC를 서버로 두고 클라이언트 프로그램을 만드는 과정을 다룹니다. (소켓서버를 직접 구축하는 방법도 이후에 다룰 예정입니다.)

 

미쓰비시 PLC 통신 프로토콜과 통신 사이클

미쓰비시 PLC의 통신 모듈이 사용하는 프로토콜을 파악합니다. 이 강의에서는  ‘미쓰비시 MESEL-Q 프로토콜’을 사용합니다. 자세한 내용은 미쓰비시에서 제공하는 ‘미쓰비시 MESEL-Q 프로토콜’ 문서를 참고하십시오.

 PLC서버와 클라이언트는 서로 데이터를 주고 받습니다. 서버는 클라이언트의 요구를 항상 수용할 수 있도록 준비하고 있습니다. 이 때 서버와 클라이언트는 약속된 프레임 포맷으로 데이터를 주고 받는데 이를 프로토콜이라고 합니다.

 가장 먼저 클라이언트가 IP와 PORT의 접속 정보로 서버에 접속하면 세션이 생성됩니다. 그 다음 클라이언트는 원하는 번지값을 요구하는 프레임을 만들어 서버로 전송합니다. 서버는 전송된 프레임을 받아 해석하여 해당 번지값을 전송 프레임에 담아 클라이언트로 전송합니다. 클라이언트는 전송된 데이터를 받아 처리합니다. 클라이언트가 해당 세션의 접속을 해제하면 하나의 통신 사이클이 완성됩니다.

 

소켓 모듈 임포트

https://www.topwizprogramming.com 에서 제공하는 파워빌더용 winsock 모듈을 사용합니다.

위 사이트에서 다운받은 모듈 가운데 소켓통신에 필요한 유저오브젝트(n_winsock)를 현업에 적용할 수 있도록 수정 후 엑스포트하여 [강의 파일] 폴더에 올려뒀습니다. 파일 이름은 uo_sock.sru 이고 이것을 다운로드 받아 파워빌더로 임포트하면 바로 사용할 수 있습니다. 먼저 소켓통신 프로그래밍을 위해 파워빌더에서 어플리케이션과 윈도우를 만듭니다. 여기서는 윈도우명을 w_sock 으로 합니다. 그리고 다운로드 받은 uo_sock.sru 을 소스로 임포트하면 uo_sock 이 생성됩니다.

임포트 방법 : 파워빌더 -> system tree -> pbl 목록 가운데 임포트해서 넣을 pbl 마우스 우클릭 -> Import…-> uo_sock.sru 선택 -> uo_sock 생성

 

 

 

 

 

이 글은 회원 전용입니다.

https://all4museum.tistory.com/entry/%ED%9A%8C%EC%9B%90%EC%A0%9C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%8B%9C%EC%9E%91?category=892450

 

프리미엄 회원 모집

 

all4museum.tistory.com

 

Posted by A4M
,