项目对象

该对象定义了项目控件。项目控件用于检索关于项目的数据,例如标签、报警、配方、计划等等。项目只有一个控件,可以通过项目变量引用。

项目对象属性

在项目级别设置的属性。

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

(可选参数)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);