项目对象
该对象定义了项目控件。项目控件用于检索关于项目的数据,例如标签、报警、配方、计划等等。项目只有一个控件,可以通过项目变量引用。
项目对象属性
在项目级别设置的属性。
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)
如果指定标签名称的索引值是 -1,会返回标签值或完整的数组。
参数 | 说明 |
---|---|
tagName | 标签名称 |
state | 要填入的状态元素 |
index | 如果标签是数组类型,则建立索引。-1 返回完整数组。默认 = 0。 |
callback |
如果需要异步读取,则是函数名称。默认 = “". |
forceRefresh |
(可选参数)true=Runtime 将直接从设备读取标签的一个更新值。默认值为 FALSE。 |
返回值
标签值返回。如果标签是数组类型,索引=-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 |
启动标签强制写入布尔值,该函数在返回前等待该值写入。默认 = false。 |
返回值
整数值表示成功,当强制写入为 true 时,动作失败。0意思是成功,-1意思是失败。如果强制写入是 false,返回值将会是未定义的。
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
void project.selectAllAlarms(bool selected)
选择/未选择所有报警
project.selectAllAlarms(true)
(可在网页上使用)
ackAlarms
void project.ackAlarms()
确认所有选择的报警
project.selectAllAlarms(true);
project.ackAlarms();
project.selectAllAlarms(false);
(可在网页上使用)
resetAlarms
void project.resetAlarms()
复位所有选择的报警
project.selectAllAlarms(true);
project.resetAlarms();
project.selectAllAlarms(false);
(可在网页上使用)
enableAlarms
void 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 |
true=仅允许单一示例,false=允许多个示例 |
请注意,路径名的语法取决于本机 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 | 在 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 | 错误:Runtime 连接中断。 |
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)
如果页面存在,返回 true,否则返回 false
// 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 |
True = 无声模式已启用。无打印机设置对话框显示。 |
project.printGfxReport("Report Graphics 1", true);
emptyPrintQueue
void emptyPrintQueue()
清空打印队列。当前任务不会取消。
project.emptyPrintQueue();
pausePrinting
void pausePrinting();
中止打印操作。将不会中止已经发送到打印机的页面打印。
project.pausePrinting();
resumePrinting
void resumePrinting();
继续先前暂停的打印。
project.resumePrinting();
abortPrinting
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);