프로젝트 개체

이 개체는 프로젝트 위젯을 정의합니다. 프로젝트 위젯은 프로젝트에 대한 태그, 알람, 레시피, 스케줄 등과 같은 데이터를 검색하는 데 사용됩니다. 프로젝트를 위한 위젯은 하나만 있으며 프로젝트 변수를 통해 참조할 수 있습니다.

프로젝트 개체 특성

프로젝트 레벨에서 설정할 특성.

startPage

string startPage

프로젝트가 시작될 때 표시되는 페이지.

var startPage = project.startPage;

project.startPage = "Page2.jmx";

프로젝트 개체 방법

프로젝트 레벨에서 사용할 방법.

nextPage

void nextPage()

이 스크립트는 다음 페이지 조치를 집행합니다.

project.nextPage();

(웹페이지에서 사용 가능)

prevPage

void prevPage()

이 스크립트는 이전 페이지 조치를 집행합니다.

project.prevPage();

(웹페이지에서 사용 가능)

lastVisitedPage

void lastVisitedPage()

이 스크립트는 마지막 방문 페이지 조치를 집행합니다.

project.lastVisitedPage();

(웹페이지에서 사용 가능)

homepage

void homePage()

이 스크립트는 홈 페이지 조치를 집행합니다.

project.homePage();

(웹페이지에서 사용 가능)

loadPage

void loadPage(pageName)

이 스크립트는 스크립트에 규정된 설정 페이지 로드를 집행합니다.

project.loadPage("Page5.jmx");

(웹페이지에서 사용 가능)

경고: 페이지가 바뀌면 모든 활성 시간 이벤트가 강제로 제거되고 JavaScript 절차가 끝까지 실행된 후에 새 페이지로 전환됩니다.

showDialog

void showDialog(pageName)

이 스크립트는 대화상자 페이지 표시를 집행합니다.

project.showDialog("Dialog.jmx");

(웹페이지에서 사용 가능)

closeDialog

void closeDialog()

이 스크립트는 현재 열려 있는 대화상자 페이지 닫기를 집행합니다.

project.closeDialog();

(웹페이지에서 사용 가능)

showMessage

void showMessage( message )

이 스크립트는 메시지 팝업 표시를 집행합니다.

project.showMessage("Hi This is test message");

(웹페이지에서 사용 가능)

getGroup

number getGroup( groupName, groupInstance, [callback] )

빠른 읽기 방법; 그룹의 모드 태그의 값들을 가져옵니다.

파라미터 설명
groupName

그룹의 명칭이 들어있는 문자열.

복수의 그룹으로부터 태그 리스트를 받기 위한 and/or 식이 지원됩니다.

  | OR 연산자
  & AND 연산자
  (...) 식을 어떻게 평가할지를 괄호를 사용해 규정할 수 있습니다

예:

  • project.getGroup("one", group);
  • project.getGroup("(one|two)", group);
  • project.getGroup("((one&two)*three)", group);
groupInstance 채울 그룹 요소
callback 그룹이 준비될 때 호출할 함수의 명칭이 들어있는 문자열

반환값

다음 상태의 수치: 성공은 1, 실패는 0.

var group = new Group();

var status = project.getGroup ("enginesettings", group);

if (status == 1) {

var value = group.getTag("Tag1");

if (value!=undefined) {

// do something with the value

}

}

var g = new Group();

var status = project.getGroup ("enginesettings", g,

function (groupName, group) { fnGroupReady(groupName, group);} );

 

function fnGroupReady(groupName, group) {

var val = group.getTag("Tag1");

if (val!=undefined) {

// do something with the value

}

}

(웹페이지에서 사용 가능)

getTag

object getTag( tagName, state, index, forceRefresh)

void getTag( tagName, state, index, callback, forceRefresh)

태그 값을 반환하거나 지수값이 주어진 태그 명칭의 -1인 경우 전체 배열을 반환합니다.

파라미터 설명
tagName 태그 명칭 문자열
state 채울 상태 요소
index 태그가 배열 타입에 속한 경우의 지수. -1은 전체 배열을 반환합니다. 기본값 = 0.
callback

  비동기 판독이 요구되는 경우의 함수 명칭. 기본값 = “".

forceRefresh

(옵션 파라미터) 참 = 런타임이 직접 기기로부터 업데이트된 태그 값을 읽습니다. 기본값은 거짓입니다.

반환값

태그 값이 반환됩니다. 태그가 배열 타입이고 지수가 = -1인 경우에는 전체 배열이 반환됩니다. 비배열 태그의 경우 지수를 0으로 제공합니다.

var state = new State();

var value = project.getTag("Tag1", state, 0);

//

//for non array type

//tags index is not considered, so can be left as 0

//

if (value!=undefined) {

//...do something with s

}

var state = new State();

project.getTag("Tag1", state, -1,

function(tagName, tagState) { fnTagReady(tagName, tagState); });

function fnTagReady(tagName, tagState) {

if (tagName=="Tag1") {

var myValue = tagState.getValue();

}

}

(웹페이지에서 사용 가능)

setTag

number setTag( tagName, tagValue, [index], [forceWrite] )

프로젝트에서 주어진 태그를 설정합니다. 명칭과 값은 문자열로 되어 있습니다.

파라미터 설명
tagName 태그 명칭 문자열
tagValue 쓸 값이 포함된 개체
index 태그가 배열 타입에 속한 경우의 지수. -1은 전체 배열을 통과시킵니다. 기본값 = 0.
forceWrite

태그를 강제로 쓸 수 있게 하기 위한 부울값, 이 함수는 값이 씌어지기를 기다린 후에 돌아옵니다. 기본값 = 거짓.

반환값

forceWrite가 참인 경우 조치의 성공과 실패를 표시하기 위한 정수값. 0은 성공을 의미하고 -1은 실패를 의미합니다. forceWrite가 거짓인 경우, 반환값은 미정입니다.

var val = [1,2,3,4,5];

var status = project.setTag("Tag1", val, -1, true);

if (status == 0) {

// Success

} else {

// Failure

}

var val = "value";

project.setTag("Tag1", val);

(웹페이지에서 사용 가능)

updateSystemVariables

void project.updateSystemVariables()

시스템 변수 새로 고침 강제.

project.updateSystemVariables()

selectAllAlarms

무효 project.selectAllAlarms(bool selected)

모든 알람 선택/해제

project.selectAllAlarms(true)

(웹페이지에서 사용 가능)

ackAlarms

무효 project.ackAlarms()

선택된 알람 모두 인지

project.selectAllAlarms(true);

project.ackAlarms();

project.selectAllAlarms(false);

(웹페이지에서 사용 가능)

resetAlarms

무효 project.resetAlarms()

선택된 알람 모두 리셋

project.selectAllAlarms(true);

project.resetAlarms();

project.selectAllAlarms(false);

(웹페이지에서 사용 가능)

enableAlarms

무효 project.enableAlarms()

선택된 알람 모두 활성화

project.selectAllAlarms(true);

project.enableAlarms();

project.selectAllAlarms(false);

(웹페이지에서 사용 가능)

getRecipeItem

object getRecipeItem (recipeName, recipeSet, recipeElement)

주어진 레시피 설정 요소의 값을 받습니다.

파라미터 설명
recipeName 레시피 명칭을 나타내는 문자열
recipeSet 레시피 세트를 나타내는 문자열로서, 레시피 세트 명칭 또는 0 기반 세트 지수일 수 있음.
recipeElement 레시피 요소를 나타내는 문자열로서, 레시피 명칭 또는 0 기반 요소 지수일 수 있음.

반환값

레시피 값을 가진 개체. 무효인 경우 미정이 반환됩니다. 배열 타입에 속한 경우, 배열 개체 타입이 반환됩니다.

var value = project.getRecipeItem("recipeName", "Set", "Element");

setRecipeItem

number setRecipeItem (recipeName, recipeSet, recipeElement, value )

주어진 레시피 설정 요소의 값을 받습니다.

파라미터 설명
recipeName 레시피 명칭을 나타내는 문자열
recipeSet 레시피 세트를 나타내는 문자열로서, 레시피 세트 명칭 또는 0 기반 세트 지수일 수 있음.
recipeElement 레시피 요소를 나타내는 문자열로서, 레시피 명칭 또는 0 기반 요소 지수일 수 있음.
value 레시피에 저장할 값을 포함한 개체. 배열 타입일 수 있음.

반환값

조치의 성공과 실패를 표시하기 위한 정수값. ‘0’은 성공을 의미하고 ‘-1’은 실패를 의미합니다.

var val = [2,3,4];

project.setRecipeItem("recipeName", "Set", "Element", val);

if (status == 0) {

// Success

} else {

// Failure

}

downloadRecipe

void downloadRecipe (recipeName, recipeSet )

레시피 세트를 해당 태그에 다운로드합니다.

파라미터 설명
recipeName 레시피 명칭을 나타내는 문자열
recipeSet 레시피 세트를 나타내는 문자열로서, 레시피 세트 명칭 또는 0 기반 세트 지수일 수 있음.

project.downloadRecipe("recipeName", "Set");

uploadRecipe

void uploadRecipe (recipeName, recipeSet )

태그 값을 제공된 레시피 세트에 업로드합니다.

파라미터 설명
recipeName 레시피 명칭을 나타내는 문자열
recipeSet 레시피 세트를 나타내는 문자열로서, 레시피 세트 명칭 또는 0 기반 세트 지수일 수 있음.

project.uploadRecipe("recipeName", "Set");

launchApp

void launchApp( appName, appPath, arguments, singleInstance)

외부 애플리케이션을 집행합니다.

파라미터 설명
appName 애플리케이션 명칭이 포함된 문자열
appPath 애플리케이션 절대 경로가 포함된 문자열
Arguments 애플리케이션으로 보낼 인수가 포함된 문자열
singleInstance

참 = 단일 인스턴스만 허용됨, 거짓 = 복수의 인스턴스가 허용됨

경로 명칭의 구문은 네이티브 OS 형식에 의존합니다("HMI 기기 능력" 참조).

Linux 기기의 경우, 경로 명칭의 구문은 슬래시 문자를 필요로 합니다(더블 슬래시 문자도 허용됨).

project.launchApp("pdfViewer","/mnt/data/hmi/qthmi/deploy","/mnt/usbmemory/test.pdf","true");

getClientType

string getClientType()

클라이언트 타입 반환

클라이언트 타입 설명
local HMI 기기에서 실행
remote HMI Client 클라이언트에서 실행
web 웹 클라이언트에서 실행
var clientType = project.getClientType();
if (clientType=="web") {
	// Currently running on web client
} else  if (clientType=="remote") {
	// Currently running on HMI Client
} else  if (clientType=="local")  {
	// Currently running on HMI Device
}		

(웹페이지에서 사용 가능)

로그인

int project.login("username", "password")

주어진 자격 증명으로 시스템에 액세스

var ReplyCode;
ReplyCode = project.login("admin", "admin");
if (ReplyCode != 0) {
    alert("Access denied");
}	
반환값
0 오류 없음
1 오류: 권한 없음.
2 오류: 런타임시 접속 끊김.
3 오류: 입력한 사용자 이름 또는 암호가 틀림
4 오류: 입력한 암호가 틀림
5 오류: 조치를 집행할 수 없음
6 오류: 암호가 일치하지 않음
7 오류: 암호 길이가 너무 짧음
8 오류: 암호에는 숫자가 포함되어야 합니다
9 오류: 암호에는 특수 문자가 포함되어야 합니다
10 오류: 암호는 이전 암호와 달라야 합니다
11 오류: 사용자가 이미 존재합니다
12 오류: 암호는 비워둘 수 없습니다
13 오류: 암호가 만료되었습니다
14 경고: 곧 암호가 만료됩니다
logout

project.logout(AllowDefaultUser)

시스템 나가기

project.logout();       // Logout even from default user				
project.logout(true);   // Logout even from default user
project.logout(false);  // Logout only if not logged as default user

프로젝트 개체 위젯

getCurrentPageName

string getCurrentPageName()

현재 활성 페이지의 명칭을 반환합니다

// Get PageMgr widget
var pageMgr = project.getWidget( "_PageMgr" );

// Show Current Page
var currentPageName = pageMgr.getCurrentPageName();
project.showMessage( "Current active page is: " + currentPageName );						

(웹페이지에서 사용 가능)

hasPage

boolean hasPage(string pageName)

페이지가 존재하는 경우 참을, 그렇지 않으면 거짓을 반환함

// Get PageMgr widget
var pageMgr = project.getWidget( "_PageMgr" );

//Page exists
var pageExists = pageMgr.hasPage( "Page10" );
if (pageExists) {
    project.showMessage( "Page10 exists" );
} else {
    project.showMessage( "Hei Page10 not exists!" );
}							

(웹페이지에서 사용 가능)

curLangCode

string curLangCode

MultiLangMgr 위젯의 특성. 활성 언어의 코드를 포함합니다.

// Get MultiLangMgr widget
var MultiLangMgr = project.getWidget( "_MultiLangMgr" );

// Show curLangCode
var curLangCode = MultiLangMgr.curLangCode;
project.showMessage( "Current active language is: " + curLangCode );		

보고서 개체 인쇄

printGfxReport

void printGfxReport( reportName, silentMode)

보고서 명칭에 의해 지정된 그래픽 보고서를 인쇄합니다.

파라미터 설명
reportName 보고서 명칭이 포함된 문자열
silentMode

참 = 묵음 모드 활성화. 프린터 설정 대화상자가 표시되지 않습니다.

project.printGfxReport("Report Graphics 1", true);

emptyPrintQueue

void emptyPrintQueue()

인쇄 대기열을 비웁니다. 현재의 작업은 중단되지 않습니다.

project.emptyPrintQueue();

pausePrinting

void pausePrinting();

인쇄 작업을 정지합니다. 이미 프린터로 보낸 페이지의 인쇄는 정지하지 않습니다.

project.pausePrinting();

resumePrinting

void resumePrinting();

이전에 정지된 인쇄를 재개합니다.

project.resumePrinting();

인쇄 취소

void abortPrinting();

현재의 인쇄 작업을 중단하고 대기열의 그 다음 인쇄 작업을 진행합니다. 이 명령이 이미 프린터로 보낸 페이지의 인쇄는 중단하지 않습니다.

project.abortPrinting();

printStatus

project.printStatus;

현재의 인쇄 상태를 나타내는 문자열을 반환합니다.

상태 문자열 설명
error 인쇄중 오류가 발생했습니다
printing 진행중 인쇄
idle 시스템이 새 작업을 받을 준비가 되어 있습니다
paused 인쇄가 정지되었습니다

var status = project.printStatus;

project.setTag("PrintStatus",status);

printGfxJobQueueSize

project.printGfxJobQueueSize;

인쇄 대기 중인 그래픽 보고서의 수를 반환합니다.

var gfxqueuesize = project.printGfxJobQueueSize;

project.setTag("printGfxJobQueueSize",gfxqueuesize);

printTextJobQueueSize

project.printTextJobQueueSize;

인쇄 대기 중인 텍스트 보고서의 수를 반환합니다.

var textjobqueuesize = project.printTextJobQueueSize;

project.setTag("printTextJobQueueSize",textjobqueuesize);

printCurrentJob

project.printCurrentJob;

현재 인쇄 중인 작업을 나타내는 문자열을 반환합니다

var currentjob = project.printCurrentJob;

project.setTag("printCurrentJob",currentjob);

printActualRAMUsage

project.printActualRAMUsage;

인쇄 대기열을 위한 RAM 사용 추정을 반환합니다

var myVar = project.printActualRAMUsage;

alert(" actual ram usage is   "+ myVar);

printRAMQuota

project.printRAMQuota;

인쇄 대기열을 위한 최대 허용 RAM 사용량을 반환합니다

var ramquota = project.printRAMQuota;

project.setTag("printRAMQuota",ramquota);

printActualDiskUsage

project.printActualDiskUsage;

스풀 폴더 디스크 사용량을 반환합니다(PDF 인쇄용)

var myVar1 = project.printActualDiskUsage;

alert(" actual disk usage is   "+ myVar1);

printDiskQuota

project.printDiskQuota;

스풀 폴더의 최대 허용 사이즈를 반환합니다(PDF 인쇄용).

var ramquota = project.printRAMQuota;

var diskquota = project.printDiskQuota;

printSpoolFolder

project.printSpoolFolder;

현재의 스풀 폴더 경로를 반환합니다(PDF 인쇄용).

var spoolfolder = project.printSpoolFolder;

project.setTag("printSpoolFolder",spoolfolder);

printPercentage

project.printPercentage;

현재 작업 완료 퍼센트를 반환합니다(다페이지 그래픽 보고서의 경우에만 의미 있음)

var percentage = project.printPercentage;

project.setTag("printPercentage",percentage);