專案物件

此物件用於定義專案小工具。專案小工具用於擷取關於專案的資料,例如標記、警報、配方、排程、標記等。專案只有一個小工具,可透過專案變數引用。

專案物件屬性

在專案級設定的屬性。

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)

如果給定 tagName 的索引值為 -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

啟用強制寫入標記的布林值,函數將等待值被寫入之後再傳回。預設值 = 假。

傳回值

當強制寫入為真時用於指示動作是否成功的整數值。0 表示成功,-1 表示失敗。如果強制寫入為假,則傳回到值不確定。

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

真 = 只允許一個執行個體,假 = 允許多個執行個體

請注意,路徑名的語法取決於原生作業系統格式(請參閱"HMI 裝置功能")。

Linux 裝置上,路徑名的語法需要斜杠字元(甚至允許使用雙斜杠字元)。

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

getClientType

string getClientType()

傳回用戶端類型

用戶端類型 描述
local 在 HMI 裝置上運行
remote HMI Client 用戶端上運行
web 在 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

專案物件小工具

獲取目前頁面名稱

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 指定的圖形報告。

參數 描述
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);