페이지

2016년 3월 14일 월요일

pvdevelp 사용 방법

pvbrowser 클라이언트를 지원하는 서버 프로그램을 작성하거나, 작성된 프로그램 실행 (필요한 경우 컴파일) 하기 위해서는pvdevelop 프로그램을 사용하여야 한다.
pvdevelop 프로그램은 IDE 환경으로 pvbrowser용 서버 프로그램을 쉽게 작성할 수 있는 환경을 제공하여 준다. Qt 개발 환경을 이용해 본 사용자라면 다소 쉽게 접근할 수 있다.
pvdevelop를 실행하기 위해서는start_pvdevelop.bat를 실행하자.

start_pvdevelop.bat 을 실행하면 윈도우 커맨드 창이 열리고 그림 1과 같은 내용이 나타난 후 pvdevelop 메인 창이 나타난다.

그림 1.배치 파일 실행 윈도우 커맨드 창
쓸데없는 화면이 아니다. 자세히 살펴보면 현재 설정이 일목요연하게 정리되어 있다. 만약 설정에 에러가 있다면, 이 화면에서 확인할 수 있다. 

그림 2. pvdevelop IDE 메인 화면

그림 2 는 project가 없는 초기 화면이며, 그림 3은 기본 예제 프로젝트인 pvsexample를 읽어 들인 화면이다. 프로젝트를 읽어 들이면 타이틀 바에 읽어 들인 프로젝트 명이 나타난다. 파일 확장자가 ".pro" 로 나타난다.

그림 3. 예제 프로그램
처음 실행하면 나타나는 창의 좌측 메뉴는 에디터 모드일때 나타나는 것으로 크게 모듈과 위젯 네임으로 구성되어 있다.버튼을 누르면 선택된 항목이 표시된다.

그림 4. Module 탭

그림 4는 모듈 탭 선택시 나타나는 메뉴로 기본으로 선택되어있다.
모듈 탭의 파일 항목에서 다음과 같은 것들을 선택할 수 있다.
  • Project
  • Main
  • Header
  • Masks
  • Slots
  • Masknr. (Mask Number)
그림 5. 슬롯 포지션 콤보박스

모듈 탭의 Slot Position은 slot 소스 프로그램을 편집할 때 다소(?) 편하게 사용할 수 있다. slot 편집 창에서 편집할 때 콤보 박스에서 원하는 위치를 선택하면 편집창이 원하는 위치로 이동한다. 커서가 함께 이동하지 않기 때문에 다소 불편하다.

su --command=./pvs

리눅스 계열인 경우 super user 권환으로 폴더를 접근하기 위해 사용

그림 6. 함수 다이알로그 창

모듈 탭의 Insert Function 버튼을 누르면 그림 6과 같은 slot 편집시 사용할 수 있는 내장 함수들을 선택할 수 있는 다이알로그 창이 열린다. 원하는 라이브러리를 확장하면 사용할 수 있는 함수들이 나온다. 마우스 버튼으로 선택하면 현재 편집 중이 커서 위치에 함수가 자동으로 삽입된다.

모듈버튼 하단에 있는 Widget Names 버튼을 누르면 현재 편집하고 있는 mask에 삽입되어 있는 위젯 명이 그림 7과 같이 나타난다.

그림 7.widget Names 탭
그림 7의 위젯 이름들을 보면 라벨, 버튼과 같은 것들이 사용된 것을 알 수 있다.
위젯 이름은 가능하면알기 쉽게 명명하여 사용하여야 프로그램 작성시 쉽게 사용할 수 있다. 만약 사용된 이름을 정확히 모를 경우 이 창을 사용하도록 하자.


그림8의 아이콘을 이용하면 에디터 모드와 디자이너 모드 사이를 전환할 수 있다.
Masknr. 에서 지정된 GUI 화면으로 전환되므로, 원하는 Mask number를 선택한 후 디자이너 버튼을 눌러주자.

그림 8. 에디터/ 디자이너 선택 버튼
그림 9는 기본적으로 제공되는 pvsexample의 maske 1 GUI 화면이다. 만약 새로 만든 마스크가 선택된 경우에는 빈 창이 나타나게 된다. 에디터 모드와 디자이너 모드의 구분은 왼쪽에 메뉴화면이 나타나 있으면 에디터 모드, 없으면 디자이너모드...

그림 9. 디자이너창

디자이너 창에서마우스 오른쪽 버튼을 선택하면 그림 10과 같은 팝업이 나타난다.

그림 10. 디자이너 창 오른 쪽 마우스 버튼 클릭 팝업 메뉴

이 메뉴에서가장 많이 사용되는 것이 위젯 삽입, 속성, 레이아웃 편집이며, 이외에도 속성 복사, 탭 순서 정의, 위젯 삭제를 선택할 수 있다.
이 팝업의 마지막 항목인 releaseMouse 항목은 좀 특별하게 동작한다. 정확한 사용법은 잘 모르겠지만 TabWidget을 편집할 경우 여러개의 Tab 사이를 전환할 때 이 버튼을 잘 사용하여야 Tab 전환이 가능하다.

그림 11. 위젯 특성 편집 창

그림 11 은 팝업 메뉴에서특성 창을 선택하면 나타나는 다이얼로그 창이다. 특성을 눌렀을떄 이 창이 나타나지 않는다면, 특성을 보고 싶은 위젯을 먼저 선택한 후 특성을 눌러주기 바란다.
특성 창에서 위젯의 이름, 크기, 색상, 폰트와 같은 항목들을 편집가능하다.
  • ObjectName : 알아보기 쉬우면서 중복되지 않게 지정한다.
    에디터 모드에서 프로그램을 편집할 때 사용되며 Widget Names에서확인할 수 있다.
  • Geometry : 위젯의 위치/위젯 폭, 높이 지정
  • Font : 위젯에 나타나는 텍스트의 특성 지정
  • Foreground/Background : RGB 형식으로 색상 지정
    % 특성 창에서 색상을 지정하면 좀 이상하게 동작하는 것 같다. mask에서 항목을 선택하여 직접 편집하는 것이 속 편할때가 많다.
  • TooTip : pvbrowser에서 마우스 포인트가 위에 있을때 나타나는 텍스트
  • Whats This :
  • Text :
  • MinSize/MaxSize : pvbrowser 창이 최소 혹은 최대가 될 때 위젯을 표시하는 크기
그림 12. 위젯 선택 창

위젯 삽입을 누르면 그림 12와 같은 다이얼로그 창이 나타난다. Qt Creator Form Editor와 동일하게 기본적인 Qt Widget(Push Button, Radio Button, CheckBox, Label, LineEdit,...)을 사용할 수 있을 뿐 아니라 Qwt Widget(QwtPlot, QwtKnob,...)도 사용할 수 있다.

그림 11.  Layout 편집 창

Edit Layout을 누르면 그림 13와 같은 다이얼로그 창이 나타난다. 이 창에서 GUI 화면에 배치된 위젯의 배치를 상세하게 조절할 수 있다.다이얼로그 왼쪽 편이 실제 편집 창이다. 오른쪽은 이런 식으로 사용하면 된다는 예제 화면이다. 예제 화면을 보고 돌아가지 않는 짱구를 굴려보면 답이 나온다. ...OTL...
 위젯이 몇개 되지 않는 경우 매우 쉽게 사용할 수 있다. 복잡한 배치도 이 창에서 충분한 주의를 기울이면 편집할 수 있다. 어찌보면 복잡하기보다는 헷갈린다. 메모지를 옆에 두고 그림을 그려가며 사용하는 것이 신상에 이롭다.
Qt Creator에서 만든 것을 가져올 수도 있다고 하는데( pvb.en 메뉴얼 참조)...OTL...


순서가 다소 틀린것 같지만 메뉴에서 선택 가능한 항목들도 살펴보자.

그림 12. Action

Action 탭을 선택하면 그림 12와 같은 팝업이 열린다.
이 팝업을이용하면 에디터/디자이너 창전환, 디자인 UI 파일을 내보내거나, 읽어들일 수 있을 뿐만 아니라 Qt-Desigener를 이용하여 UI 파일을 디자인 할 수 있다.
이 팝업 창에서 가장 중유한 부분은 Insert Mask, Make, StartServer 항목이다.
  • Insert Mask
    Mask 즉 새로운 UI 를 추가할 때 사용한다.
  • Make
    서버 프로그램을 make & compile 할 때 사용한다.
  • StartServer
    컴파일이 완료된 서버프로그램을 실행할 때 사용한다.
서버 프로그램을 실행하기 위해서는 편집이 완료된 후 Make, StartServer 순서로 수행하면 된다. StartSever 만 눌러주어도 컴파일이 되지 않은 경우 자동으로 컴파일 한 후 서버 프로그램을 실행한다. 서버 프로그램이 실행되면 pvbrowser를 선택하자. pvbrowser에서 서버 프로그램의 정상 작동 유무를 바로 확인 할 수 있다.
Make 버튼을 누르면 윈도우 커맨드 창이 나타나며 컴파일이 진행사항이 나타난다. 컴파일시 에러가 발생하면 이 창에서 확인 할 수 있다. 에러가 나타난 위치를 확인한 후 조치를 취한 후 다시 컴파일하여 에러가 발생하지 않도록 하여야 한다. 경고가 발생한 경우도 확인이 가능하다. 

그림 13.RLib
RLib 탭을 선택하면 그림 13과 같은 팝업 창이 나타난다. 새로운 서버프로그램을 만든 경우 위에 표기된 모든 라이버리들이 include 항목에 포함되어 있다. 모듈 탭에서 Header 파일을 선택하면 아래와 같은 코드를볼수 있다.



modubs, siemens, ppi 관련 Include 앞에 주석처리가 되어 있는 것을 볼 수 있다. RLib탭에서 사용하고자하는 항목을 선택하면 자동으로 주석을 제거하여 준다. 주석을 다시 넣고 싶으면 헤더 파일에서 일일이 찾아서 수정해 주어야 한다.
Uncomment rllib
Uncomment modbus
Uncomment Siemens TCP
Uncomment ppi

Daemon 탭을 선택하면 그림 14와 같은 팝업 창이 나타난다. 서버에서 데이터 수집을 위해 사용할 통신 데몬을 선택할 수 있다.

그림 14.Daemon
사용하고자 하는방식을 선택하면 데몬 설정 파일이 나타난다.

그림 15. MODBUS 데몬 설정화면

그림 16. SIMENSE 데몬설정화면
그림 17.PPI 설정화면
필요한 통신 데몬을 선택, 설정한 후 컴파일 버튼을 누르면 현재 작업 프로젝트 폴더에 실행파일이 생성된다. modbus 데몬을 선택한 경우 modbusdaemon.exe 파일이 생성된다. 실행파일 이외에 소스, 헤더 파일도 동일하게 생성된다.
siemense 데몬은 siemens PLC에 특화된 통신 모드이며 PPI는 아직 모르겠다. 사용하지 않으니 관심도 생기지 않는 것 같다.
개인적으로 가장 많이 사용하는 것은 모드버스 데몬...
모드버스 데몬 파일의 자세한 설정 방법은 다음 기회에...

그림 18.pvdevelop HELP
그림 18은 pvdevelop 헬프 다이얼로그 창이다. 이 창을 이용하면 기본적인 라이브러리에 대한 설명을 찾아 볼수 있다. pvdevelop를 이용하여 서버 프로그램을 작성할 경우 자주 이용하는 것이 신상에 이롭다.

이상으로 pvdevelop 프로그램을 사용할 때 가장 기본적인 창들에 대해 알아보았다. 깊숙하게 설명할 실력이 되지 않아 생각나는데로 나열하고 두서없이 기술한 점 이해해 주기 바란다.



댓글 없음:

댓글 쓰기