專案物件
此物件用於定義專案小工具。專案小工具用於擷取關於專案的資料,例如標記、警報、配方、排程、標記等。專案只有一個小工具,可透過專案變數引用。
專案物件屬性
在專案級設定的屬性。
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 運算式。
範例:
|
|||||||||
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);