1. 신규 pvserver 프로젝트 생성
메뉴에서 new pvserver 아이콘을 누르면 그림 1과 같은 새로운 pvserver 생성용 창이 열린다. 이 창에서 새로운 pvsever의 이름, 홈 디렉토리, 프로그래밍 언어를 선택하면 새로운 pvserver 프로젝트가 생성된다.그림 1. 신규 pvserver 생성 창 |
그림 2. 신규 pvserver 프로그래밍 언어 선택 |
pvsever에서 사용할 수 있는 프로그래밍 언어는 C/C++, Lua, Python이며, 기본은 C/C++이 선택된다.
- C/C++
- Lua
Scripting Language for embedding
공식 홈페이지 단순 명료하게 강력하고, 빠르면서 가볍고, 임베딩이 가능한 스크립 언어라고 설명되어 있다. (한번도 사용해 보지 않아서 모르겠다.)
이 언어는 매우 작은 라이브러리를 사용하기 때문에 임베디드 시스템에 유리하며, 추가적인 C/C++ 개발툴이 필요없다고 언급되어 있다. 추가적으로 스크립트 언어이기 때문에 서버가 운전 중에도 수정이 가능하다고 한다. - Python
아직은 실험단계인 것 같다.
Directory : G:/..../test100
Name : pvs-test
Language : C/C++
그림 3. 신규 프로젝트 디자이너 모드 창 |
그림 4. 신규 프로젝트 폴더 |
아주 간단해 보이지만 신규 pvserver 프로젝트가 만들어 졌다. 이 상태로는 바로 사용할 수 없기 때문에 추가적으로 소스 Make & Compile을 수행하여 pvserver용 실행파일을 만들어 보자.
2. 신규 프로젝트 Make
신규 프로젝트를 만든 후 Make 하자. Make는 에디터 모드에서 활성화 되므로 에디터 아이콘을 눌러 에디터 모드로 빠져 나온다.그림 5. 신규 프로젝트 에디터 모드 |
그림 6.Make 도스 창 |
- qmake 파일을 이용하여 *.pro 파일 Make
- g++ 을 이용한 main.cpp, mask1.cpp, ... 오브젝트 파일 생성
- g++ 을 이용한 오브젝트 파일 링크
만약 이단계에서 경고 나 에러가 발생하면 메시지가 표시되므로 이 창의 내용을 꼭 확인하여야 한다. 에러가 발생하면 에러가 발생한 위치를 확인하고 소스 코드를 수정하여 다시 이 단계를 수행하여야 한다.
도스창에서 아무키나 누르면 도스창이 사라진다.
3. Start Server
에디터 모드에서 Action->Start Server 를 선택하면 그림 7과 같은 도스창이 나타난다.그림 7. Start Sever 도스 창 |
프로 그램이 실행되면 방화벽 관련 경고창이 나타나는데 그냥 허용을 선택하면 된다.
이단계에서 서버프로그램이 메모리에 올라와서 실행되고 있는지 확인해 보자. 윈도우 작업관리자를 실행하자(CTRL+SHIFT+ESC)
그림 8. 서버프로그램 동작확인 |
프로세스 메뉴의 이미지 이름에 보면 pvs-test-exe가 실행되고 있는 것을 확인 할 수 있다.
자, 이 단계까지 오면 외부 클라이언트(pvbrowser)에서 요청하는 작업을 수행할 수 있다.
그러면 pvbrowser를 실행하여 보자.
4.pvbrowser 실행
pvdevelop와 함께 설치(혹은 단독 설치)된 pvbrowser를 실행하자.Action->pvbrowser를 선택하여도 된다.
그림 9.pvbrowser 접속화면 |
status bar 좌측 하단에 현재 접속한 UI 명이 나타난다. 현재 mask1에 접속된 상태이다. 만약 접속이 실패하면 status bar 가 붉은색으로 변하며 접속에러 메시지가 나타난다.
그림 10.서버 도스창 |
start server 도스창을 다시 한번 살펴보자.
"Info: going to accept on port 5050" 이후 추가적인 것들이 아래와 같은 것들이 나타난 것을 알 수 있다.
간단히 요약하면127.0.0.1 (localhost)에서 화면 해상도 2560x1440 인 pvbrowser가 접속해서 mask1을 보여주었다... 이런 뜻인 것 같은데, 여하튼 pvbrowser에 나타나는 UI 위젯에 마우스 혹은 키보드로 조작을 하면 이 창에 모든 내용이 나타난다.
서버 프로그램을 작성, 디버깅 할때 printf를 이용한 메시지도 이 창에서 확인이 가능하다.
이상으로 간략하게 pvserver, pvbrowser 를 실행해 보았다.
C/C++ 을 조금만 알면 쉽게(통신용 GUI 프로그램을 직접 맨 땅에 해딩하면서 작성하는 것보다..) HMI 더 나아가 SCADA 시스템을 만들 수 있다.
쉽게 만들 수 있다는 말을 믿지는 마라. 기존의 상용 HMI, SCADA 프로그램들을 생각한다면 매우 원시적(?)이다. 상용 프로그램의 경우 GUI 화면을 구성하면 속성 지정용 다이얼로그창들이 나타나, 이 창에 있는 옵션들을 ON/OFF 시키면 아주 간단하게 사용할 수 있지만 pvserser의 경우, 위젯의 속성 창을 기대하지 마라. 모든 것은 slot 프로그램에서 직접 코드를 집어 넣어야 한다. 이 방식의 장점은 프로그래머가 원하는 대로 작동하게 만들 수 있다는 장점이 있을 수 있지만 IDE를 완전히 지원하지 않는 pvdevelop 프로그램의 경우 서버 프로그램이 커지면 관리하기가 매우 힘들어 질 수 있다.
댓글 없음:
댓글 쓰기