组态王命令语言函数手册

更新时间:2023-03-08 06:35:19 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

组态王命令语言函数速查手册 1

命令语言函数速查手册 

 

“组态王”支持使用内建的复杂函数,其中包括字符串函数、数学函数、系统函数、控件函数及其他函数,下面依次介绍各个函数(函数名不区分大小写,按字母排序):  

Abs 

此函数用于计算变量值的绝对值,使用格式如下: 

Abs(数值或变量名); 返回值:整值或实型值; 例如: 

Abs(14);  返回值为14 Abs(-7.5); 返回值为7.5 

Abs(距离); 返回内存模拟变量“距离”的绝对值。 

 

Ack 

此函数常和按钮连接,当发生报警时,用此函数进行报警确认,它将产生确认报警事件。调用格式: 

Ack(报警组名);  或  Ack(变量名); 例如: 

Ack(全厂);  或   Ack(反应罐液位); 

 

ActivateApp 

此函数用于激活正在运行的窗口应用程序,使之获得输入焦点。该函数主要用于配合函数SendKeys的使用。调用形式: 

ActivateApp(AppName); 

参数      描述 AppName   应用程序的执行文件名 例如: 

激活Microsoft Word的正确调用为: ActivateApp("Word.exe");  

北京亚控自动化软件科技有限公司

2 组态王命令语言函数速查手册

& 激活组态王: 可使用ActivateApp(\;   

ArcCos 

此函数用于计算变量值的反余弦值, 变量值的取值范围在[-1,1]之间,否则函数返回值无效。调用格式: 

ArcCos(变量名); 返回值:整值或实型值; 例如: 

ArcCos(1); 此函数返回值为0 

ArcCos(temp); 此函数返回变量“temp”的反余弦值 

 

ArcSin 

此函数用于计算变量值的反正弦值, 变量值的取值范围在[-1,1]之间,否则函数返回值无效。调用格式: 

ArcSin(变量值); 返回值:整值或实型值; 例如: 

ArcSin(1); 此函数返回值为90 

ArcSin(temp); 此函数返回变量“temp”的反正弦值 

 

ArcTan 

此函数用于计算变量值的反正切值, 使用格式为: 

ArcTan(变量值); 返回值:整值或实型值; 例如: 

ArcTan(1); 此函数返回值为45 

ArcTan (temp); 此函数返回变量“temp”的反正切值 

 

Bit 

此函数用以取得一个整型或实型变量某一位的值(0或1)。用法: 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 3

 OnOff=Bit( Var , bitNo) OnOff:离散变量 Var:整型或实型变量 

bitNo:位的序号,取值1至16 

返回值:若变量Var的第bitNo位为0,返回值OnOff为0;  若变量Var的第bitNo位为1,返回值OnOff为1; 例如: 

开关=Bit(DDE1,6);  从变量DDE1的第6位得到变量“开关”状态。 

 

BitSet 

此函数将一个整型或实型变量的任一位置为指定值(0或1)。用法: 

 BitSet( Var, bitNo, OnOff) Var:整型或实型变量 

bitNo:位的序号,取值1至16 OnOff:位的设定值 例如如:  

 BitSet(DDE1,6,0);  将变量DDE1的第6位置为0。 

 

ChangePassword 

此函数显示“更改口令”对话框,允许登录工程人员更改他们的口令。使用格式: 

ChangePassword(); 例如: 

为画面上某一按钮设置命令语言连接: ChangePassword( ); 

运行时单击此按钮,弹出对话框:  

北京亚控自动化软件科技有限公司

4 组态王命令语言函数速查手册

         

提示工程人员输入当前的口令和新口令以及验证新口令。完全正确后,工程人员的口令设置为新值。 

 

chartAdd() 

此函数用于在指定的棒图控件中增加一个新的条形图。 语法格式使用如下: 

chartAdd( "ControlName", Value, "label" ); 参数说明: 

ControlName:工程人员定义的棒图控件名称,可以为中文名或英文名。 

Value:设定条形图的初始值,整形数据, 实型数据。 

label:设定条形图的标签值,默认值=索引值Index,Index的取值范围是1-16。 例如: 

chartAdd( "XYChart", 1, "L6" ); 

此语句将在棒图控件XYChart中增加一个标签为L6的条形图,其初始值为1。 

 

chartClear() 

此函数用于在指定的棒图控件中清除所有的棒形图。 语法格式使用如下: 

chartClear( "ControlName" ); 参数说明: 

ControlName:工程人员定义的棒图控件名称,可以为中文名或英文名。 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 5

例如: 

chartClear( "XYChart" ); 

此语句把棒图控件XYChart中的所有棒图清除。 

 

chartSetBarColor() 

此函数用于在指定的棒图控件中设置饼图的颜色。条形图不可以。 语法格式使用如下: 

chartSetBarColor( "ControlName", barIndex, colorIndex ); 参数说明: 

ControlName:工程人员定义的棒图控件名称,可以为中文名或英文名。 

barIndex:   整型变量,表示条形图索引号,用于设定指定的条形图,其取值范围为1-16。 

colorIndex:  整型变量,表示条形图的颜色索引号,用于设置指定条形图的颜色,其取值范围为1-16,颜色索引号和相应的颜色如下所示。 

颜色索引号 代表颜色   颜色索引号    代表颜色 0    Default    8     Gray 1    Blue     9     Light Blue 2    Green    10     Light Green 3    Cyan        11     Light Cyan 4    Red     12     Light Red 5    Magenta    13     Light Magenta 6    Yellow    14     Light Yellow 7    White    15     Bright White          16     Black 例如: 

chartSetBarColor( "XYChart", 0, 1 ); 

此语句将棒图控件XYChart中第一块饼图的颜色设为blue(即兰色)。 

chartSetBarColor( "XYChart", 2, 4 ); 

此语句将棒图控件XYChart中第三块饼图的颜色设为red(即

北京亚控自动化软件科技有限公司

6 组态王命令语言函数速查手册

红色)。 

chartSetValue() 

此函数用于在指定的棒图控件中设定/修改索引值为Index的条形图的数据。 

语法格式使用如下: 

chartSetValue( "ControlName", Index, Value ); 参数说明: 

ControlName:工程人员定义的棒图控件名称,可以为中文名或英文名。 

Value:设定条形图的数据,整形数据, 实型数据。 Index:条形图的标签值,,Index的取值范围是1-16,组态王自动从0开始加1,给每一个新增加的条形图由小到大设定标签值。 例如: 

chartSetValue( "XYChart",2, 30); 

此语句将在棒图控件XYChart中设定索引值为2(第三条)的条形图的数据为 30。 

 

ClosePicture 

此函数用于将已调入内存的画面关闭,并从内存中删除。调用形式: 

ClosePicture("画面名"); 例如: 

ClosePicture("反应车间");  将关闭画面“反应车间”。 

 

Cos 

此函数用于计算变量值的余弦值, 有效使用格式如下: Cos(数值或变量名); 例如: 

Cos(90);   返回值为0 

Cos(temp); 返回变量“temp”的余弦值。 

DisplayMCI 

此函数提供了一个对多媒体设备的通用接口,具有强大的功能。下面举例说明此函数的使用方法。 例如: 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 7

DisplayMCI(“PLAYCD”,3) 

用于播放CD唱片中的第3支歌曲。  DisplayMCI(“STOPCD”,””) 用于停止播放CD。 DisplayMCI(“PLAYMIDI”,”c:\midi.mid”) 用于播放MIDI格式的背景音乐”c:\midi.mid”。 DisplayMCI(“PAUSEMIDI”,” c:\midi.mid”) 暂停播放MIDI格式的背景音乐”c:\midi.mid”。 DisplayMCI(“RESUMMIDI”,” c:\midi.mid”) 继续播放MIDI格式的背景音乐”c:\midi.mid”。 DisplayMCI(“CLOSEMIDI”,” c:\midi.mid”) 停止播放MIDI格式的背景音乐”c:\midi.mid”。 DisplayMCI(“EJECTCD”) 将光驱中的CD盘片弹出。 

 

Dtext 

此函数用于按离散变量的值动态地改变字符串变量。调用形式: 

Str  =  Dtext(Dis,String1,String2);  

参数 描述 Dis 离散变量名。 String1 字符串变量名 String2 字符串变量名 

当Dis=1时,Str的值为String1 当Dis=0时,Str的值为String2 例如: 

Str  =  Dtext(电源开关,"电源打开","电源关闭"); 当电源开关=1时,Str的值为"电源打开" 当电源开关=0时,Str的值为"电源关闭"。 

EditUsers 

此函数常用于按钮的命令语言连接,功能是在画面程序运行中配置工程人员。调用形式: 

EditUsers( ); 

北京亚控自动化软件科技有限公司

8 组态王命令语言函数速查手册

为配置其他工程人员,当前工程人员的权限必须不小于900。  

Exit( ) 

此函数使组态王运行环境退出。调用形式: 

Exit(Option); 参数: 

Option: 整型变量或数值 0-退出当前程序; 1-关机; 

2-重新启动windows; 

 

Exp 

此函数返回指数函数ex的计算结果,使用格式如下: 

Exp(数值或变量值); 例如: 

Exp(1);     返回e1的计算值2.718 

Exp(temp);  计算e常量的temp次幂并返回计算结果。 

 

FileCopy 

此函数复制一个源文件到目的文件,它与 DOS 的 Copy 命令或者 Windows 文件管理器中的 Copy 功能相似。调用格式: 

FileCopy( SourceFile,DestFile,DoneTag); 

 

参数 

SourceFile DestFile DoneTag 

描述 

源文件名(包含完整的路径)。 

目的文件(包含完整的路径)或目录名(参见下面的例如子)。 

用来报告复制过程进展情况的变量名称。此参数须是一个内存长整数或内存模拟型,随着复制过程的进行, 该值从0变化到100。 

返回值: 

成功返回1; 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 9

不能启动返回0; 出错返回-1; 

例如: 

Status=FileCopy("C:\*.TXT", "C:\BACKUP", Monitor); Status:一个将被写为1、-1或0的整型变量。 Monitor :在数据词典中定义过的内存整数。 

FileCopy()函数在后台执行,这样它不会干扰组态王 的运行。DoneTag 允许此复制操作的进展被应用程序或工程人员监视。用这种方法,在复制过程启动后可能发生的任何错误都能使用察觉(此处用变量Monitor监测)。这与上述返回的 Status 不同,Status 表明的是复制过程是否已成功启动。一旦复制过程已成功启动,Monitor 就会被赋值0。随着复制过程的进行,该值不断增加。当达到100时,此过程成功结束,Status被置为1。若此过程结束前发生错误,则Status被置为-1。 

SourceFile 和 DestFile 一般为文件名。但用FileCopy() 函数复制单一文件时,目标文件名可以是一个目录, 如: 

FileCopy("C:\DATA.TXT", "C:\BACKUP", Monitor); 将把文件“DATA.TXT”复制到“C:\”驱动器上一个叫做“BACKUP”的目录下。变量 Monctor 在复制完成后置为1。 

若 SourceFile 包含任何通配符的话,DestFile 必须是一个目录(而非文件名),否则此函数将返回一个错误代码, 如: 

FileCopy("C:\*.TXT", "C:\BACKUP", Monitor); 

将把C盘根目录下所有的.TXT文件复制到C:\BACKUP目录下,Monitor在复制完成后置100。 

 

FileDelete 

此函数删除不需要或不想要的文件。调用格式: 

FileDelete(Filename); 参数         描述 

北京亚控自动化软件科技有限公司

10 组态王命令语言函数速查手册

Filename     要删除的文件名。 

若找到要删除的文件,并成功地删除,此函数将返回1,否则此函数返回0。  例如: 

Status=FileDelete("C:\DATA.TXT");  

若在 C:\找到 "DATA.TXT" 则Status 等于1, 未找到该文件则为0。 

 

FileMove 

此函数与 FileCopy ()函数相似,但只是将文件从一个位置转移到另一个位置,而不是复制。调用格式: 

FileMove(SourceFile, DestFile, DoneTag); 参数 描述 SourceFile 源文件名(包含完整的路径) DestFile 目的文件名(包含完整的路径) DoneTag 用来报告移动过程进展情况的变量名称。此

参数须是一个内存长整数或内存模拟型,随着转移过程的进行, 该值从0变化到100。 

返回值: 成功返回1; 不能启动返回0; 出错返回-1; 例如: 

Status=FileMove("C:\DATA.TXT","D:\DATA.TXT",Monitor); Status 是一个将被写为1、-1或0的整型变量。 Monitor :在数据词典中定义过的内存整数。 

FileMove() 函数在后台执行,这样它不会干扰“组态王”的运行。使用 DoneTag 是为了允许应用程序或工程人员监视转移操作的进展。用这种方法,在转移过程启动后可能发生的任何错误都能使工程人员察觉。(此处用变量Monitor监测)这与上述返回的Status不同,Status表明的是转移过程是否已成功启动。一旦转移过程已成功启动,Monitor 就会被赋值

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 11

0。随着转移过程的进行,该值不断增加。当此过程成功结束时达到100,Status被置为1。若此过程结束前发生错误,Status被置为-1。 

若源文件和目的文件位于同一驱动器上,此函数可以简单地更改此文件的目录参照表(计算机在此表中保存磁盘上的文件名和存储位置),而不用实际转移任何数据。在这种情况下,不管此文件的大小,转移操作将会很快。若源文件和目的文件位于不同的驱动器上,转移操作所费的时间将随文件的大小不同而不同。这是因为数据必须由一个物理磁盘传送到另一物理磁盘上, 如: 

FileMove("C:\DATA.TXT","C:\BACKUP\DATA.TXT",Monitor); 

将把“C”驱动器上根目录下的名为“DATA.TXT的文件转移到名为“BACKUP”的目录下,变量 Monitor 在转移完成后将被置为 1。 

此函数也可用于文件更名,只要源文件和目的文件指定了相同的目录,但不同的文件名, 如: 

FileMove ("C:\DATA.TXT","C:\DATA.BAK",Monitor); 

将把C盘根目录下文件“DATA.TXT”更名为“DATA.BAK”。变量Monitor 在其完成后被置为1。  

FileReadFields 

此函数从一个指定文件中读出 CSV(逗号分隔变量)记录。调用格式: 

FileReadFields(Filename,FileOffset,StartTag,NumberOfFields); 参数 描述 Filename  指定要读的文件。 FileOffset 指定读此文件的起始位置。若为1,则表明

从头开始 

StartTag 指定第一个数据要写到的那个组态王变量

的名称。此变量名必须以一个数字结尾(如

北京亚控自动化软件科技有限公司

12 组态王命令语言函数速查手册

MyTag1)。此参数必须是一个表明变量名的

字符串(而非实际的变量本身)。所以,若变量叫做 MyTag1,就需要给出MyTag1或 MyTag1.name,而不仅仅是MyTag1。 

NumberOfFields 指定要读的字段数目(此文件的每条记录中

以逗号隔开的字段的数目)。 

若StartTag 为“MyTag1”而NumberOfField为3,则有3个字段从文件中读出并保存在MyTag1、MyTag2和MyTag3中。这些具有连续名字的变量必须先在组态王中创建,并可以属于不同的类型(整型,文字等等)。 例如: 

若C:\DATA\FILE.CSV的第一行为: “This is text, 3.1416, 5”,调用函数 

BytePosition=FileReadFields("C:\DATA\FILE.CSV",1, "MyTag1", 3); 

将读出此行,并把“This is text"保存在MyTag1中,3.1416保存在 MyTag2中,5保存在 MyTag3中: 

此函数在读出之后返回新的字节位置。你可以在下次读时使用此返回值作为FileOffset的值,如: 

BytePosition=FileReadFields(c:\DATA\FILE.CSV",FileOffset,"MyTag1",3); 注意: 

StartTag 两侧必须加引号。  

FileReadStr 

此函数从指定文件中读出一指定数目的字节(或一整行)。调用格式: 

FileReadStr(Filename,FileOffset,Message_Tag,CharsToRead); 参数 描述 Filename 指定要读的文件。 FileOffset 指定读此文件的起始位置。若为1,则表明

从头开始。 

Message_Tag 指定将从文件中读出的数据保存于何处。  

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 13

指定要从文件中读出多少字节。为处理文本文件,可将CharsToRead置为0,函数从文件中一直读到下一个 LF(换行符)。 

此函数在读出之后返回新的字节位置。可以在在下次读时使用此返回值作为 FileOffset 值。 例如: 

FileReadStr ("C:\DATA\FILE.TXT", 1, MsgTag, 0); 文件“C:\DATA\FILE.TXT”的第一行将被读出并保存到 MsgTag 中。  

FileWriteFields 

此函数往指定文件写入CSV(逗号分隔变量)记录。调用格式: 

FileWriteFields(Filename,FileOffset,StartTag,NumberOfFields); 参数 描述 Filename  指定要写的文件。若文件不存在,则创建它。 FileOffset 指定写此文件的起始位置。若 FileOffset 为 0,

此函数将写到文件末尾。若为1,则写到开头。 

StartTag 指定第一个数据项的变量名称。此变量名必须以

一个数字结尾(如MyTag1)。此参数必须是一个表明变量名的字符串(而非实际的变量本身)。比如,变量名为MyTag1,就需要给出”MyTag1”(注意引号)或MyTag1.name,而不仅仅是MyTag1。 

NumberOfFields 指定要写的字段数目(此文件的每条记录中以逗

号隔开的字段的字段数目)。 

此函数在写入之后返回新的字节位置。可以在下次调用函数时使用此返回值作为FileOffset值。 

若 StartTag为“MyTag1”,而NumberOfFields为3,则有3个字段被写入文件中(写入的是 MyTag1、MyTag2 和 MyTag3)。这些具有连续名字的变量必须先在组态王中创建,并可以属于不同的类型(整型,字符串等等)。 例如: 

将一行“This is text 3.1416,5”写到文件C:\DATA\FILE.CSV

北京亚控自动化软件科技有限公司

CharsToRead 

14 组态王命令语言函数速查手册

的第一行中。“This is text”是 MyTag1的当前值,3.1416

是 MyTag2的当前值,5是 MyTag3的当前值。调用函数 

   FileWriteFields ("C:\DATA\FILE.CSV", 1, "MyTag1", 3); 

若将文本串MyTag1写到C:\DATA\FILE.CSV的末尾,调用函数 

   FileWriteFields ("C:\DATA\FILE.CSV", 0, "MyTag1", 3); 

StartTag 两侧必须加引号。 

 

FileWriteStr 

此函数往指定文件写入指定数目的字节(或一整行)。调用格式: 

FileWriteStr(Filename,FileOffset,Message,LineFeed); 参数 描述 Filename 指定写入的文件。若文件不存在,则创建它。 FileOffset 指定此文件的起始位置。若 FileOffset 为 0, 

此函数将写到文件末尾。若为1,则写到开头  

Message 指定要写入文件中的字符。 LineFeed 规定是否在写操作之后添加换行。当写入一文本文件时,

可以把LineFeed 置为1。 

此函数在写入后返回新的字节位置。你可以在下次写时将此返回值当作FileOffset() 函数的返回值来使用。 例如: 

将名为MsgTag的字符串变量写入文件C:\DATA\FILE.TXT的末尾。调用函数FileWriteStr ("C:\DATA\FILE.TXT", 0, MsgTag, 1);  

HidePicture 

此函数用于隐藏正在显示的画面,但并不将其从内存中删除。调用格式: 

HidePicture("画面名"); 例如: 

HidePicture("反应车间"); 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 15

 

HTConvertTime 

此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是1969年12月31日16:00:00。 语法使用格式 

HTConvertTime(Year,Month,Day,Hour,Minute,Second); 

参数          描述 Year:  年,整型,此值必须介于1970和2019之间 Month:  月,整型,此值必须介于1和12之间 Day:      日,整型,此值必须介于1和31之间 Hour:     小时,整型,此值必须介于0和23之间 Minute:   分钟,整型,此值必须介于0和59之间 Second:   秒,整型,此值必须介于0和59之间 注: 

调用此函数将用年、月、日、时、分、秒表示的时间转换成自1969年12月31日16:00:00即UCT起到该时刻所经过的秒数 例如: 

语句HTConvertTime(1970,1,1,1,0,0)执行后返回长整型数为32400;  

HTGetPenName 

此函数返回指定趋势的指定笔号当前所用的变量名。调用格式: 

MessageResult=HTGetPenName(Hist_Tag , PenNum); 参数     描述 

Hist_Tag  历史趋势变量,代表趋势名称。 PenNum  表示笔号的整型变量或整数值(从1到8)。函数将返

回代表此指定笔的字符串变量。 

例如: 

用变量名Trend1检索趋势笔Pen2的变量名,并将结果放在字符串变量 TrendPen 中。调用函数 

TrendPen=HTGetPenName(Trend1 , 2 );  

北京亚控自动化软件科技有限公司

16 组态王命令语言函数速查手册

HTGetPenRealValue 

此函数用于获取指定历史趋势曲线中的趋势笔所对应的实际值。 

调用格式: 

HTGetPenRealValue(HistroyName,PenNum,ContentString) 

参数说明 

HistroyName   指在“历史趋势曲线”对话框中定义的历史趋势曲线

名称 

PenNum       与历史趋势曲线中的一个变量相对应的趋势笔的索引

号 

ContentString   字符串常量 

“start”  表示获取与历史趋势曲线的域ValueStart相对应的

实际值,ValueStart是用工程百分比来表示变量的下限值,start则表示将下限值的工程百分比转换为实际值。 

“end”   表示获取与历史趋势曲线的域ValueEnd相对应的实

际值,ValueEnd是用工程百分比来表示变量的上限值,end则表示将上限值的工程百分比转换为实际值。 

例如: 

设有一温度历史曲线,其最大上限值为500,最小下限值为0, 如下图所示: 

最大上限值 500 对应的工程百分比为100% 对应的工程百分比为0% 最小下限值 0    

如果用ValueStart和ValueEnd输出显示,则显示的数据是温度值的工程百分比,如ValueEnd 的输出为50,表示百分比是

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 17

50%,如果使用函数语句 

     HTGetPenRealValue(histroy,1,“end”); 

则函数返回工程百分比50%对应的实际值500*50%=250,其中history为历史趋势曲线名,1表示对应温度的趋势笔。 

 

HTGetTimeAtScooter 

此函数返回一个长整数,表示以GMT(格林尼治时间)1969年12月31日16:00:00为起点的以秒计的相对时间,指示器位置由 ScootNum 和 ScootLoc 指定。 调用格式: 

IntegerResult=HTGetTimeAtScooter(Hist_Tag, ScootNum ); 参数 描述 

Hist_Tag 历史趋势变量,代表趋势名。 

ScootNum 整数,代表左或右指示器(1=左指示器,2=右指示器)。 当趋势曲线的ChartStart、ChartLength、ScootNum或指示器位置改变时都会引起此表达式被计算。 例如: 

下面的语句在趋势曲线Trend1左指示器的当前位置给出以秒为单位的时间值: 

TimeLength=HTGetTimeAtScooter(Trend1 ,1);  

HTGetTimeStringAtScooter 

此函数返回包含时间/日期的字符串,指示器的位置由 ScootNum 和 ScootLoc 指定。调用格式: 

MessageResult=HTGetTimeStringAtScooter(Hist_Tag, ScootNum , Format_Text); 

参数 描述 Hist_Tag  历史趋势变量,代表趋势名。 ScootNum  整数,代表左或右指示器(1=左指示器,2=右指示

器)。 

Format_Text  指定要使用的时间/时期格式的字符串。可为下列值

之一。 

"Date" 以 Windows 控制面板相同的格式显示日期。 

北京亚控自动化软件科技有限公司

18 组态王命令语言函数速查手册

"Time" 

"DateTime" 以 Windows 控制面板相同的格式显示时间。 同时显示日期和时间。 

当趋势曲线的ChartStart、ChartLength、ScootNum或指示器位置改变时都会引起此表达式被计算。字符串的格式决定了返回值的内容。. 例如: 

在变量为Trend1的右指示器的当前位置给出日期/时间值。这个值被存在字符串变量 NewRightTimeString 中,格式是”Time”,调用函数 

NewRightTimeString=HTGetTimeStringAtScooter ( Trend1, 2, "Time" ); 

 

HTGetValue 

此函数返回一个按整个趋势的指定笔所要求的类型的值。调用格式: 

RealResult=HTGetValue(Hist_Tag, PenNum,ValType_Text); 

参数                       描述 Hist_Tag  历史趋势变量,代表趋势名。 PenNum  代表笔号的整型变量或值。(1到8 ) 

ValType_Text  表明返回值类型的字符串。可以是以下字符串之一。 "AverageValu整个趋势的平均值。 e"  

"MaxValue"  整个趋势的最大值。 "MinValue"  整个趋势的最小值。 

此函数返回一内存实型变量,它代表按给出类型算出的值。 例如: 

下面的语句得到趋势 Trend1 的 Pen2 所取得数据的最大值。算出的值存到内存实型变量LeftHemisphereSD中: 

 LeftHemisphereSD=HTGetValue(Trend1,2 , "MaxValue"); 

 

HTGetValueAtScooter 

此函数返回一个样本在指定的指示器位置、趋势和笔号所要求的类型的的值。调用格式: 

RealResult=HTGetValueAtScooter(Hist_Tag,ScootNum, PenNum, ValType_Text); 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 19

描述 

历史趋势变量,代表趋势名。 

代表左或右指示器的整数(1=左指示器,2=右指示器)。 

PenNum  代表笔号的整型变量或值。(1到8) 

ValType_Text 代表返回值类型的字符串,可以为以下字符串之一: "Value" 取得在指示器位置处的值。 "Valid" 判断取得的值是否有效。返回值为0表示取得的 

值无效,为1表示有效。 

若是“Value”类型,则返回模拟值。若是“Valid”类型,则返回离散值。 例如: 

采集趋势曲线Trend1的笔Pen3在右指示器的当前值。若此值有效,则在内存离散变量ValidFlag中存入1,无效,则存入0: 

ValidFlag=HTGetValueAtScooter(Trend1,2,3 , "Valid"); 

参数 

Hist_Tag  ScootNum  

 

HTGetValueAtZone 

此函数返回一包含在某一趋势指定笔的左右指示器之间的数据中所要求类型的值。调用格式: 

RealResult=HTGetValueAtZone(Hist_Tag,PenNum, ValType_Text  ); 

参数                      描述 Hist_Tag 历史趋势变量,代表趋势名。 PenNum 代表笔号的整型变量或值。(1到8) ValType_Text 表明要返回值的类型的字符串,可以是以下3个字

符串之一: 

"AverageValue左右指示器间区域上的平均值。 " 

"MaxValue"  左右指示器间区域上的最大值。 "MinValue"  左右指示器间区域上的最小值。 此函数直接使用运行数据库的趋势变量的.ScooterPosLeft和.ScooterPosRight域来确定区域边界,并返回计算值。 

北京亚控自动化软件科技有限公司

20 组态王命令语言函数速查手册

例如: 

取得趋势曲线“Trend1”的 Pen1代表的变量左右指示器之间的平均值,并把结果存入内存实型变量 AvgValue 中。调用函数 

AvgValue=HTGetValueAtZone(Trend1, 1, "AverageValue"); 

 

HTScrollLeft 

此函数将趋势曲线的起始时间左移(提前)给定的百分比值。百分比是相对于趋势曲线的时间轴长度。移动后时间轴的长度保持不变。调用格式: 

HTScrollLeft(Hist_Tag,Percent); 

参数         描述 

Hist_Tag    历史趋势变量,代表趋势名。 

Percent      实数,代表图表要滚动的百分比(0.0到100.0)。 例如: 

将趋势曲线Trend1的时间轴向左滚动(提前)10%,调用函数 HTScrollLeft(Trend1,10.0); 

若当前显示起始于下午 12:00:00 ,而且显示宽度为60秒。在函数执行后,新的趋势曲线将起始于上午 11:59:54。 

 

HTScrollRight 

此函数将趋势曲线的起始时间右移给定的百分比值。百分比是相对于趋势曲线的时间轴长度。移动后时间轴的长度保持不变。调用格式: 

HTScrollRight(Hist_Tag,Percent); 

参数     描述 Hist_Tag   历史趋势变量,代表趋势名。 Percent  实数,代表图表要滚动的百分比(0.0到100.0)。 例如: 

将趋势曲线Trend1的间轴范围向右滚动 20%。调用函数 HTScrollRight(Trend1,20.0); 

若当前显示起始于下午 12:00:00,而且显示宽度为60秒,则新的趋势将起始于下午 12:00:12 (在函数执行后)。 

 

北京亚控自动化软件科技有限公司

26 组态王命令语言函数速查手册

3      返回当前内存中空闲空间字节数 

4      返回当前正在运行的任务数。 Trigger  每当 Trigger 值改变时,执行InfoResource() 函数。Trigger 可为任一变量名(不受系统变量限制)。 

由整数 ResourceType 指定的特定系统资源信息存放在 IntegerResult 中。 例如: 

下面的语句每分钟执行一次并返回当前值: InfoResource(1, ¥分) 将返回54{空闲百分比} InfoResource(2, ¥分) 将返回36{空闲百分比} InfoResource(3, ¥分) 将返回11524093{字节数} InfoResource(4, ¥分) 将返回14{任务数} 注意:   在WIN NT 下返回GDI和USER的资源可用空闲空间的百分比是一样的,与WIN NT系统有关。 

 

Int 

此函数返回小于等于指定数值的最大整数。调用格式: 

IntegerResult=Int(Number); 

参数     描述 

Number     任一数字或者组态王的实型或整型变量名。 例如: 

Int(4.7) 将返回 4 Int(-4.7) 将返回 -5 

 

IsPlaySoundEnd 

此函数用于判断声音播放是否结束,返回值为离散型,当返回值为1时,表示声音播放结束;返回值为0时,表示声音正在播放。 调用格式: 

IsPlaySoundEnd() 此函数无参数。 

 

listLoadList() 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 27

此函数用于将CSV文件Filename中的列表项调入指定的列表框控件ControlName中,并替换列表框中的原有列表项。列表框中只显示列表项的成员名称(字符串信息),而不显示相关的数据值。 语法格式使用如下: 

listLoadList("ControlName","Filename"); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

Filename:csv文件,用写字板程序进行编辑,用以存放列表框中要显示的列表项。 例如: 

listLoadList("组合框信息","c:\组态王\list.csv"); 

此语句将指定的文件list.csv调入名为组合框信息的列表框中并显示出来。 注: 

如果没有给出csv文件所在的完整路径,则该函数就从组态王所在的路径下寻找指定的文件。 

 

listSaveList() 

此函数用于将列表框控件ControlName中的列表项信息存入CSV文件Filename中。如果该文件不存在,则直接创建。 语法格式使用如下: 

listSaveList("ControlName","Filename"); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

Filename:CSV文件,按一定格式用以存放列表框中的列表项。 例如: 

listSaveList("组合框信息","c:\组态王\list.csv"); 

此语句将组合框信息列表框中的列表项存入到文件c:\组态王\list.csv中。 注: 

如果没有给出CSV文件所在的完整路径,则该函数在组态王所

北京亚控自动化软件科技有限公司

28 组态王命令语言函数速查手册

在的路径下创建该文件。 

 

listAddItem() 

此函数将给定的列表项字符串信息MessageTag增加到指定的列表框

控件ControlName中并显示出来。组态王将增加的字符串信息作为列表框中的一个成员项 Item,并自动给这个成员项定义一个索引号ItemIndex,索引号ItemIndex从1开始由小到大自动加1。 语法格式使用如下: 

listAddItem("ControlName","MessageTag"); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

MessageTag:字符串值,表示增加到指定列表框控件的成员项字符串信息。 例如: 

listAddItem("报警信息","温度报警"); 

此语句将“温度报警” 字符串信息增加到列表框控件报警信息中并显示出来。 

listAddItem("配方信息","巧克力面包"); 

此语句将“巧克力香型面包” 字符串信息增加到列表框控件配方信息中并显示出来。  

listClear() 

此函数将清除指定列表框控件ControlName中的所有列表成员项。 语法格式使用如下: 

listClear("ControlName"); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 例如: 

listClear("报警信息"); 

此语句将清除报警信息列表框中的所有列表成员项。 

 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 29

listDeleteItem() 

此函数将在指定的列表框控件ControlName中删除索引号为ItemIndex的成员项。 语法格式使用如下: 

listDeleteItem("ControlName",ItemIndex); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

ItemIndex:列表框控件中的成员项索引号,通常为数字常量或整型变量。 例如: 

listDeleteItem("报警信息",1); 

此语句将在报警信息列表框中删除索引号为1的成员项。 listDeleteItem("配方信息",5); 

此语句将在配方信息列表框中删除索引号为5的成员项。 

 

listDeleteSelection() 

此函数将删除列表框控件ControlName中当前选定的成员项。 语法格式使用如下: 

listDeleteSelection("ControlName"); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 例如: 

listDeleteSelection("报警信息"); 

此语句将在报警信息列表框中删除当前选定的成员项。 

 

listFindItem() 

此函数用于查找与给定的成员字符串信息MessageTag相对应的索引号,并送给整型变量IndexTag。 语法格式使用如下: 

listFindItem("ControlName","MessageTag",IndexTag); 参数说明: 

北京亚控自动化软件科技有限公司

30 组态王命令语言函数速查手册

ControlName:工程人员定义的列表框控件名称,可以为中文名或英

文名。 

MessageTag:字符串值,表示列表成员项字符串信息。 

IndexTag:整型变量,用以存放与给定的成员字符串信息MessageTag相对应的索引号 例如: 

以CSV文件list.csv中存放的列表项信息为例如, listFindItem("组合框信息","温度",IndexTag); 

此语句将“温度” 字符串信息相对应的索引号送给整型变量IndexTag。在此例如中IndexTag=1。  

listGetItem() 

此函数用于获取索引号为ItemIndex的列表项成员字符串信息,并送给字符串变量StringTag。 语法格式使用如下: 

listGetItem("ControlName",ItemIndex,StringTag); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

ItemIndex:数值常量或变量,表示列表索引号。 

StringTag:字符串变量,用以存放索引号为ItemIndex的列表项成员字符串信息 例如: 

以CSV文件list.csv中存放的列表项信息为例如, listGetItem("组合框信息",2,StringTag); 

此语句将索引号为2的列表项成员字符串信息字符串变量StringTag。在此例如中,StringTag=压力。 

 

listGetItemData() 

此函数用于获取索引号为ItemIndex的列表项中的数据值,并送给整型变量NumberTag。 语法格式使用如下: 

listGetItemData("ControlName",ItemIndex,NumberTag ); 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 31

参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

ItemIndex:数值常量或变量,表示列表索引号。 

NumberTag:整型变量,用以存放索引号为ItemIndex的列表项的数据值。 例如: 

以CSV文件list.csv中存放的列表项信息为例如, listGetItemData("组合框信息",2, NumberTag); 

此语句将索引号为2的列表项的数据值送给变量NumberTag。在此例如中,NumberTag=40。 

listInsertItem() 

此函数将字符串信息StringTag插入到列表项索引号ItemIndex所指示的位置。如果ItemIndex=-1,则字符串信息StringTag被插入到列表项的最尾端。 语法格式使用如下: 

listInsertItem("ControlName",ItemIndex, "StringTag" ); 参数说明: 

ControlName:工程人员定义的列表框控件名称,可以为中文名或英文名。 

ItemIndex:数值常量或变量,表示列表索引号。 StringTag:字符串常量。 例如: 

listInsertItem("组合框信息",2,“炉温”); 

此语句将字符串信息“炉温”插入到索引号2所指示的位置。  

listSetItemData(); 

此函数用于将变量Number的值设置索引号为ItemIndex的列表项中。 语法格式使用如下: 

listSetItemData("ControlName",ItemIndex, Number ); 参数说明: 

北京亚控自动化软件科技有限公司

32 组态王命令语言函数速查手册

ControlName:工程人员定义的列表框控件名称,可以为中文名或英

文名。 

ItemIndex:数值常量或变量,表示列表索引号。 Number:整型变量,用以存放数据值。 例如: 

listSetItemData("组合框信息",2,Number); 

此语句将变量Number中的值设置到索引号为2的列表项。 

 

ListLoadFileName(); 

此函数将字符串常量StringTag指示的文件名显示在列表框中。 

ListLoadFileName(“ControlName”, “StringTag”); 参数说明: 

ControlName: 工程人员定义的列表框控件名称,可以为中文名或英文名。 

StringTag: 字符串常量,工程人员要查询的文件,支持通配符。 例如: 

ListLoadFileName(“报警文件列表”, “c:\appdir\alarm\*.alg”); 

此语句将c:\appdir\alarm目录下的后缀为.alg的文件名显示在列表框中 

 

LoadText() 

此函数将指定的RTF或TXT格式文件调入到超级文本显示控件中加以显示。 

语法格式使用如下: 

         LoadText( "ControlName", "FileName", ".Txt Or .Rtf" ) 参数说明: 

ControlName:工程人员定义的超级文本显示控件名称,可以为中文名或英文名。 

FileName:RTF或TXT格式的文件,可用WINDOWS的写字板编写这两种格式的文件。 

.Txt Or .Rtf:指定文件为RTF格式或TXT格式。 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 33

例如: 

LoadText("hypertext1","D:\Test\recipe\ht1.rtf", ".Rtf"); 

此语句把RTF格式的文件ht1.rtf调入到名称为hypertext1的超级文本显示控件中加以显示。  

LogE 

此函数返回对数函数logex的计算结果, X为变量值, 调用格式: 

Log(变量值); 例如: 

Log(100)返回loge100计算值4.605 Log(1)返回loge1计算值0  

LogN 

此函数返回以n为底的x的对数。以1为底的对数没有定义。调用格式: 

Result=LogN(Number,Base); 

参数       描述 

Number       任一数字或者组态王的实型或整型变量名。 Base       做底的整数。 例如: 

LogN(8, 3) 将返回 1.89279... LogN(3, 7) 将返回 0.564... 

 

LogOff 

此函数用于在TOUCHVEW中退出登录。调用格式: 

LogOff( ); 

参数       无  

LogOn 

此函数用于在TouchVew中登录。调用格式: 

LogOn( ); 参数       无 

北京亚控自动化软件科技有限公司

34 组态王命令语言函数速查手册

例如: 

为画面上某个按钮建立命令语言连接: LogOn( ); 

画面程序运行时单击此按钮,弹出“登录”对话框:  

          

 

工程人员在此对话框中输入用户名和口令,以获得操作权限。 

LogOperateString 

此函数用于记录操作员的操作过程时,在记录文件(*.ALG)中加入描述信息。调用格式: 

LogOperateString( string ); 参数       描述 

string      字符串或字符串变量 例如: 

LogOperateString( “系统启动” );   

LogOperateString( StartString );   StartString为内存字符串变量。 

只有当“操作信息记录格式”对话框中“描述”项被选中时,此函数才起作用。(参见16.4节和3.3.6节相关内容。) 

 

LogString 

此函数写一个工程人员自定义消息到组态王。调用格式: LogString(Message); 

参数     描述 

Message  要记录到组态王的字符串。 例如: 

LogString("Report Script is Running"); 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 35

 

Max 

此函数用于求得两个数中较大的一个数。 例如: 

MaxValue = Max(Max(var1,var2), var3 ) 

此函数返回值MaxValue为var1、var2、var3中最大的数。 

Min 

此函数用于求得两个数中较小的一个数。 例如: 

MinValue=Min(Min(var1,var2),var3) 

此函数返回值MinValue为var1、var2、var3中最小的数。 

PageDown 

用于报警窗口信息的向前翻页显示。调用形式: 

PageDown(报警窗口名,翻页行数); 例如: 

PageDown(全厂历史报警记录窗口,7); 该调用将“全厂历史报警记录窗口”的报警记录向下翻7行(如果有足够报警记录的话). 

 

PageUp 

用于报警窗口信息的向后翻页显示。调用格式: 

Pageup(报警窗口名,翻页行数); 例如: 

PageUp(全厂历史报警记录窗口,7); 该调用将“全厂历史报警记录窗口”的报警记录向上翻7行(如果有足够报警记录的话). 

 

PI 

此函数返回圆周率的值。调用格式: 

RealResult=PI(); 例如: 

北京亚控自动化软件科技有限公司

36 组态王命令语言函数速查手册

PI( )将返回 3.1415926... 

 

PlayAvi 

此函数用于播放动画,动画为.avi文件。 

调用格式: 

PlayAvi(ControlName,AviName,Flags); 参数及其描述 

ControlName: 用于播放播放AVI动画的控件的名称。 AviName :代表要播放的动画文件的字符串或字符串变量。 Flags      :可为下述之一: 

   0        停止播放AVI动画      1        播放一遍AVI动画 

   2        连续播放AVI动画,直到接收到停止播放的信息为止 例如: 

PlayAvi( "ctl_avi","c:\demo\Winner.avi",1 ); 此函数的功能是在名称为“ctl_avi”的控件中播放Winner.avi中存放的动画,只播放一次。画面停止在动画的最后。  

PlaySound 

此函数通过 Windows 的声音设备(若已安装)播放声音,声音为wav文件。调用格式: 

PlaySound(SoundName,Flags); 

参数           描述 SoundName       代表要播放的声音文件的字符串或字符串变量。 Flags           Flags 可为下述之一: 0         停止播放声音 1         同步播放声音 2         异步播放声音 3 重复播放声音直到下次调用PlaySound() 函数为止。 4 蜂鸣器报警 例如: 

PlaySound ("c:\horns.wav",2); 

声音需要在安装了wave形式音频设备驱动器上播放。声音文

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 37

件目录的查找按以下顺序:当前目录;Windows目录;Windows系统目录;在路径中列出的目录。若缺省的声音文件或系统缺省的声音文件找不到,则不播放声音。 PlaySound ("",4); 蜂鸣器报警。 

 

Pow 

此函数求得一模拟值或模拟变量的任意次幂。调用格式: 

Result=Pow(x, y); 

参数     描述 x   底数 y   指数 

返回值为x的y次幂。 例如: 

Result=Pow(2, 3);  函数调用后Result=8.0 

 

PrintWindow 

此函数打印指定窗口。调用格式: 

PrintWindow( "Window", xScale, yScale , option, xStart, yStart); 

参数             描述 

Window       要打印的窗口名。 xScale 打印输出的宽度占此页总宽的百分比。此参数可以

取0,以使用缺省最大的纵横比或者取一指定的宽度。 

YScale         打印输出的高度占此页总高度的百分比。此参数可

以取0,以使用缺省最大的纵横比或者取一指定的高度。 

Options 离散值:0或1,仅在 Width 和 Height 都为 0 时

使用。若 Options 为1窗口在最大纵横比下以窗口尺寸的整数倍数打印。若 Options 为 0,以适于此页的最大纵横比打印。若窗口包含位图,置 Options 为 1,以免位图被拉长。 

北京亚控自动化软件科技有限公司

38 组态王命令语言函数速查手册

xStart       要打印的窗口横向空白长度的百分比。 

YStart    要打印的窗口纵向空白长度的百分比。  

许多报表可通过使用此函数进行排队打印。字体原样打印,对象则被位图化而且以位图的形式打印。白色背景并且仅仅包含文字的窗口可以很快打印出来。若打印彩色背景并且包含许多对象的窗口将花费较长的时间。 

若要确保窗口中的文本能被正确打印,建议将所有要被打印的窗口中的文体域设置为“True Type”字体。 

当打印画面上的按钮时,按钮上的文本中可能被“切除”,因为用在按钮文本上的字体为“System”字体,它不是“True Type”字体。另外,“System”字体用在打印机上与用在屏幕上相比略有不同。若发生了这种情况。请试着把按钮放大。 

下图显示了xScale,YScale,xStart,yStart之间的关系:  

xScalYScale yStart xStar  

例如: 

每天上午 8:30 打印三页报表,使用命令语言: if ( ¥时 == 8 && ¥分 == 30 ) { 

 PrintWindow("1st Shift Summary",0,0,0,10,10); 

北京亚控自动化软件科技有限公司

组态王命令语言函数速查手册 39

 PrintWindow("2nd Shift Summary",0,0,0,10,10);  PrintWindow("3rd Shift Summary",0,0,0,10,10); } 

命令语言应用程序的执行优先于此函数的执行。若命令语言应用程序频繁运行的话,例如如每 200 毫秒运行一次,窗口的打印可能要多花费些时间。 

 

pvAddNewRealPt() 

此函数用于在指定的温控曲线控件中增加一个采样实时值。 语法格式使用如下: 

pvAddNewRealPt("ControlName",timeOffset,Value, "commentTag" ); 参数说明: 

ControlName:工程人员定义的温控曲线控件名称,可以为中文名或英文名。 

timeOffset:相对前一采样点的时间偏移量(即距前一值的时间间隔值),第一个值取0。 

Value:温度的采样值,实型数据,此变量通常为组态王数据库中定义的I/O实数变量。 

commentTag:注释性字符串,也可以是字符串变量,当游标移动到此点时,给出提示性信息。 例如1: 

pvAddNewRealPt( "反应罐温控曲线", 1, 38, "温度值为38度" ); 

此语句在反应罐温控曲线控件中增加一个38度的温度采样实时值。此采样实时值距前一值的时间间隔值为1,当游标移动到此点时,给出提示性信息“温度值为38度”。 例如2: 

设反应罐实时温度是组态王数据库中定义的一个I/O实数变量,接收从下位机中送来的温度值,TimeString为组态王数据库中定义的一个字符串变量。 

TimeString=StrFromInt(¥时)+ ":"+ StrFromInt(¥分)+ ":"+ StrFromInt(¥秒) 

北京亚控自动化软件科技有限公司

40 组态王命令语言函数速查手册

pvAddNewRealPt( "反应罐温控曲线", 10, 反应罐实时温度, 

TimeString ); 

此语句在反应罐温控曲线控件中给出变量反应罐实时温度的采样实时值。此采样实时值距前一值的时间间隔值为10,当游标移动到此点时,给出TimeString中的提示性信息。   

A 注意:     设定曲线将根据实时曲线第一点的位置而变。   

例如: 

实时曲线第一点的位置为:(用一按钮添加实时曲线第一点) pvAddNewRealPt( "反应罐温控曲线", 10, 20, TimeString ); 

 

 

 

图中为一设定曲线,按下按钮后,如下图示:  

北京亚控自动化软件科技有限公司

本文来源:https://www.bwwdw.com/article/11q.html

Top