canvasManager는 캔버스 도면을 관리하는 관리자입니다. 주요 기능은 캔버스 열기입니다.
Methods
리턴 값
|
함 수
|
설 명
|
canvas
|
activeCanvas()
|
현재 활성화된 캔버스 개체를 얻어옵니다.
|
|
close()
|
현재 활성화된 캔버스를 닫습니다.
|
canvas
|
open( filename )
|
캔버스를 열 때 사용합니다. 캔버스가 이미 열려 있다면 열려 있는 캔버스를 활성화합니다.
|
canvas
|
open( filename, replacePointNames )
|
캔버스를 열 때 캔버스에 데이터 링크된 포인트의 이름을 변경합니다.
|
canvas
|
open( filecanvasManagername, replacePointNames , properties )
|
캔버스를 열 때 캔버스에 데이터 링크된 포인트의 이름을 변경하고 외부 데이터를 새 캔버스에 전달합니다.
|
|
openSessionCanvas( session, filename, str )
|
한 PC에서 여러 HMI가 실행 중일 때, 한 HMI에서 다른 HMI에 화면을 띄우고자 할 때 사용합니다.
|
canvas activeCanvas()
|
현재 활성화된 캔버스 개체를 얻어옵니다.
예)
# 현재 활성화된 캔버스 개체를 얻어옵니다.
canvasManager_OBJ = canvasManager.activeCanvas();
|
|
|
close()
|
현재 활성화된 캔버스를 닫습니다.
예)
# 현재 활성화된 캔버스를 닫습니다.
canvasManager.close();
|
|
|
스크립트 close를 이용한 캔버스 창 닫기 결과 화면입니다.
|

|
|
|
canvas open( name:캔버스 명 )
|
캔버스를 열 때 사용합니다. 이미 캔버스가 열려있다면 기존 캔버스를 활성화합니다.
- name에는 확장자 '.pws'를 포함한 캔버스 명을 문자열로 입력합니다.
- 캔버스가 프로젝트 폴더에 있을 경우 : 파일명만 입력
- 캔버스가 프로젝트 폴더에 없을 경우 : 전체 경로를 포함한 파일명 입력
- canvas 개체를 이용해 canvas에 속한 함수를 사용할 수 있습니다.
예)
# 프로젝트 폴더 내의 캔버스를 엽니다.
canvas_OBJ = canvasManager.open('MainCanvas.pws');
# 프로젝트 폴더에 없는 캔버스를 열 경우 전체 경로를 포함한 파일명을 입력하여 캔버스를 엽니다.
canvas_OBJ = canvasManager.open('C:/Project/MainCanvas.pws');
|
|
|
스크립트 open을 이용한 캔버스 열기 결과 화면입니다.
|

|
|
|
canvas open( name:캔버스 명, replacePointNames:변경할 이름 목록 )
|
캔버스를 열 때 캔버스에 데이터 링크된 포인트의 이름을 변경합니다.
- name에는 확장자 '.pws'를 포함한 캔버스 명을 문자열로 입력합니다.
- 캔버스가 프로젝트 폴더에 있을 경우 : 파일명만 입력
- 캔버스가 프로젝트 폴더에 없을 경우 : 전체 경로를 포함한 파일명 입력
- replacePointNames에는 기존 이름과 변경할 이름을 리스트로 입력합니다.
예) 데이터 링크에 입력된 $1과 $2를 각각 스테이션1, 분기#2로 변경할 경우 : ['$1:스테이션1', '$2:분기#2']
예)
# data 변수를 리스트 형태로 선언합니다.
data = list();
# '$1'을 '충전기 1'으로 변경합니다.
data.append('$1:충전기 1');
# '$2'을 '충전 전력량'으로 변경합니다.
data.append('$2:충전 전력량');
# '충전기장비상태_DC.pws' 캔버스를 열 때 데이터 링크에 입력된 '$1'와 '$2'를 각각 '충전기 1', '충전 전력량'으로 변경합니다.
canvasManager_OBJ = canvasManager.open('충전기장비상태_DC.pws', data);
|
캔버스에 사용자 임의로 정한 포인트 명으로 데이터 링크를 설정한 후 실제 포인트 명으로 변경하는 방법입니다.
1) '충전기장비상태_DC.pws' 캔버스에 '$1.$2' 로 데이터 링크를 설정합니다.

2) '충전기장비상태_DC.pws' 캔버스를 열 때 아래와 같이 스크립트를 작성하여 1)번에서 데이터 링크 설정한 '$1'와 '$2'를 각각 는 '충전기 1', '충전 전력량'으로 변경합니다.

|
canvas open( name:캔버스 명, replacePointNames: 변경할 이름 목록 , properties : 새로 열 캔버스에 전달할 데이터)
|
캔버스를 열 때 캔버스에 데이터 링크에 설정된 텍스트 이름을 변경하고 새 캔버스에서 필요한 데이터를 전달합니다.
- name : 확장자 '.pws'를 포함한 캔버스 명을 문자열로 입력합니다.
- 캔버스가 프로젝트 폴더에 있을 경우 : 파일명만 입력
- 캔버스가 프로젝트 폴더에 없을 경우 : 전체 경로를 포함한 파일명 입력
- replacePointNames : 기존 이름과 변경할 이름을 리스트로 입력합니다.
예) 데이터 링크에 입력된 '$1 -> 스테이션1'로 변경 하고 '$2 -> 분기#2' 로 변경할 경우 : ['$1:스테이션1', '$2:분기#2']
- properties : 새 캔버스에 전달할 데이터를 dict 형식으로 설정합니다.
예) par = {
'par1' : 123 ,
'par2' : 456
}
전달 받은 캔버스는 canvas.getProperty('par1') 과 같이 getProperty 함수를 호출해 전달받은 속성값을 읽을수 있습니다.
예) 버튼을 눌렀을 때 '팝업.pws' 캔버스를 열면서 새로 열리는 캔버스에 파라미터를 함께 전달합니다.

#팝업 캔버스를 열때 전달할 파라미터를 설정합니다.
par = { 'loc':'옥상' , 'name' : '계전기 #1'}
#팝업 캔버스를 엽니다.
canvasManager.open('팝업.pws',() , par)
|
예) 새로 열리는 캔버스에는 전달 받은 값을 읽어 화면에 데이터를 표시 합니다.

#전달받은 파라미터를 화면에 설정 합니다.
name = canvas.getObject('name')
name.setProperty('FaceText' , canvas.getProperty('name') )
loc = canvas.getObject('loc')
loc.setProperty('FaceText' , canvas.getProperty('loc') )
|
실행 결과) 버튼을 클릭했을 때 전달한 파라미터 값을 새 캔버스에서 읽어 화면에 표시 합니다.

|
|
openSessionCanvas( session:HMI 번호, filename:캔버스명 )
|
한 PC에서 다수의 모니터에 HMI를 실행할 때 한 HMI에서 다른 HMI의 화면을 띄우도록 합니다.
- session은 HMI 번호를 의미합니다.
- HMI 번호를 등록하는 방법은 다음과 같습니다.
- 파워씬 프로그램의 바로 가기 아이콘을 만듭니다.
- 바로 가기 아이콘의 속성을 클릭한 후 '바로가기' 탭으로 이동합니다.
- '바로가기' 탭의 대상에서 PowerScene.exe 끝에 '-s HMI번호'를 추가합니다.
예)
# 1번 HMI에 'MainCanvas.pws' 캔버스를 띄웁니다.
canvasManager.openSessionCanvas(1, ‘MainCanvas.pws’);
|
|
|
파워씬 바로 가기 아이콘을 만들기입니다.
|

|
|
HMI 번호 기입 예시 입니다.
|

|
|
변경할 HMI와 함께 HMI 프로그램 실행 예시입니다.
|

|
|
다른 HMI의 화면을 변경한 화면입니다.
|

|
|
|