推广 热搜:
 |  行业设备  |  机械制造  |  机器视觉  |  机械自动化  |  仪器仪表  |  工业机器人  |  编程开发  |  嵌入式  |  电子技术  |  工控自动化  |  电工电气 频道

组态王命令语言函数手册

   日期:2018-09-22     浏览:113    评论:0    
核心提示:工业自动化通用组态软件组态王version 6.5命令语言函数速查手册北京亚控科技发展有限公司 组态王命令语言函数速查手册1命令语言函数速查手册组态王支持使用内建的复杂函数,其中包括字符串函数、数学函数、 系统函数
 工业自动化通用组态软件

组态王
version 6.5

命令语言函数
速查手册
北京亚控科技发展有限公司

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

1

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

Abs
此函数用于计算变量值的绝对值,使用格式如下: Abs(变量名或数值); 返回值:整值或实型值; 例如: Abs(14); 返回值为 14 Abs(-7.5); 返回值为 7.5 Abs(距离); 返回内存模拟变量“距离”的绝对值。

Ack
此函数常和按钮连接,当发生报警时,用此函数进行报警确认,它 将产生确认报警事件。调用格式: Ack(报警组名); 或 Ack(变量名); 例如: Ack(全厂); 或 Ack(反应罐液位);

ActivateApp
此函数用于激活正在运行的窗口应用程序,使之获得输入焦点。该 函数主要用于配合函数 SendKeys 的使用。调用形式: ActivateApp(“ExeName”); 参数 描述 ExeName 应用程序的执行文件名

北京亚控科技发展有限公司

2

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

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

激活组态王: 可使用 ActivateApp("TouchVew.exe");

ArcCos
此函数用于计算变量值的反余弦值, 变量值的取值范围在[-1,1] 之间,否则函数返回值无效。调用格式: ArcCos(变量名或数值); 返回值:整值或实型值; 例如: ArcCos(1); 此函数返回值为 0 ArcCos(temp); 此函数返回变量“temp”的反余弦值。

ArcSin
此函数用于计算变量值的反正弦值, 变量值的取值范围在[-1,1] 之间,否则函数返回值无效。调用格式: ArcSin(变量名或数值); 返回值:整值或实型值; 例如: ArcSin(1); 此函数返回值为 90 ArcSin(temp); 此函数返回变量“temp”的反正弦值。

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

北京亚控科技发展有限公司

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

3

ArcTan(变量名或数值); 返回值:整值或实型值; 例如: ArcTan(1); 此函数返回值为 45 ArcTan (temp); 此函数返回变量“temp”的反正切值。

Average
此函数为对指定的多个变量求平均值。语法格式使用如下: Average(’a1’,’a2’); 或 Average('a1:a10'); a1、a2……为整型或实型变量。其中参数个数为 1-32 个。 当对报表的指定单元格区域内的单元格进行求平均值运算时,结果 显示在当前单元格内,语法格式使用如下: Average(’a1’,‘a2‘); 例如:=Average( ‘a1’,‘b2’,‘r10’)任意单元格选择求平均 值 =Average(‘b1:b10’);连续的单元格求平均值。

BackUpHistData
此函数为组态王网络中从 IO 服务器上下载历史数据记录到历史记录 服务器。用户在历史记录服务器上调用该函数。函数的使用需要与组 态王网络配置相配合,具体内容参见〈组态王 6.5 使用手册〉中“历 史库”一章。 语法使用格式: BackupStationData (Str chMchinename, Long ftEndtime);

Bit
此函数用以取得一个整型或实型变量某一位的值(0 或 1)。用法:Bit( Var , bitNo); OnOff:离散变量

北京亚控科技发展有限公司

4

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

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:位的设定值 注意:对于 IO 变量来说,BitSet 函数只是用于可读可写的变量。 例如如: BitSet(DDE1,6,0); 将变量 DDE1 的第 6 位置为 0。

ChangePassword
此函数显示“更改口令”对话框,允许登录工程人员更改他们的口 令。使用格式: ChangePassword(); 例如: 为画面上某一按钮设置命令语言连接: ChangePassword( ); 运行时单击此按钮,弹出对话框:

北京亚控科技发展有限公司

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

5

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

chartAdd
此函数用于在指定的棒图控件中增加一个新的条形图。 语法格式使用如下: chartAdd( "ControlName", Value, "label" ); 参数说明: ControlName:工程人员定义的棒图控件名称,可以为中文名或英文 名。 Value:设定条形图的初始值,整形数据, 实型数据。 label:设定条形图的标签值,默认值=索引值 Index,Index 的取值 范围是 1-16。 例如: chartAdd( "XYChart", 1, "L6" ); 此语句将在棒图控件 XYChart 中增加一个标签为 L6 的条形 图,其初始值为 1。

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

北京亚控科技发展有限公司

6

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

chartClear( "ControlName" ); 参数说明: ControlName:工程人员定义的棒图控件名称,可以为中文名或英文 名。 例如: chartClear( "XYChart" ); 此语句把棒图控件 XYChart 中的所有棒图清除。

chartSetBarColor
此函数用于在指定的棒图控件中设置饼图的颜色。条形图不可以。 语法格式使用如下: chartSetBarColor( "ControlName", barIndex, colorIndex ); 参数说明: ControlName:工程人员定义的棒图控件名称,可以为中文名或英文 名。 barIndex: 整型变量,表示条形图索引号,用于设定指定的条形 图,其取值范围为 0-15。 colorIndex: 整型变量,表示条形图的颜色索引号,用于设置指定 条形图的颜色,其取值范围为 0-15,颜色索引号和相应的颜色如下 所示。 颜色索引号 代表颜色 颜色索引号 代表颜色 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

7 例如:

White

15 16

Bright White Black

chartSetBarColor( "XYChart", 0, 1 ); 此语句将棒图控件 XYChart 中第一块饼图的颜色设为 blue (即兰色) 。 chartSetBarColor( "XYChart", 2, 4 ); 此语句将棒图控件 XYChart 中第三块饼图的颜色设为 red 即 ( 红色) 。

chartSetValue
此函数用于在指定的棒图控件中设定/修改索引值为 Index 的条形 图的数据。 语法格式使用如下: chartSetValue( "ControlName", Index, Value ); 参数说明: ControlName:工程人员定义的棒图控件名称,可以为中文名或英文 名。 Value:设定条形图的数据,整形数据, 实型数据。 Index:条形图的标签值, ,Index 的取值范围是 0-15,组态王自动 从 0 开始加 1,给每一个新增加的条形图由小到大设定标签值。 例如: chartSetValue( "XYChart",2, 30); 此语句将在棒图控件 XYChart 中设定索引值为 2(第三条) 的条形图的数据为 30。

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

北京亚控科技发展有限公司

8

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

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

Cos
此函数用于计算变量值的余弦值, 有效使用格式如下: Cos(数值或变量名); 例如: Cos(90); 返回值为 0 Cos(temp); 返回变量“temp”的余弦值。

Date
此函数为根据给出的年、月、日整型数,返回日期字符串,默认格 式为:年:月:日。语法使用格式如下: Date(LONG nYear, LONG nMonth, LONG nDay); 例如:年、月、日变量分别为: “$年”“$月”“$日” 、 、 ,用日期来显 示由以上三个整数决定的“$日期”字符串,则在命令语言中输入: 日期=Date(年,月,日) 。

DisplayMCI
此函数提供了一个对多媒体设备的通用接口,具有强大的功能。下 面举例说明此函数的使用方法。 例如: DisplayMCI(“PLAYCD”,3); 用于播放 CD 唱片中的第 3 支歌曲。 DisplayMCI(“STOPCD”,””); 用于停止播放 CD。 DisplayMCI(“PLAYMIDI”,”c:\midi.mid”); 用于播放 MIDI 格式的背景音乐”c:\midi.mid”。 DisplayMCI(“PAUSEMIDI”,” c:\midi.mid”);

北京亚控科技发展有限公司

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

9

暂停播放 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(Discrete_Tag, OnMsg, OffMsg); 参数 Discrete_Tag onMsg 描述 离散变量名。 字符串变量名

OffMsg 字符串变量名 当 Discrete_Tag=1 时,Str 的值为 onMsg 当 Discrete_Tag=0 时,Str 的值为 OffMsg 例如: Str = Dtext(电源开关,"电源打开","电源关闭"); 当电源开关=1 时,Str 的值为"电源打开" 当电源开关=0 时,Str 的值为"电源关闭"。

EditUsers
此函数常用于按钮的命令语言连接,功能是在画面程序运行中配置 工程人员。调用形式: EditUsers( ); 为配置其他工程人员,当前工程人员的权限必须不小于 900。

北京亚控科技发展有限公司

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

Exit
此函数使组态王运行环境退出。调用形式: Exit(Option); 参数: Option: 整型变量或数值 0-退出当前程序; 1-关机; 2-重新启动 windows;

Exp
此函数返回指数函数e 的计算结果,使用格式如下: Exp(数值或变量名); 例如: Exp(1); 返回 e1 的计算值 2.718 Exp(temp); 计算 e 常量的 temp 次幂并返回计算结果。
x

FileCopy
此函数复制一个源文件到目的文件,它与 DOS 的 Copy 命令或者 Windows 文件管理器中的 Copy 功能相似。调用格式: FileCopy( SourceFile,DestFile,DoneTag); 参数 SourceFile DestFile DoneTag 描述 源文件名(包含完整的路径)。 目的文件(包含完整的路径)或目录名(参见 下面的例如子)。 该参数目前无效。用来报告复制过程进展情 况的变量名称。此参数须是一个内存长整数 或内存模拟型,随着复制过程的进行, 该值从 0 变化到 100。

北京亚控科技发展有限公司

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

11

返回值: 成功返回 1; 不能启动返回 0; 出错返回-1; 例如: Status=FileCopy("C:\*.TXT", "C:\BACKUP", ‘DoneTag’); Status:一个将被写为 1、-1 或 0 的整型变量。 FileCopy()函数在后台执行,这样它不会干扰组态王的 运行。Status 表明的是复制过程是否已成功启动。一旦复制 过程已成功启动,此过程成功结束,Status 被置为 1。若此 过程结束前发生错误,则 Status 被置为-1。 SourceFile 和 DestFile 一 般 为 文 件 名 。 但 用 FileCopy() 函数复制单一文件时,目标文件名可以是一个目 录, 如: FileCopy("C:\DATA.TXT", "C:\BACKUP", ‘DoneTag’); 将把文件“DATA.TXT”复制到“C:\”驱动器上一个叫做 “BACKUP”的目录下。变量 Monctor 在复制完成后置为 1。 若 SourceFile 包含任何通配符的话,DestFile 必 须是一个目录(而非文件名),否则此函数将返回一个错 误代码, 如: FileCopy("C:\*.TXT", "C:\BACKUP", ‘DoneTag’); 将把 C 盘根目录下所有的.TXT 文件复制到 C: \BACKUP 目录下。

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

北京亚控科技发展有限公司

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

FileDelete(Filename); 参数 描述 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 的整型变量。

北京亚控科技发展有限公司

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

13

Monitor :在数据词典中定义过的内存整数。 FileMove() 函数在后台执行,这样它不会干扰“组态 王”的运行。使用 DoneTag 是为了允许应用程序或工程人员 监视转移操作的进展。用这种方法,在转移过程启动后可能 发生的任何错误都能使工程人员察觉。 (此处用变量 Monitor 监测)这与上述返回的 Status 不同,Status 表明的是转移 过程是否已成功启动。 一旦转移过程已成功启动, Monitor 就 会被赋值 0。随着转移过程的进行,该值不断增加。当此过 程成功结束时达到 100,Status 被置为 1。若此过程结束前 发生错误,Status 被置为-1。 若源文件和目的文件位于同一驱动器上,此函数可以简 单地更改此文件的目录参照表(计算机在此表中保存磁盘上 的文件名和存储位置),而不用实际转移任何数据。在这种情 况下,不管此文件的大小,转移操作将会很快。若源文件和 目的文件位于不同的驱动器上,转移操作所费的时间将随文 件的大小不同而不同。这是因为数据必须由一个物理磁盘传 送到另一物理磁盘上, 如: FileMove("C:\DATA.TXT","C:\BACKUP\DATA.TXT",Moni tor); 将把“C”驱动器上根目录下的名为“DATA.TXT 的 文件转移到名为“BACKUP”的目录下,变量 Monitor 在 转移完成后将被置为 1。 此函数也可用于文件更名, 只要源文件和目的文件 指定了相同的目录,但不同的文件名, 如: FileMove ("C:\DATA.TXT","C:\DATA.BAK",Monitor); 将 把 C 盘 根 目 录 下 文 件 “ DATA.TXT ” 更 名 为 “DATA.BAK” 。变量 Monitor 在其完成后被置为 1。

北京亚控科技发展有限公司

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

FileReadFields
此函数从一个指定文件中读出 CSV(逗号分隔变量)记录。 调用格式: FileReadFields(Filename,FileOffset,”StartTag”,Number OfFields); 参数 描述 Filename 指定要读的文件。 FileOffset 指定读此文件的起始位置。若为 1,则表明 从头开始 StartTag 指定第一个数据要写到的那个组态王变量 的名称。此变量名必须以一个数字结尾(如 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 中: 此函数在读出之后返回新的字节位置。你可以在下次读时使

北京亚控科技发展有限公司

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

15

用此返回值作为 FileOffset 的值,如: BytePosition=FileReadFields(c:\DATA\FILE.CSV",FileOf fset,"MyTag1",3); 注意: StartTag 两侧必须加引号。

FileReadStr
此函数从指定文件中读出一指定数目的字节(或一整行)。 调用格式: FileReadStr(Filename,FileOffset,Str_Tag,CharsToRead) ; 参数 描述 Filename 指定要读的文件。 FileOffset 指定读此文件的起始位置。若为 1,则表明 从头开始。 Str_Tag 指定将从文件中读出的数据保存于何处。 CharsToRead 指定要从文件中读出多少字节。为处理文本 文件,可将 CharsToRead 置为 0,函数从文 件中一直读到下一个 LF(换行符)。 此函数在读出之后返回新的字节位置。 可以在下次读时使用 此返回值作为 FileOffset 值。 例如: FileReadStr ("C:\DATA\FILE.TXT", 1, Str_Tag, 0); 文件“C:\DATA\FILE.TXT”的第一行将被读出并保存到 Str_Tag 中。

FileWriteFields
此函数往指定文件写入 CSV(逗号分隔变量)记录。调用格式: FileWriteFields(Filename,FileOffset,”StartTag”,Numbe rOfFields);

北京亚控科技发展有限公司

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

描述 指定要写的文件。若文件不存在,则创建它。 指定写此文件的起始位置。若 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, 写到文件 C: 5” \DATA\FILE.CSV 的第一行中。 “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 两侧必须加引号。

参数 Filename FileOffset

北京亚控科技发展有限公司

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

17

FileWriteStr
此函数往指定文件写入指定数目的字节(或一整行)。调用格式: FileWriteStr(Filename,FileOffset,String,LineFeed); 参数 描述 Filename 指定写入的文件。若文件不存在,则创建它。 FileOffset 指定此文件的起始位置。若 FileOffset 为 0, 此函数将写到文件末尾。若为 1,则写到开头 String 指定要写入文件中的字符。 LineFeed 规定是否在写操作之后添加换行。当写入一文本 文件时,可以把 LineFeed 置为 1。 此函数在写入后返回新的字节位置。 你可以在下次写时将此返回 值当作 FileOffset() 函数的返回值来使用。 例如: 将名为 MsgTag 的字符串变量写入文件 C:\DATA\FILE.TXT 的 末尾。调用函数 FileWriteStr ("C:\DATA\FILE.TXT", 0, MsgTag, 1);

GetBackupProgress
此函数用于在组态王进行网络历史数据备份合并时获得进度百分 比。使用时需要通过命令语言调用来获得进度值。 语法使用格式: int GetBackupProgress( str szStationName); 参数:szStationName 远程站点名称。 返回值:整型,为 0~100 间的进度值。 例如: 备份进度= GetBackupProgress(“IO 采集站”);

北京亚控科技发展有限公司

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

GetDate
此函数将以秒为单位的长整型数转换为相应的日期数值, 分别以年、 月、日等的日期数值输出。该长整型秒数的基准为 UTC(格林尼治) 时间 1970 年 1 月 1 日 00:00:00。转换完成输出的日期也为 UTC(格 林尼治)日期。 语法使用格式

GetDate(DateTime,Year,Month,Day);
描述 DateTime: 需要进行日期转换的数,整型,为输入参数 Year: 年,整型或实型,转换后得到的数据,输出参数 Month: 月,整型或实型,转换后得到的数据,输出参数 Day: 日,整型或实型,转换后得到的数据,输出参数 例如: 自 UTC(格林尼治)时间 1970 年 1 月 1 日 00:00:00 到 2003 年 8 月 8 日 0:8:9 的秒的数值为 1060301289,使用 GetDate()函 数可以从这个数值中分离出所表示的日期——年、月、日。 函数 GetDate(1060301289,年,月,日); 执行后,得到的“年” 的值为 2003, “月” 的值为 8, “日” 的值为 8。 获得其中时间的函数为 GetTime()。 参数

GetGroupName
此函数为通过报警组 ID 号获得报警组名称。在组态王中,每个报警 组除了名称外,还有 ID 号。组态王的变量域“.Group”显示的是变 量所属报警组的 ID 号,如果要获得相应的报警组名称,就需要使用 该函数。 语法使用格式 sGroupName= GetGroupName(StationName,GroupID); 参数 描述

北京亚控科技发展有限公司

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

19

StationName: 报警组所在的站点名称(该项暂时无效,使用 时用空字符串代替) GroupID: 要获取名称的报警组的 ID 号 返回值为字符串型。 例如: GroupName=GetGroupName(“”, \\本站点\原料罐液位.Group);

GetKey
此函数为获得组态王当前使用的加密锁的序列号。 语法使用格式 KeyID=GetKey(); 该函数没有任何参数。返回值为字符串型。

GetStationStatus
此函数用于在组态王进行网络历史数据备份合并时获得备份的状 态。使用时需要通过命令语言调用来获得状态值。 语法使用格式: BOOL GetStationStatus( str szStationName); 参数:szStationName 远程站点名称。 返回值:离散型, >0 正在备份数据 =0 空闲。 例如: 备份状态= GetStationStatus (“IO 采集站”);

GetTime
此函数将以秒为单位的长整型数转换为相应的时间数值, 分别以时、 分、秒等的时间数值输出。该长整型秒数的基准为 UTC(格林尼治) 时间 1970 年 1 月 1 日 00:00:00。转换完成输出的时间也为 UTC(格 林尼治)时间。 语法使用格式

北京亚控科技发展有限公司

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

GetTime(DateTime,Hour,Minute,Second);
参数 描述 DateTime: 需要进行时间转换的数,整型,为输入参数 Hour: 时,整型或实型,转换后得到的数据,输出参数 Minute: 分,整型或实型,转换后得到的数据,输出参数 Second: 秒,整型或实型,转换后得到的数据,输出参数

例如: 自 UTC(格林尼治)时间 1970 年 1 月 1 日 00:00:00 到 2003 年 8 月 8 日 0:8:9 的秒的数值为 1060301289,使用 GetTime () 函数可以从这个数值中分离出所表示的日期——时、分、秒。 函数 GetDate(1060301289,时,分,秒); 执行后,得到的“时” 的值为 0, “分” 的值为 8, “秒” 的值为 9。 获得其中日期的函数为 GetDate ()。

GetStruct 此函数是利用结构变量的成员来获得整个结构的信息。语法
使用格式如下:

GetStruct(TagName, TempName); 返回值为整型:0-表示获得信息成功 -1-表示结构变量赋值错误 -2-表示结构变量名称错误 参数说明:TagName:结构变量的变量名,为字符型参数。 TempName:结构变量的结构名 例如: 定义的结构模板为开关 1, 开关 2, 两个模板的成员和类型是一样的。 都包含两个实型成员电流和电压。在数据词典中定义两个结构变量: 开关 A 和开关 Temp,变量类型分别是结构“开关 1”和“开关 2” 。 GetStruct(“开关 A.电流”,开关 Temp);

北京亚控科技发展有限公司

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

21

运行结果是将结构“开关 A”的所有信息都传送给结构“开 关 Temp” 。 请注意 “开关 A.电流” 作为一个字符串参数, 模板 “开关 1” 和“开关 2”结构一致。 HidePicture
此函数用于隐藏正在显示的画面,但并不将其从内存中删除。调用 格式: HidePicture("画面名"); 例如: HidePicture("反应车间");

HTConvertTime
此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒 为单位的长整型数,转换的时间基准是 UTC(格林尼治)1970 年 1 月 1 日 00:00:00。例:北京为东八区,那么转换的时间基准为 1970 年 1 月 1 日 8:00:00。 语法使用格式

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

注: 调用此函数将用年、月、日、时、分、秒表示的时间转换成自 1970

北京亚控科技发展有限公司

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

年 1 月 1 日 00:00:00 即 UCT 起到该时刻所经过的秒数。 例如: 语句 HTConvertTime(1970,1,1,9,0,0)执行后返回长整型数 为 3600;

HTGetPenName
此函数返回指定趋势的指定笔号当前所用的变量名。调用格式: MessageResult=HTGetPenName(HistoryName,PenNum); 参数 描述 HistoryName 历史趋势变量,代表趋势名称。 PenNum 表示笔号的整型变量或整数值(从 1 到 8)。 函数将 返回代表此指定笔的字符串变量。 例如: 用变量名 Trend1 检索趋势笔 Pen2 的变量名,并将结果放在 字符串变量 TrendPen 中。调用函数 TrendPen=HTGetPenName(Trend1 , 2 );

HTGetPenRealValue
此函数用于获取指定历史趋势曲线中的趋势笔所对应的实际值。 调用格式: HTGetPenRealValue(HistroyName,PenNum,ContentString); 参数说明 HistroyName 指在“历史趋势曲线”对话框中定义的历史趋势曲 线名称 PenNum 与历史趋势曲线中的一个变量相对应的趋势笔的索 引号 ContentString 字符串常量 “start” 表示获取与历史趋势曲线的域ValueStart相对应 的实际值, ValueStart是用工程百分比来表示变量

北京亚控科技发展有限公司

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

23

“end”

的下限值,start则表示将下限值的工程百分比转 换为实际值。 表示获取与历史趋势曲线的域ValueEnd相对应的实 际值, ValueEnd是用工程百分比来表示变量的上限 值,end则表示将上限值的工程百分比转换为实际 值。

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

最大上限值

500

对应的工程百分比为 100%

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

如果用 ValueStart 和 ValueEnd 输出显示,则显示的数据是 温度值的工程百分比,如 ValueEnd 的输出为 50,表示百分 比是 50%,如果使用函数语句 HTGetPenRealValue(histroy,1,“end”); 则函数返回工程百分比 50%对应的实际值 500*50%=250, 其中 history 为历史趋势曲线名,1 表示对应温度的趋势笔。

HTGetTimeAtScooter
此函数返回一个长整数,表示以 GMT(格林尼治时间)1970 年 1 月 1 日 00:00:00 为起点(北京时间为 1970 年 1 月 1 日 08:00:00)的以

北京亚控科技发展有限公司

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

秒计的相对时间,指示器位置由 ScootNum 和 ScootLoc 指定。 调用格式: IntegerResult=HTGetTimeAtScooter(HistoryName,ScootNu m); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 ScootNum 整数,代表左或右指示器(1=左指示器,2=右指示器)。 当趋势曲线的 ChartStart、ChartLength、ScootNum 或指示器位置 改变时都会引起此表达式被计算。 例如: 下面的语句在趋势曲线 Trend1 左指示器的当前位置给出以 秒为单位的时间值: TimeLength=HTGetTimeAtScooter(Trend1 ,1);

HTGetTimeStringAtScooter
此函数返回包含时间/日期的字符串,指示器的位置由 ScootNum 和 ScootLoc 指定。调用格式: MessageResult=HTGetTimeStringAtScooter(HistoryName,S cootNum,pTextFormat); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 ScootNum 整数,代表左或右指示器(1=左指示器,2=右指示 器)。 pTextFormat 指定要使用的时间/时期格式的字符串。可为下列值 之一。 "Date" 以 Windows 控制面板相同的格式显示日期。 "Time" 以 Windows 控制面板相同的格式显示时间。 "DateTime" 同时显示日期和时间。 当趋势曲线的 ChartStart、ChartLength、ScootNum 或指示器位置

北京亚控科技发展有限公司

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

25

改变时都会引起此表达式被计算。字符串的格式决定了返回值的内 容。. 例如: 在变量为 Trend1 的右指示器的当前位置给出日期/时间值。 这个值被存在字符串变量 NewRightTimeString 中,格式 是”Time”,调用函数 NewRightTimeString=HTGetTimeStringAtScooter ( Trend1, 2, "Time" );

HTGetValue
此函数返回一个按整个趋势的指定笔所要求的类型的值。 调用格式: RealResult=HTGetValue(HistoryName,PenNum,ContentStri ng); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 PenNum 代表笔号的整型变量或值。(1 到 8 ) ContentString 表明返回值类型的字符串。 可以是以下字符串之一。 "Averagevalue 整个趋势的平均值。 " "MaxValue" 整个趋势的最大值。 "MinValue" 整个趋势的最小值。 此函数返回一内存实型变量,它代表按给出类型算出的值。 例如: 下面的语句得到趋势 Trend1 的 Pen2 所取得数据的最大值。 算出的值存到内存实型变量 LeftHemisphereSD 中: LeftHemisphereSD=HTGetValue(Trend1,2 , "MaxValue");

北京亚控科技发展有限公司

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

HTGetValueAtScooter
此函数返回一个样本在指定的指示器位置、趋势和笔号所要求的类 型的的值。调用格式: RealResult=HTGetValueAtScooter(HistoryName,scootNum, PenNum,ContentString); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 ScootNum 代表左或右指示器的整数(1=左指示器,2=右指示 器)。 PenNum 代表笔号的整型变量或值。(1 到 8) ContentString 代表返回值类型的字符串,可以为以下字符串之一: "Value" 取得在指示器位置处的值。 "Valid" 判断取得的值是否有效。返回值为 0 表示取得的 值无效,为 1 表示有效。 若是“Value”类型,则返回模拟值。若是“Valid”类型,则返回 离散值。 例如: 采集趋势曲线 Trend1 的笔 Pen3 在右指示器的当前值。若此 值有效,则在内存离散变量 ValidFlag 中存入 1,无效,则 存入 0: ValidFlag=HTGetValueAtScooter(Trend1,2,3 , "Valid");

HTGetValueAtZone
此函数返回一包含在某一趋势指定笔的左右指示器之间的数据中所 要求类型的值。调用格式: RealResult=HTGetValueAtZone(HistoryName,PenNum, ContentString); 参数 描述 HistoryName 历史趋势变量,代表趋势名。

北京亚控科技发展有限公司

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

27

PenNum ContentString

"Averagevalue " "MaxValue" 左右指示器间区域上的最大值。 "MinValue" 左右指示器间区域上的最小值。 此 函 数 直 接 使 用 运 行 数 据 库 的 趋 势 变 量 的 .ScooterPosLeft 和.ScooterPosRight 域来确定区域边界,并返回计算值。 例如: 取得趋势曲线“Trend1”的 Pen1 代表的变量左右指示器之 间的平均值,并把结果存入内存实型变量 AvgValue 中。调 用函数 AvgValue=HTGetValueAtZone(Trend1, 1, "Averagevalue");

代表笔号的整型变量或值。(1 到 8) 表明要返回值的类型的字符串,可以是以下 3 个字 符串之一: 左右指示器间区域上的平均值。

HTScrollLeft
此函数将趋势曲线的起始时间左移(提前)给定的百分比值。百分 比是相对于趋势曲线的时间轴长度。 移动后时间轴的长度保持不变。 调用格式: HTScrollLeft(HistoryName,Percent); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 Percent 实数,代表图表要滚动的百分比(0.0 到 100.0)。 例如: 将趋势曲线 Trend1 的时间轴向左滚动(提前)10%,调用函 数 HTScrollLeft(Trend1,10.0); 若当前显示起始于下午 12:00:00 ,而且显示宽度为 60 秒。 在函数执行后,新的趋势曲线将起始于上午 11:59:54。

北京亚控科技发展有限公司

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

HTScrollRight
此函数将趋势曲线的起始时间右移给定的百分比值。百分比是相对 于趋势曲线的时间轴长度。移动后时间轴的长度保持不变。调用格 式: HTScrollRight(HistoryName,Percent); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 Percent 实数,代表图表要滚动的百分比(0.0 到 100.0)。 例如: 将趋势曲线 Trend1 的间轴范围向右滚动 20%。调用函数 HTScrollRight(Trend1,20.0); 若当前显示起始于下午 12:00:00,而且显示宽度为 60 秒, 则新的趋势将起始于下午 12:00:12 (在函数执行后)。

HTSetLeftScooterTime
此函数用于设置历史趋势曲线的时间坐标起点。 调用格式:

HTSetLeftScooterTime(HistoryName,LeftScooterT ime);
参数 HistoryName LeftScooterTime 描述 历史趋势曲线名称,在“历史趋势曲线” 对话框中定义。 历史趋势曲线的时间坐标起点值。一个 以 GMT( 格 林 尼 治 时 间 )1970 年 1 月 1 日 00:00:00为起点(北京时间为1970年1月 1日08:00:00)的以秒计的相对时间。

北京亚控科技发展有限公司

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

29

HTSetPenName
此函数给一趋势笔赋以不同的变量名。 调用格式: HTSetPenName(HistoryName,PenNum,TagNameString); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 PenNum 代表笔号(从 1-8)的整型变量名或整数值, TagnameString 代表赋给此笔的新变量名,可以使用远程变量 名。 例如: 将 趋 势 曲 线 Trend1 的 Pen3 代 表 的 变 量 设 置 为 OutletPressure,调用函数 HTSetPenName(Trend1, 3, ”OutletPressure”);

HTUpdateToCurrentTime
此函数将趋势曲线的终止时间设置为当前时间,时间轴长度保持不 变。主要用于查看最新数据。调用格式: HTUpdateToCurrentTime(HistoryName); 参数 描述 HistoryName 历史趋势变量,代表趋势名。 例如: 显示历史趋势曲线“Trend1”在当前时间的最新数据,调用 函数 HTUpdateToCurrentTime(Trend1); 若现在是下午 3:04 且趋势宽度为 60 秒,则新的终止时间将 为下午 3:04。新的起始时间将为下午 3:03。

HTZoomIn
此函数更改趋势曲线的起始时间和截止时间。 通过缩短时间轴长度,

北京亚控科技发展有限公司

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

以使趋势曲线局部放大。调用格式: HTZoomIn(HistoryName,AlignPosString); 参数 描述 HistoryName 代表趋势名称的历史趋势变量 AlignPosString 代表缩放类型的字符串。可以为以下字符串之一: "StartTime" 保持起始时间与缩放前相等 "Center" 保持中心时间与缩放前相等 "EndTime" 保持终止时间与缩放前相等 注意: 更改后的起始时间和截止时间与更改前两个指示器 的位置 (曲线的 ScortPosLeft 和 ScortPosRight 域的值) 有关。 若更改前指示器的位置不在曲线两端, 则更改后宽 度为于 ScortPosLeft 与 .ScortPosRight 之间的时间, 在此情况下,LockString 值无用。最小的图表宽度为 1 秒 。 在 缩 放 后 , 新 曲 线 的 ScootPosLeft 域为 0.0 , ScorterPosRight 域为 1.0。

例如: 下面的语句将显示缩小为原来的二分之一,并保持趋势变量 “Trend1”的起始时间不变。Trend1.ScorterPosRight 等于 0.0。若缩小前的起始时间为下午 1:25:00,图表宽度为 30 秒,则缩小后起始时间将仍为 1:25:00,而图表宽度则变为 15 秒。调用函数 HTZoomIn(Trend1,"StartTime");

HTZoomOut
此函数计算新曲线的宽度和起始时间,曲线宽度为函数调用前的二

北京亚控科技发展有限公司

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

31

倍,新起始时间依 LockString 的值算出。调用格式: HTZoomOut(HistoryName,AlignPosString); 参数 描述 HistoryName 代表趋势名称的历史趋势变量。 AlignPosString 代表缩放类型的字符串, 可为以下三个字符串之 一: "StartTime" 保持起始时间与缩放前相等 "Center" 保持中心时间与缩放前相等 "EndTime" 保持终止时间与缩放前相等 指 示 器 的 位 置 对 HTZoomOut 没 有 影 响 , 但 函 数 被 调 用 后 将 置 ScortPosLeft 域为 0.0,ScorterPosRight 域设为 1.0。 例如: 下面的语句将时间轴长度设置为原来的二倍,并保持趋势变 量“Volume”的中心时间不变。若在缩放前的起始时间为下 午 12:15:00,图表宽度为 30 秒,则伸缩后的起始时间将变 为 2:14:45,图表宽度将变为 60 秒,趋势的中心时间仍为 2:15:15。 HTZoomOut("Volume","Center");

InfoAppActive
此函数测试一个应用程序是否为活动的。调用格式: DiscreteResult=InfoAppActive("ExeName"); 返回值:离散值; 参数 描述 ExeName 应用程序的执行文件名 例如: InfoAppActive("Excel.exe"); 若返回 1,表明 Excel 程序正在运行;返回 0 表明未运行。

北京亚控科技发展有限公司

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

InfoAppDir
此函数返回当前组态王的工程路径。调用格式: MessageResult=InfoAppDir(); 当前组态王工程路径返回给 MessageResult. 例如: InfoAppDir();将返回 "c:\demoapp1"

InfoAppTitle
此函数返回应用程序的标题或者一个当前正在运行的指定程序的 Windows 任务列表名。调用格式: MessageResult=InfoAppTitle(ProgramEXEName); 返回值:字符型值; 参数 描述 ProgramEXEName 应用程序的执行文件名。 例如: InfoAppTitle;("calc.exe") 将返回 "Calculator" InfoAppTitle;("excel.exe") 将返回 "Microsoft Excel"

InfoDisk
此函数返回指定的本地(或网络)磁盘驱动器信息。调用格式: IntegerResult=InfoDisk(Drive,InfoType,Trigger); 参数 描述 Drive 代表驱动器号的字符串或字符串变量。 若提供的字符串变 量包含多于一个的字符,则只使用此变量的首字符。 InfoType 代表信息类型的整数,可为以下两个值之一: 1 返回磁盘驱动器的总空间数(以字节计)。 2 返回磁盘驱动器上可用的空闲空间数(以字节计)。 Trigger 每当 Trigger 的值改变时,执行 InfoDisk() 函数。 Trigger 可为任何变量名(不受系统变量的限制)。

北京亚控科技发展有限公司

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

33

由驱动器号指定的磁盘驱动器的有关信息返回给 IntegerResult。 例如: 下面的语句每分钟执行一次并返回当前的值: InfoDisk("C", 1, $分);将返回 233869345{总空间数} InfoDisk("C", 2, $分);将返回 3238935{空闲空间数}

InfoFile
此函数返回指定文件或子目录的有关信息。调用格式: IntegerResult=InfoFile(Filename,InfoType,Trigger); 参数 描述 Filename 代表要处理的文件名的字符串。 InfoType 代表要获取的信息的类型的整数,可为以下值之一: 1 查找文件是否存在。若文件名是一个实际文件,返回 1。若找 不到文件则返回 0。 2 文件大小(字节数) 。 3 文件日期/时间(自 1970 年 1 月 1 日起的相对秒数) 4 与文件名描述相匹配的文件数。 仅当使用通配符查找并找到多 个匹配的文件时,返回值大于 1。 Trigger 为 任 一 变 量 名 , 每 当 Trigger 的 值 改 变 时 , 将 执 行 InfoFile() 函数。 由文件名指定的文件的有关信息返回给 IntegerResult。文件名必 须包括文件的完整路径,可包含通配符(*,?)。 例如: 下面的语句每分钟执行一次并返回下列值: InfoFile("c:\kingview\touchvew.exe", 1, $分);将返回 1, {文件找到} InfoFile("c:\kingview\touchvew.exe", 2, $ 分); 将 返 回 634960,{文件大小} InfoFile("c:\kingview\touchvew.exe", 3, $ 分); 将 返 回

北京亚控科技发展有限公司

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

736701852, {自 70 年 1 月 1 日起的秒数} InfoFile("c:\kingview\*.exe", 4, $分);将返回 4,{找到 4 个可执行文件}。

InfoResource
此函数返回各种系统资源值。调用格式: IntegerResult=InfoResource(ResourceType,Trigger); 参数 描述 ResourceType 代表要监视的资源类型的整数,可为以下值之一: 1 返回 GDI 资源可用空闲空间的百分比。 2 返回 USER 资源可用空闲空间的百分比。 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
此函数返回小于等于指定数值的最大整数。调用格式:

北京亚控科技发展有限公司

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

35

IntegerResult=Int(Number); 参数 描述 Number 任一数字或者组态王的实型或整型变量名。 例如: Int(4.7);将返回 4 Int(-4.7);将返回 -5

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

listLoadList
此函数用于将 CSV 文件 Filename 中的列表项调入指定的列表框控件 ControlName 中,并替换列表框中的原有列表项。列表框中只显示 列表项的成员名称(字符串信息) ,而不显示相关的数据值。 语法格式使用如下: listLoadList("ControlName","Filename"); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 Filename:csv 文件,用写字板程序进行编辑,用以存放列表框中 要显示的列表项。 例如: listLoadList("组合框信息","c:\组态王\list.csv"); 此语句将指定的文件 list.csv 调入名为组合框信息的列表 框中并显示出来。

北京亚控科技发展有限公司

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

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

listSaveList
此函数用于将列表框控件 ControlName 中的列表项信息存入 CSV 文 件 Filename 中。如果该文件不存在,则直接创建。 语法格式使用如下: listSaveList("ControlName","Filename"); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 Filename:CSV 文件,按一定格式用以存放列表框中的列表项。 例如: listSaveList("组合框信息","c:\组态王\list.csv"); 此语句将组合框信息列表框中的列表项存入到文件 c:\组态 王\list.csv 中。 注: 如果没有给出 CSV 文件所在的完整路径,则该函数在组态王 所在的路径下创建该文件。

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

北京亚控科技发展有限公司

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

37

ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 MessageTag:字符串值,表示增加到指定列表框控件的成员项字符 串信息。 例如: listAddItem("报警信息","温度报警"); 此语句将“温度报警” 字符串信息增加到列表框控件报警信 息中并显示出来。 listAddItem("配方信息","巧克力面包"); 此语句将“巧克力香型面包” 字符串信息增加到列表框控件 配方信息中并显示出来。

listClear
此函数将清除指定列表框控件 ControlName 中的所有列表成员项。 语法格式使用如下: listClear("ControlName"); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 例如: listClear("报警信息"); 此语句将清除报警信息列表框中的所有列表成员项。

listDeleteItem
此 函 数 将 在 指 定 的 列 表 框 控 件 ControlName 中 删 除 索 引 号 为 ItemIndex 的成员项。 语法格式使用如下: listDeleteItem("ControlName",ItemIndex); 参数说明:

北京亚控科技发展有限公司

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

ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 ItemIndex:列表框控件中的成员项索引号,通常为数字常量或整型 变量。 例如: listDeleteItem("报警信息",1); 此语句将在报警信息列表框中删除索引号为 1 的成员项。 listDeleteItem("配方信息",5); 此语句将在配方信息列表框中删除索引号为 5 的成员项。

listDeleteSelection
此函数将删除列表框控件 ControlName 中当前选定的成员项。 语法格式使用如下: listDeleteSelection("ControlName"); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 例如: listDeleteSelection("报警信息"); 此语句将在报警信息列表框中删除当前选定的成员项。

listFindItem
此函数用于查找与给定的成员字符串信息 MessageTag 相对应的索 引号,并送给整型变量 IndexTag。 语法格式使用如下: listFindItem("ControlName","MessageTag",IndexTag); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。

北京亚控科技发展有限公司

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

39

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。

北京亚控科技发展有限公司

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

语法格式使用如下: listGetItemData("ControlName",ItemIndex,NumberTag ); 参数说明: 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, “炉温”);

北京亚控科技发展有限公司

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

41

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

listSetItemData
此函数用于将变量 Number 的值设置索引号为 ItemIndex 的列表项 中。 语法格式使用如下: listSetItemData("ControlName",ItemIndex, Number ); 参数说明: ControlName:工程人员定义的列表框控件名称,可以为中文名或英 文名。 ItemIndex:数值常量或变量,表示列表索引号。 Number:整型变量,用以存放数据值。 例如: listSetItemData("组合框信息",2,Number); 此语句将变量 Number 中的值设置到索引号为 2 的列表项。

ListLoadFileName
此函数将字符串常量 StringTag 指示的文件名显示在列表框中。 ListLoadFileName("CtrlName","*.ext"); 参数说明: CtrlName: 工程人员定义的列表框控件名称,可以为中文名或英文 名。 *.ext: 字符串常量,工程人员要查询的文件,支持通配符。 例如: ListLoadFileName(“ 报 警 文 件 列 表 ”, “c:\appdir\alarm\*.alg”); 此语句将 c:\appdir\alarm 目录下的后缀为.alg 的文件名显 示在列表框中。

北京亚控科技发展有限公司

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

LoadText
此函数将指定的 RTF 或 TXT 格式文件调入到超级文本显示控件中加 以显示。 语法格式使用如下: LoadText( "ControlName", "FileName", ".Txt Or .Rtf" ); 参数说明: ControlName:工程人员定义的超级文本显示控件名称,可以为中文 名或英文名。 FileName:RTF 或 TXT 格式的文件,可用 WINDOWS 的写字板编写这 两种格式的文件。 .Txt Or .Rtf:指定文件为 RTF 格式或 TXT 格式。 例如: LoadText("hypertext1","D:\Test\recipe\ht1.rtf", ".Rtf"); 此语句把 RTF 格式的文件 ht1.rtf 调入到名称为 hypertext1 的超级文本显示控件中加以显示。

LogE
此函数返回对数函数loge 的计算结果, X为变量值, 调用格式: Log(变量值); 例如: Log(100);返回 loge100 计算值 4.605 Log(1);返回 loge1 计算值 0
x

LogN
此函数返回以 n 为底的 x 的对数。以 1 为底的对数没有定义。调用 格式: Result=LogN(Number,base);

北京亚控科技发展有限公司

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

43

参数 Number base 例如:

描述 任一数字或者组态王的实型或整型变量名。 做底的整数。 LogN(8, 3);将返回 1.89279... LogN(3, 7);将返回 0.564...

LogOff
此函数用于在 TOUCHVEW 中退出登录。调用格式: LogOff( ); 参数 无

LogOn
此函数用于在 TouchVew 中登录。调用格式: LogOn( ); 参数 无 例如: 为画面上某个按钮建立命令语言连接: LogOn( ); 画面程序运行时单击此按钮,弹出“登录”对话框:

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

北京亚控科技发展有限公司

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

LogString
此函数写一个工程人员自定义消息到组态王。调用格式: LogString(String); 参数 描述 String 要记录到组态王的字符串。 例如: LogString("Report script is Running");

Max
此函数用于求得两个数中较大的一个数。 例如: MaxValue = Max(Max(var1,var2), var3 ); 此函数返回值 MaxValue 为 var1、var2、var3 中最大的数。 其中参数个数为 1-32 个。

Min
此函数用于求得两个数中较小的一个数。 例如: MinValue=Min(Min(var1,var2),var3); 此函数返回值 MinValue 为 var1、var2、var3 中最小的数。 其中参数个数为1-32个。

MovePicture
此函数用于在系统运行时通过命令语言来移动画面到相应的位置。 语法格式使用如下:

MovePicture(PicName,left,top);
参数 PicName: Left: 描述 要移动的画面名称,字符串型 画面移动目标位置—画面的左边界坐标,整型

北京亚控科技发展有限公司

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

45

Top:

画面移动目标位置—画面的上边界坐标,整型

PageDown
用于报警窗口信息的向前翻页显示。调用形式: PageDown(报警窗口名,翻页行数); 例如: PageDown(全厂历史报警记录窗口,7); 该调用将“全厂历史报警记录窗口”的报警记录向下翻 7 行 (如果有足够报警记录的话) 。

PageUp
用于报警窗口信息的向后翻页显示。调用格式: Pageup(报警窗口名,翻页行数); 例如: PageUp(全厂历史报警记录窗口,7); 该调用将“全厂历史报警记录窗口”的报警记录向上翻 7 行 (如果有足够报警记录的话).

PI
此函数返回圆周率的值。调用格式: RealResult=PI(); 例如: PI( );将返回 3.1415926...

PlayAvi
此函数用于播放动画,动画为.avi 文件。 调用格式: PlayAvi("CtrlName",filename,option); 参数及其描述

北京亚控科技发展有限公司

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

CtrlName:用于播放播放 AVI 动画的控件的名称。 filename:代表要播放的动画文件的字符串或字符串变量。 option:可为下述之一: 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 形式音频设备驱动器上播放。 声音文 件目录的查找按以下顺序: 当前目录; Windows 目录; Windows

北京亚控科技发展有限公司

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

47

系统目录;在路径中列出的目录。若缺省的声音文件或系统 缺省的声音文件找不到,则不播放声音。 PlaySound ("",4); 蜂鸣器报警。

Pow
此函数求得一模拟值或模拟变量的任意次幂。调用格式: Result=Pow(x, y); 参数 描述 x 底数 y 指数 返回值为 x 的 y 次幂。 例如: Result=Pow(2, 3); 函数调用后 Result=8.0

PowerCheckUser
此函数当用户希望进行一项操作时 (如分闸或合闸) 为防止误操作, , 需要进行双重认证。即在身份认证对话框中,既要输入操作者的名 称和密码,又要输入监控者的姓名和密码,两者验证无误时方可操 作。调用该函数后,弹出身份验证对话框。调用格式: Result= PowerCheckUser(string OperatorName, string MonitorName); 参数 描述 OperatorName 返回的操作者姓名 MonitorName 返回的控制者姓名 Result 1:验证成功,0:验证失败 例如: Result= PowerCheckUser(OperatorName, MonitorName);

北京亚控科技发展有限公司

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

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,以免位图被拉长。 xStart 要打印的窗口横向空白长度的百分比。 YStart 要打印的窗口纵向空白长度的百分比。 许多报表可通过使用此函数进行排队打印。字体原样打印,对 象则被位图化而且以位图的形式打印。白色背景并且仅仅包含文字 的窗口可以很快打印出来。若打印彩色背景并且包含许多对象的窗 口将花费较长的时间。 若要确保窗口中的文本能被正确打印,建议将所有要被打印的 窗口中的文体域设置为“True Type”字体。 当打印画面上的按钮时,按钮上的文本中可能被“切除” ,因为用在 按钮文本上的字体为“System”字体,它不是“True Type”字体。 另外, “System”字体用在打印机上与用在屏幕上相比略有不同。若

北京亚控科技发展有限公司

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

49

发生了这种情况。请试着把按钮放大。 下图显示了 xScale,YScale,xStart,yStart 之间的关系:

xScal

YScale

yStart

xStar

例如: 每天上午 8:30 打印三页报表,使用命令语言: if ( $时 == 8 && $分 == 30 ) { PrintWindow("1st Shift Summary",0,0,0,10,10); PrintWindow("2nd Shift Summary",0,0,0,10,10); PrintWindow("3rd Shift Summary",0,0,0,10,10); } 命令语言应用程序的执行优先于此函数的执行。若命令语言 应用程序频繁运行的话,例如如每 200 毫秒运行一次,窗口 的打印可能要多花费些时间。

pvAddNewRealPt
此函数用于在指定的温控曲线控件中增加一个采样实时值。

北京亚控科技发展有限公司

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

语法格式使用如下: 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($秒) pvAddNewRealPt( "反应罐温控曲线", 10, 反应罐实时温度, TimeString ); 此语句在反应罐温控曲线控件中给出变量反应罐实时温度的 采样实时值。此采样实时值距前一值的时间间隔值为 10,当 游标移动到此点时,给出 TimeString 中的提示性信息。

北京亚控科技发展有限公司

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

51

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

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

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

北京亚控科技发展有限公司

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

原设定曲线第一点(0,0)变为(0,20) ;

pvAddNewSetPt
此函数用于在指定的温控曲线控件中增加一段温度设定曲线。适用 于自由设定模式。 语法格式使用如下: pvAddNewSetPt( "ControlName", TimeOffset, Value ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 timeOffset: 相对前一采样点的时间偏移量(即距前一值的时间间隔 值),第一个值取 0。 Value:温度的设定值,实型数据。 例如: pvAddNewSetPt( "反应罐温控曲线", 1, 38, ); 此语句在反应罐温控曲线控件中增加一段温度设定曲线,其 设定温度为 38 度,此设定值距前一值的时间间隔值为 1。

pvClear
此函数用于在指定的温控曲线控件中删除温控实时曲线或温控设定

北京亚控科技发展有限公司

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

53

曲线。 语法格式使用如下: pvClear( "ControlName", IsRealCurve ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 IsRealCurve: 确定是温控实时曲线或温控设定曲线,布尔型变量。 1 清除温控实时曲线 0 清除温控设定曲线 例如: pvClear("反应罐温控曲线", 0 ); 此语句清除反应罐温控曲线控件中的温度设定曲线。 pvClear("反应罐温控曲线", 1 ); 此语句清除反应罐温控曲线控件中的温度实时曲线。

pvGetValue
此函数用于在指定的温控曲线控件中获取指定时刻的温度设定值或 指定时刻的温度实时值,若指定时刻无采样,则返回该时刻前最近 的一次采样值。 语法格式使用如下: pvGetValue( "ControlName", timeOffset, TagName, "option" ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中 文名或英文名。 timeOffset: 相对时间坐标原点的时间偏移量(也就是绝对 时间坐标) ,第一个值取 0。 TagName: 组态王数据库中定义的 I/O 实数变量。 option: 确定是温度设定值或温度实时值, 字符串常量,如

北京亚控科技发展有限公司

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

下所示。 RealValue 温度实时值 SetValue 温度设定值 例如: pvGetValue( " 反 应 罐 温 控 曲 线 ",5, 反 应 罐 实 时 温 度,"RealValue" ); 此语句从反应罐温控曲线控件中获取指定时刻的温度实时 值,该值距坐标原点的时间间隔为 5,并将该值存放到变量 反应罐实时温度中。 pvGetValue( " 反 应 罐 温 控 曲 线 ",5, 反 应 罐 设 定 温 度,"SetValue" ); 此语句从反应罐温控曲线控件中获取指定时刻的温度设定 值,该值距坐标原点的时间间隔为 5,并将该值存放到变量 反应罐设定温度中。

pvIniPreCuve
此函数用于初始化设定曲线。 语法格式使用如下: pvIniPreCuve( "ControlName", "fileName" ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 fileName:fileName 文件以文本文件格式(.csv),编排格式: SetData 曲线点数 曲线第一点的位置 第一段升温速率,设定温度,保温时间 第二段升温速率,设定温度,保温时间 第三段升温速率,设定温度,保温时间

北京亚控科技发展有限公司

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

55

... 第 n 段升温速率,设定温度,保温时间

编排格式注意: SetData、 曲线点数、 曲线第一点的位置末和每 一段曲线参数升温速率、设定温度、保温时间输完以后, 该行末不能加空格或其他符号。

例如: 设文件 pvset.csv 以.csv 格式存放数据如下: SetData 20 39.000000 10.000000,20.000000,0 10.000000,20.000000,10 20.000000,20.000000,10 30.000000,20.000000,10 40.000000,20.000000,10 如下图所示,用计事本编写完后用.csv 为后缀存盘,则该文 件即可被此控件函数使用。 用记事本编辑格式文件的示意图如下:

北京亚控科技发展有限公司

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

pvIniPreCuve( "加热炉温控曲线","c:\pvset.csv” ); 此语句将加热炉的初始化温控曲线设定为下图所示的曲线:

温度

设定温度 80 度

设定温度 50 度

升温速率 15

升温速率 10

第一段温控曲线

第二段温控曲线

时间

pvLoadData
此函数用于从指定的文件中读取温控设定曲线或温控实时曲线的采 样历史数据值,文件名后缀必须为.csv。

北京亚控科技发展有限公司

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

57

语法格式使用如下: pvLoadData( "ControlName", "FileName", "option" ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 FileName: FileName 文件以.csv 格式按曲线段数、各段升温速 率、设定温度、保温时间依次存放设定温控曲线信 息或温控实时曲线的采样历史数据值,文件名后缀 必须为.csv option: 确定是读取温控设定曲线或温控实时曲线的采样历史 数据值,字符串常量。 “RealValue” 读取温控实时曲线的采样历史数据值 “SetValue” 读取温控设定曲线 例如: 设文件以.csv 格式存放数据同初始化设定曲线的文件格式, 例如: SetData 20 39.000000 10.000000,20.000000,0 10.000000,20.000000,10 20.000000,20.000000,10 30.000000,20.000000,10 40.000000,20.000000,10 存为 c:\setvalue.csv ,并用下面的函数调用,在温控曲线 控件中显示出来 pvLoadData( "反应罐温控曲线"," c:\setvalue.csv ", "SetValue" ); 此语句读取温控设定曲线并传送到反应罐温控曲线控件中显

北京亚控科技发展有限公司

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

示出来。 pvLoadData( " 反 应 罐 温 控 曲 线 ","fileName ","RealValue" ); 此语句读取温控实时曲线的采样历史数据值并传送到反应罐 温控曲线控件中显示出来。

pvModifyPrevalue
此函数用于在指定的温控曲线控件中修改某段温控设定曲线。 语法格式使用如下: pvModifyPrevalue( "ControlName", Index, Tane, SetValue, timeStore ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 Index: 温控曲线段索引编号。 Tane:设置温控曲线段的升温速率 SetValue:设置温控曲线段的设定温度 timeStore:设置温控曲线段的保温时间 例如: pvModifyPrevalue( "反应罐温控曲线", 2, 20,80,25 ); 此语句将反应罐温控曲线控件中的第二段温控设定曲线设置 为: 升温速率 20;设定温度 80;保温时间 25。

pvMoveSlide
此函数用于在指定的温控曲线控件中设置游标左移或右移。 语法格式使用如下: pvMoveSlide( "ControlName", leftORrightSlide, direction, numPt );

北京亚控科技发展有限公司

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

59

参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 leftORrightSlide: 设置左游标或右游标。 1 左游标 0 右游标 direction:设置游标的移动方向 1 向左移动,越界则不动作。 0 向右移动,越界则不动作。 numPt:设置游标移动的采样点数 例如: pvMoveSlide( "反应罐温控曲线", 0, 1, 3); 此语句执行后在反应罐温控曲线控件中将右游标左移动 3 个 采样点,并在游标指示处显示注释信息。

pvSaveData
此函数用于将指定的温控曲线控件中的温控设定曲线存放到指定的 文件中,存盘时,文件名自动添加.csv 后缀。 语法格式使用如下: pvSaveData( "ControlName", "FileName", "option" ); 参数说明: ControlName:工程人员定义的温控曲线控件名称,可以为中文名或 英文名。 FileName:FileName 文件以.csv 格式按曲线段数、各段升温速率、 设定温度、保温时间依次存放温控曲线信息。 option: 确定是存放温控设定曲线或温控实时曲线,字符串常量。 “SetValue” 存放温控设定曲线 例如: pvSaveData( " 反 应 罐 温 控 曲 线 ","fileName

北京亚控科技发展有限公司

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

","RealValue" ); 此语句把反应罐温控曲线控件中的温控实时曲线的采样历史 数据值以.csv 格式存放到文件 fileName 中。 pvSaveData( " 反 应 罐 温 控 曲 线 ","fileName ","SetValue" ); 此语句把反应罐温控曲线控件中的温控设定曲线以.csv 格式 存放到文件 fileName 中。

pvSetLimits
此函数用于改变指定的温控曲线控件的温度最大值、温度最小值、 温度分度数、时间最大值和时间分度数 语法格式使用如下: pvSetLimits("CtrlName",TempMax,TempMin,TempScale, TimeMax,TimeScale); 参数说明: CtrllName:工程人员定义的温控曲线控件名称,可以为中文名或英 文名。 TempMax:设置温控曲线的温度最大值,可以为正数或负数。 TempMin: 设置温控曲线的温度最小值,可以为正数或负数。 TempScale: 设置温控曲线的温度分度数,该变量应设置为整型变 量。 TimeMax: 设置温控曲线的时间最大值。 TimeScale: 设置温控曲线的时间分度数,该变量应设置为整型变 量。 例如: pvSetLimits( " 反 应 罐 温 控 曲 线 ",TempMax,TempMin,TempScale,TimeMax,TimeScale ); 此语句将反应罐温控曲线控件中温度最大值设置成变量 TempMax 的值,将温度最小值设置成变量 TempMin 的值,将

北京亚控科技发展有限公司

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

61

温度分度值设置成变量 TempScale 的值,将时间最大值设置 成变量 TimeMax 的值,将时间分度值设置成变量 TimeScale 的值。

ReBuildDDE
此函数用于重新建立 DDE 连接。 调用形式: ReBuildDDE(); 此函数无参数。

ReBuildUnConnectDDE
此函数用于重新建立未成功的 DDE 连接。 调用形式: ReBuild UnConnectDDE(); 此函数无参数。

RecipeDelete
此函数用于删除指定配方模板文件中当前指定的配方。 语法格式使用如下: RecipeDelete("filename", "recipeName" ); filename:指配方模板文件存放的路径和相应的文件名。 recipeName:指配方模板文件中特定配方的名字, 注:文件名和配方名如果加上双引号,则表示是字符串常量,若不 加双引号,则可以是组态王中的 DDE 或内存型字符串变量。 例如: RecipeDelete(“C:\recipe\北京面包厂.csv”,“配方 3”) ; 此语句将配方模板文件“北京面包厂.csv”中的配方 3 删除。

北京亚控科技发展有限公司

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

RecipeLoad
此函数将指定配方调入模板文件中的数据变量中。 语法格式使用如下: RecipeLoad(“filename”,“recipeName”) ; filename:指配方模板文件存放的路径和相应的文件名。 recipeName:指配方模板文件中特定配方的名字, 注:文件名和配方名如果加上双引号,则表示是字符串常量,若不 加双引号,则可以是组态王中的 I/O 型或内存型字符串变量。 例如: RecipeDelete(“C:\recipe\北京面包厂.csv”,“水果香型面 包”) ; 此语句将配方模板文件“北京面包厂.csv” 中的配方“水果 香型面包”调入到项目模板定义中的数据变量中。

RecipeSave
此函数用于存放一个新建配方或把对原配方的修改变化存入已有的 配方模板文件中。 语法格式使用如下: RecipeSave(“filename”,“recipeName”) ; Filename:指配方模板文件存放的路径和相应的文件名。 recipeName:指配方模板文件中特定配方的名字, 注 1:文件名和配方名如果加上双引号,则表示是字符串常量,若 不加双引号,则可以是组态王中的 I/O 型或内存型字符串变量。 注 2:配方模板文件必须存在,如果配方模板文件不存在,则要事 先创建配方模板文件,否则,调用此函数将失败,并返回 FALSE。 例如: RecipeSave(“C:\recipe\北京面包厂.csv”,“配方 3”) ; 此语句将配方的修改变化存入到配方模板文件“北京面包 厂.csv” 中的配方 3 中。如果“北京面包厂.csv” 中没有

北京亚控科技发展有限公司

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

63

配方 3,则系统自动创建。

RecipeSelectNextRecipe
此函数用于在配方模板文件中选择指定配方的下一个配方。 语法格式使用如下: RecipeSelectNextRecipe(“filename”, “recipeName”) ; filename:指配方模板文件存放的路径和相应的文件名。 recipeName:是一个字符串变量,存放工程人员选择的配方名字, 注:文件名和配方名如果加上双引号,则表示是字符串参数,若不 加双引号,则可以是组态王中的 I/O 型变量或内存型变量。 例如: RecipeSelectNextRecipe(“C:\recipe\北京面包厂.csv”, “配方 3”) ; 此语句运行后读取模板文件中“配方 3”的下一个配方, 如果 字符串变量 RecipeName 的值为空或没有找到, 则返回文件中 的第一个配方; 如果变量 RecipeName 的值为文件中的最后一 个配方,则仍返回此配方。 注:配方创建后是按序存放的。

RecipeSelectPreviousRecipe
此函数用于在配方模板文件中选择当前配方的前一个配方。 语法格式使用如下: RecipeSelectPreviousRecipe (“filename”, “recipeName”) ; filename:指配方模板文件存放的路径和相应的文件名。 recipeName:是一个字符串变量,存放工程人员选择的当前配方名 字, 注:文件名和配方名如果加上双引号,则表示是字符串参数,若不 加双引号,则可以是组态王中的 I/O 型变量或内存型变量。 例如:

北京亚控科技发展有限公司

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

RecipeSelectPreviousRecipe ( “C : \recipe\ 北 京 面 包 厂.csv”, “配方 3”) ; 此语句运行后读取模板文件中“配方 3”的的上一个配方, 如果 变量 RecipeName 的值为空或没有找到, 则返回文件中的最后 一个配方;如果变量 RecipeName 的值为文件中的第一个配 方,则仍返回此配方。 注:配方创建后是按序存放的。

RecipeSelectRecipe
此函数用于在指定的配方模板文件中选取工程人员输入的配方,运 行此函数后,弹出对话框,工程人员可以输入指定的配方,并把此 配方名送入字符串变量中存放。 语法格式使用如下: RecipeSelectRecipe ( “filename”, “recipeNametag” , “Mess”) ; filename:指配方模板文件存放的路径和相应的文件名。 recipeNametag: 是一个字符串变量, 存放工程人员选择的配方名字。 Mess:字符串提示信息,由工程人员自己设定。 例如: RecipeSelectRecipe ( “C : \recipe\ 北 京 面 包 厂 .csv” , RecipeName,“请输入配方名!”) ; 此语句运行后将弹出一个“选择配方”对话框,给出提示信 息“请输入配方名!,一旦工程人员从对话框中选择了一个 ” 配方, 则此函数将该配方的名字返回到变量 RecipeName 中存 放。

Report1
此函数将按源文件中规定的数据报告格式生成相应的实时数据报 告,此函数为 5.1 函数,建议 6.0 不使用该种报表制作方式。

北京亚控科技发展有限公司

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

65

使用格式: Report1(“源文件名”“目标文件名”); , 参数说明 源文件名:字符串常量,规定了数据报告格式的 RTF 文件,可用 WINDOWS 的写字板进行编写。 目标文件名:字符串常量,指定数据报告输出的路径和存放的文件。 例如: Report1(“c:\program files\kingview\example\ Kingdemo3\report1.rtf”,“c:\program files\kingdemo3\ 实时数据.rtf”); 调用此函数后系统将在指定目录下以文件”实时报表.RTF”中 规定的格式生成相应的名称为”实时数据.RTF” 的实时数据报 告。

Report2
此函数将按源文件中规定的数据报告格式把指定时间内的数据生成 相应的历史数据报告,此函数为 5.1 函数,建议 6.0 不使用该种报 表。作方式使用格式: Report2(ST, “源文件名”“目标文件名”); , 参数说明 ST:存放工程人员设定的起始时间(StartTime) ,此值是通过组态 王提供的命令语言函数 HTConvertTime()设定, (HTConvertTime() 函数的使用方法参见“命令语言”一章。 源文件名:字符串常量,规定了数据报告格式的 RTF 文件,可用 WINDOWS 的写字板进行编写。 目标文件名:字符串常量,指定数据报告输出的路径和存放的文件。 例如: Report2(“c:\program files\kingview\example\ Kingdemo1\report2.rtf”,“c:\program files\kingdemo1\

北京亚控科技发展有限公司

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

历史数据.rtf”); 调用此函数后系统将在指定目录下以文件”历史报表.RTF”中 规定的格式生成相应的名称为”历史数据.RTF” 的历史数据报 告。

ReportPrint
此函数用于将指定的数据报告文件输出到“系统配置\打印配置”中 规定的打印机上,点击工程浏览器中的“系统配置\打印配置”可以 出现如下的对话框,”报告打印“规定了报告输出的打印机。

使用格式: ReportPrint( “报告文件名”; ) 参数说明 报告文件名:指定要打印的数据报告文件。 例如: ReportPrint(“实时数据.rtf”); 调用此函数后将打印实时数据文件“实时数据.rtf”。

北京亚控科技发展有限公司

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

67

ReportPrint2
此函数为报表专用函数。将指定的报表输出到打印配置中指定的打 印机上打印,语法使用格式如下: ReportPrint2(ReportName); 返回值: 0//成功 -1//行列数小于零 -2//报表的名称错误 参数说明: ReportName:要打印的报表名称 例如:打印“实时数据报表” ,返回值赋给变量“打印值” : 打印值= ReportPrint2(“实时数据报表”);

ReportPrintSetup
此函数对指定的报表进行打印预览并且可输出到打印配置中指定的 打印机上进行打印。语法格式使用如下: ReportPrintSetup(szRptName); 参数说明:szRptName:要打印预览的报表名称 例如:打印预览“实时数据报表” : ReportPrintSetup(“实时数据报表”);

ReportGetCellString
此函数为报表专用函数。获取指定报表的指定单元格的文本,语法 格式使用如下: ReportGetCellString(ReportName, Row, Col,) 返回值为字符串型 参数说明:ReportName:报表名称 Row:要获取文本的报表的行号(可用变量代替) Col:要获取文本的报表的列号(这里的列号使用数值, 可

北京亚控科技发展有限公司

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

用变量代替) 例如: 获取报表“实时数据报表”中的第 2 行第 5 列的文本,赋给字符串 型变量“文本” : 文本= ReportGetCellString(“实时数据报表”, 2, 5);

ReportGetCellValue
此函数为报表专用函数。获取指定报表的指定单元格的数值,语法 格式使用如下: ReportGetCellValue(ReportName, Row, Col) 返回值为实型量 参数说明:ReportName:报表名称 Row:要获取数据的报表的行号(可用变量代替) Col:要获取数据的报表的列号(这里的列号使用数值, 可用变量代替) 例如: 获取报表“实时数据报表”中的第 2 行第 4 列的数值,赋给实型变 量“数值” : 数值= ReportGetCellValue(“实时数据报表”, 2, 4);

ReportGetColumns
此函数为报表专用函数。获取指定报表的行数,语法格式使用如下: ReportGetColumns(ReportName) 参数说明:ReportName:报表名称 例如: 获取报表“实时数据报表”的列数,赋给变量“列数” : 列数= ReportGetColumns(“实时数据报表”);

北京亚控科技发展有限公司

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

69

ReportGetRows
此函数为报表专用函数。获取指定报表的行数,语法格式使用如下: ReportGetRows(ReportName) 参数说明:ReportName:报表名称 例如: 获取报表“实时数据报表”的行数,赋给变量“行数” : 行数= ReportGetRows(“实时数据报表”);

ReportLoad
此函数为报表专用函数。将指定路径下的报表读到当前报表中来, 语法格式使用如下: ReportLoad(ReportName, FileName) 返回值:返回存储是否成功标志 0 - 成功 -3 - 失败(注意定义返回值变量 的范围) 参数说明:ReportName:报表名称 FileName:报表存储路径和文件名称 例如: 将文件名为“数据报表 1” ,路径为“C:\My documents”的报表读取 到当前报表中,返回值赋给变量“读文件” : 读 文 件 = ReportLoad(“ 实 时 数 据 报 表 ”,”C:\My documents\ 报 表.RTL”);

ReportPageSetup
此函数为在运行状态下对报表进行页面设置函数,语法格式使用如 下: ReprotPageSetup(String szRptName); 参数说明:szRptName:要进行页面设置报表的名称 例如:设置“实时数据报表” ReportPageSetup(“实时数据库表”);

北京亚控科技发展有限公司

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

ReportSaveAs
此函数为报表专用函数。将指定报表按照所给的文件名存储到指定 目录下,语法格式使用如下: ReportSaveAs(ReportName, FileName) 返回值:返回存储是否成功标志 0 - 成功 参数说明:ReportName:报表名称 FileName:存储路径和文件名称 例如: 将报表“实时数据报表”存储为文件名为“数据报表 1.RTL” ,路径 为“C:\My documents” ,返回值赋给变量“存文件” :

ReportSetCellString
此函数为报表专用函数。将指定报表的指定单元格设置为给定字符 串。语法格式使用如下: ReportSetCellString(ReportName, Row, Col, Value) 返回值为整型量 0---成功; -1---行列数小于等于零; -2---报表名称错误; -3---设置文本失败 参数说明:ReportName:报表名称 Row:要设置数值的报表的行号(可用变量代替) Col:要设置数值的报表的列号(这里的列号使用数值, 可 用变量代替) Value:要设置的文本 例如: 根据组态王实型变量 “压力” 的数据变化设置报表 “实时数据报表” 的第 2 行第 5 列为字符串变量“压力说明”的值,并且返回设置是 否成功结果“字符串设置结果” (组态王变量) ,在数据改变命令语

北京亚控科技发展有限公司

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

71

言中输入: 字符串设置结果=ReportSetCellString(“实时数据报表”, 2, 5, 压力说 明);

ReportSetCellString2
此函数为报表专用函数。将指定报表的指定单元格区域设置为给定 字符串。即指定多个单元格的字符串值。语法格式使用如下: ReportSetCellString2(ReportName, StartRow, StartCol, EndRow, EndCol, Value) 返回值:整型 0---成功; -1---行列数小于等于零; -2---报表名称错误; -3---设置文本失败 参数说明:ReportName:报表名称 StartRow: 要设置数值的报表的开始行号 (可用变量代替) StartCol:要设置数值的报表的开始列号(这里的列号使 用 数值,可用变量代替) StartRow: 要设置数值的报表的开始行号 (可用变量代替) StartCol:要设置数值的报表的开始列号(这里的列号使 用数值,可用变量代替) Value:要设置的文本 例如: 根据组态王实型变量 “压力” 的数据变化设置报表 “实时数据报表” 的第 8 行第 5 列到第 10 行第 7 列为字符串变量“压力说明”的值, 并且返回设置是否成功结果“字符串设置结果 2” (组态王变量) ,在 数据改变命令语言中输入: 字符串设置结果 2=ReportSetCellString2(“实时数据报表”, 8, 5, , 10, 7, 压力说明);

北京亚控科技发展有限公司

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

ReportSetCellValue
此函数为报表专用函数。将指定报表的指定单元格设置为给定值。 语法格式使用如下:

ReportSetCellValue(ReportName, Row, Col,Value)
0---成功; -1---行列数小于等于零; -2---报表名称错误; -3---设置值失败 参数说明: ReportName:报表名称 Row:要设置数值的报表的行号(可用变量代替) Col:要设置数值的报表的列号(这里的列号使用数值, 可用变量代替) Value:要设置的数值 例如: 根据组态王实型变量“压力” 的数据变化设置报表“实时数据报表” 的第 2 行第 4 列为变量 “压力” 的值, 并且返回设置是否成功结果 “实 数设置结果” (组态王变量) ,在数据改变命令语言中输入: 实数设置结果=ReportSetCellValue(“实时数据报表”, 2, 4, 压力); 返回值为整型量

ReportSetCellValue2
此函数为报表专用函数。将指定报表的指定单元格区域设置为给定 值,即指定多个单元格的值。语法格式使用如下: ReportSetCellValue2(ReportName, StartRow, StartCol, EndRow, EndCol, Value) 返回值为整型量 0---成功; -1---行列数小于等于零; -2---报表名称错误; 参数说明: ReportName:报表名称 StratRow:要设置数值的报表的开始行号(可用变量 代替)

北京亚控科技发展有限公司

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

73

StartCol:要设置数值的报表的开始列号(这里的列 号使用数值,可用变量代替) EndRow:要设置数值的报表的结束行号(可用变量 代替) EndCol: 要设置数值的报表的结束列号 (这里的列号 使用数值,可用变量代替) Value:要设置的数值 例如: 根据组态王实型变量 “压力” 的数据变化设置报表 “实时数据报表” 的第 3 行第 4 列到第 6 行第 7 列区域为变量“压力”的值,并且返 回设置是否成功结果“实数设置结果 2” (组态王变量) ,在数据改变 命令语言中输入: 实数设置结果 2=ReportSetCellValue2(“实时数据报表”, 3, 4, 6, 7, 压 力);

ReportSetHistData
此函数为报表专用函数,按照用户给定的参数查询历史数据语法格 式使用如下: ReportSetHistData(ReportName, TagName, StartTime, SepTime, szContent) ; 参数说明:ReportName:要填写查询数据结果的报表名称 TagName:所要查询的变量名称, 类型为字符串型,即带 引号。 StartTime:数据查询的开始时间,该时间是通过组态王 HTConvertTime 函数转换的以 1969 年 12 月 31 日 16:00:00 为基准的长整型数,所以 用户在使用本函数查询历史数据之前,应先 将查询起始时间转换为长整型数值。 SepTime:查询的数据的时间间隔,单位为秒 szContent:查询结果填充的单元格范围

北京亚控科技发展有限公司

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

例如:查询变量“压力”自 2001 年 5 月 1 日 8:00:00 以来的数据 查询间隔为 30 秒, 数据报表的填充范围为’a2 :a50’, 表示竖排第一列 从第二行到第五十行。 long StartTime; (StartTime 为自定义变量) StartTime=HTConvertTime(2001, 5, 1, 8, 0, 0); ReportSetHistData(“ 历 史 数 据 报 表 ”, “ 压 力 ”, StartTime, 30, “a2:a50”);

ReportSetHistData2
此函数为报表专用函数。查询历史数据,使用该函数,只要设置查 询的数据在报表中填充的起始位置,即输入起始行数(StartRow) 、 列数(StartCol) 。系统会自动弹出历史数据查询对话框,语法使用 格式如下: ReportSetHistData2(StartRow,StartCol); 参数说明: StartRow:查询的数据在报表中填充的起始行数。 StartCol:查询的数据在报表中填充的起始列数。

ReportWebDownload
此函数是为使用组态王 WEB 版的用户准备的。可以实现两个功能: 1. 从组态王 WEB 服务器上下载指定的报表内容到 IE 浏览器上的对 应报表中。 2. 将 IE 浏览器上显示的报表内容本地下载到指定的文本文件中。 由于组态王 WEB 版在 IE 浏览器上不支持后台命令语言,所以该函数 的执行必须通过按钮动作命令语言来实现。 语法使用格式如下:

ReportWebDownload( ReportName, DownloadType );
参数 ReportName: 描述 要下载内容的报表名称,字符串型

北京亚控科技发展有限公司

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

75

DownloadType:

下载方式,整型。下载方式共有三种: 1. DownloadType==0 时:在浏览器端执行该函 数,将 IE 浏览器上显示的报表内容下载到一 个“.csv”格式的指定文件中。 2. DownloadType==1 时:在浏览器端执行该函 数,把 WEB 服务器上组态王运行系统中指定 的报表内容下载到 IE 浏览器上对应的报表中。 3. DownloadType==2 时:直接把 WEB 服务器上 组态王运行系统中指定的报表内容下载到 IE 浏览器端。 然后将给报表的内容本地下载到指 定的“.csv”格式的文件中。

SaveText
此函数用于把超级文本显示控件中显示和编辑输入的文本字符串保 存到指定的 RTF 或 TXT 格式文件中。 语法格式使用如下: SaveText("ControlName", "FileName", ".Txt Or .Rtf" ); 参数说明: ControlName:工程人员定义的超级文本显示控件名称,可以为中文 名或英文名。 FileName:RTF 或 TXT 格式的文件,可用 WINDOWS 的写字板编写这 两种格式的文件。 .Txt Or .Rtf:指定文件为 RTF 格式或 TXT 格式。 例如: SaveText("hypertext1","D:\Test\recipe\ht1.rtf", ”.Rtf"); 此语句把超级文本显示控件 hypertext1 中显示和编辑输入

北京亚控科技发展有限公司

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

的文本字符串保存到文件 ht1.rtf 中。

SendKeys
此函数与StartApp、ActivateApp配合使用,使“组态王”具备了远 程控制其它应用程序的能力,这是“组态王”的重要功能之一。它 可以启动另一应用程序,如Excel,然后又可以命令该应用程序执行 一组功能,如产生报表,趋向图或记录数据。所需的过程可以用某 一应用程序(比如Excel)的“宏”语言来写。这就是说,只要按一 次键调用该宏命令就能启动很复杂的过程。这种用其他功能很强的 应用程序作为从属程序的能力大大增强了“组态王”的功能。 该函数用于将击键信息发送至当前获得输入焦点的应用程序。对于 此应用程序来说,键似乎已由键盘输入。在调用此函数时,必须使 接受键信息的应用程序获得输入焦点。因此需要先调用 ActivateApp。 例如: ActivateApp("Excel.exe"); SendKeys("^(X)"); 将 Control X 键信息发送至 Excel。对于 Excel 来说,这可 能为报告生成宏命令的命令码。 其调用形式为: SendKeys(keyT); 参数 keyT 为特定键的代码, 代码意义和用法与 Microsoft 的 Excel 的函数 Send Keys 中参数 keyT 相同, 可参照下面的表: 键码 意义 {BACKSPACE}or{BS} Backspace {BREAK} BreakCaps {CAPSLOCK} aps Lock {CLEAR} Clear {DELETE}or{DEL} Delete or Del

北京亚控科技发展有限公司

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

77

{DOWN} {END} {ENTER}or~ {ESCAPE}or{ESC} {HOME} {INSERT} {LEFT} {NUMLOCK} {PGDN}

{SCROLLLOCK}

{F1}through{F12}

Down direction key End Enter Esc(Escape) Home Insert Left direction key Num Lock Page Down Page up Print Screen Right direction key Scroll Lock Tab Up direction key Function keys F1 through F12

可以用大写或小写的字符定义一个键命令,还可以同时与下 面的键 配合使用: 键码 意义 + Shift ^ Ctrl % Alt 例如:为了发送一键序列来拷贝已选定的区,调用函数 SendKeys("^{insert}"); 为了表示在另一键按下时按下 SHIFT,ConTROL 或 ALT,可以 将其它键放入括号内。如: SendKeys("%(TFR)~");

北京亚控科技发展有限公司

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

这表示先发出击键信号: Alt-t、 Alt-f 和 Alt-r,然后是 Enter 回车键。%指代 Alt 键,因为跟在 Alt 键码后面的字母都在括 号中,所以当每一键按下时 Alt 键好象同时也被按下。 SendKeys("secret~");表示先发出字符串 secret,然后按回 车键。 由于字符+、^和%都有特殊含义,为了输入这些字符本身而不 取其特殊含义, 应给字符加花括号, SendKeys("A{+}B"), 如: 表示发出字符串 A+B。

SetTrendPara
此函数用于建立一个按钮,供“组态王”运行中弹出对话框以改变 历史趋势曲线的参数,如起始时间、数据长度、纵轴的起点、纵轴 的终点等。 调用形式: SetTrendPara(历史趋势曲线名); 例如: SetTrendPara(历史趋势曲线);

Sgn
此函数判别一个数值的符号(正、零或负)。调用格式: IntegerResult=Sgn(Number); 参数 描述 Number 任一数值或组态王实型或整型变量名。 若数值为正,则返回值为 1。数值为负的则返回值为 -1,数值为 0 则返回 0。 例如: Sgn(425);将返回 1 Sgn(0);将返回 0 Sgn(-37.3);将返回 -1

北京亚控科技发展有限公司

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

79

ShowPicture
此函数用于显示画面。调用格式: ShowPicture("画面名"); 例如: ShowPicture("反应车间");

Sin
此函数用于计算变量值的正弦值, 调用格式: Sin(变量值); 例如: Sin(90); 此函数返回值为 1 Sin(0); 此函数返回值为 0

SQLAppendStatement
在SQLSetStatement()后,附加一条语句。 语法: [ResultCode=]SQLAppendStatement(DeviceID,"SqlStatement"); 参数 DeviceID SqlStatement 描述 SQLConnct()产生的连接号 附加的SQL语句

例如:附加条件:列名年龄=24 SQLAppendStatement(DeviceID, “where 年龄=24”) 注意:本函数自动删除语句前的空格,所以同一个变量或连 接符不能分开到两条语句中

北京亚控科技发展有限公司

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

SQLClearStatement
释放和SQLHandle相关联的资源。 语法: [ResultCode=]SQLClearStatement(DeviceID,SQLHandle); 参数 DeviceID SQLHandle 描述 SQLConnct()产生的连接号 SQLPrepareStatement()产生 的内存整数

SQLClearTable
删除表格中的所有记录,但保留表格。 语法: [ResultCode=]SQLClearTable(DeviceID, “TableName”); 参数 DeviceID TableName 描述 SQLConnct()产生的连接号 需访问的数据库名

例如:删除表格kingview中的所有记录 [ResultCode=]SQLClearTable(DeviceID, “kingview

SQLCommit
定义了一组访问语句的结尾。在SQLTransact()指令和SQLCommit() 指令之间的一组指令称为一个指令集。一个指令集的管理如同一个 单一指令。 SQLTransact()后的指令暂不执行,直到执行了SQLCommit()。 参数 描述

北京亚控科技发展有限公司

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

81

DeviceID

SQLConnct()产生的连接号

注意:由于同时执行多个指令,SQLCommit()执行速度会变慢。 例如:连续实现三次插入 SQLTransact(DeviceID); SQLInsertPrepare(DeviceID,TableName,BindList,SQLHandl e); SQLInsertExecute(DeviceID,BindList,SQLHandle); SQLInsertExecute(DeviceID,BindList,SQLHandle); SQLInsertExecute(DeviceID,BindList,SQLHandle); SQLCommit(DeviceID);

SQLConnect
连接组态王和数据库。 语法: [ResultCode=]SQLConnect(DeviceID, "dsn=;uid=;pwd="); 参数 DeviceID "dsn=;uid=;pwd=" 描述 SQLConnct()产生的连接号 连接语句

"dsn=;uid=;pwd="格式如下: “ DSN=data source name [;attribute= value[;attribute = value]…” 例如:组态王以sa身份登录(无密码)和名为wang的SQL Server中 的pubs数据库连接 [ResultCode=]SQLConnect(DeviceID,“DSN=wang;DATAbase= pubs;UID=sa; PWD=”); 属性描述:

北京亚控科技发展有限公司

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

属性 DSN UID PWD DATAbase

值 ODBC 中定义的数据源名 登录 ID 号 密码,区分大小写 所要访问的数据库名

SQLCreateTable
以表格模板中定义的表格类型,在数据库中创建新表。 语法: [ResultCode=]SQLCreateTable(DeviceID,"TableName", "TemplateName"); 参数 DeviceID TableName TemplateName 描述 SQLConnct()产生的连接号 想要创建的数据库名 表格模板名

例如:下例创建一个名为kingview的新表,模板为table1 SQLCreateTable(DeviceID, “kingview”, “table1”);

SQLDelete
删除一条或多条记录。 语法: [ResultCode=]SQLDelete(DeviceID, "TableName", "WhereExpr"); 注意:SQLDelete()函数的条件表达不能为空。 参数 DeviceID 描述 SQLConnct()产生的连接号

北京亚控科技发展有限公司

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

83

TableName WhereExpr

表名 指定函数起作用行的条件 注意:如果列名是字符串, 表达式必须在单引号中。 下例选择“名字”列中等于 Asia 的行: 名字= ’Asia’ 下例选择“年龄”列中在 20 和 30 之间的行: 年龄>=20 and 年龄<30

例如:删除kingview表格中所有LogNo列等于11的记录 SQLDelete(DeviceID, “kingview”, “LogNo=11”)

SQLDisconnect
从使用的数据库中断开连接。 语法: [ResultCode=]SQLDisconnect(DeviceID); 参数 DeviceID 描述 SQLConnct()产生的连接号

SQLDropTable
删除一个表格(包括结构) 。 语法: [ResultCode=]SQLDropTabe; 参数 DeviceID 描述 SQLConnct()产生的连接号

北京亚控科技发展有限公司

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

TableName

表格名称

SQLEndSelect
在使用SQLSelect()之后使用此函数释放用来存储结果表格的资源 语法: [ResultCode=]SQLEndSelect(DeviceID); 参数 DeviceID 描述 SQLConnct()产生的连接号

SQLErrorMsg
返回和特定的ResultCode相关的错误字符串信息。 语法: SQLErrorMsg(ResultCode,buf); 参数 ResultCode 描述 大多数 SQL 函数都返回一个 整数。如果为零,函数调用 成功,如果为负,调用失败。 显示部分错误信息提示

buf

更多的信息,请参阅SQL函数疑难解答(组态王SQL Sever使用手册) 例如:返回信息 ErrorMsg = SQLErrorMsg(ResultCode,buf); 其中 buf 对应组态王中的 I/O 字符型变量,buf 仅能显示部 分错误信息提示,大部分错误信息提示在组态王信息窗口中 会友相应显示。

北京亚控科技发展有限公司

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

85

SQLExecute
执行SQL语句。 语法: [ResultCode=]SQLExecute(DeviceID, "BindList" , SQLHandle); 参数 DeviceID BindList SQLHandle 描述 SQLConnct()产生的连接号 记录体,指定组态王变量和 表格列之间的对应关系 如 果 调 用 前 执 行 了 SQLPrepareStatement(), 此参数为返回的一个整数, 如果没有准备的句柄,此值 为零。

注意:如果没有准备好的句柄,此函数只能执行一次,如果经过 SQLPrepareStatement()准备,可以重复执行。

SQLFirst
从SQLSelect()函数产生的结果集中选取首项记录。 语法: [ResultCode=]SQLGetRecord(DeviceID); 参数 DeviceID 描述 SQLConnct()产生的连接号

SQLGetRecord
返回当前选择集中的指定序号的记录。 语法:

北京亚控科技发展有限公司

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

[ResultCode=]SQLGetRecord(DeviceID, RecordNumber); 参数 DeviceID RecordNumber 描述 SQLConnct()产生的连接号 序号

例如:返回选择集中的第三条记录 SQLGetRecord(DeviceID, 3);

SQLInsert
使用记录体中定义的连接在表格中插入一个新的记录。 语法: [ResultCode=]SQLInsert(DeviceID, "TableName", "BindList"); 参数 DeviceID TableName BindList 描述 SQLConnct()产生的连接号 表格名 记录体

例子:在表格kingview中插入一条记录,记录体bind1 SQLInsert(DeviceID, “kingview”, “bind1”);

注意: 以下三个函数可以取代标准的 SQLInsert()实现快速的插入: SQLInsetPrepare(),SQLInsertExecute(),SQLInsertEnd(。 SQLInsert() 是一个一步程序,包括插入和结束语句,因此,当第二条语句执行时, 整个过程重新执行。而执行 SQLInsertPrepare()后,可以执行多个 SQLExecute(), 最后执行一个 SQLInsertEnd()。

北京亚控科技发展有限公司

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

87

SQLInsertEnd
释放语句。 语法: [ResultCode=]SQLInsertEnd(DeviceID, SQLHandle); 参数 DeviceID SQLHandle 描述 SQLConnct()产生的连接号 SQLInsertPrepare()产生的句柄

SQLInsertExecute
插入语句执行。 语法: [ResultCode=]SQLInsertExecute(DeviceID,"BindList", SQLHandle); 参数 DeviceID BindList SQLHandle 描述 SQLConnct()产生的连接号 记录体 SQLInsertPrpare 产生的句柄

SQLInsertPrepare
产生和准备一个插入语句。插入语句不执行。执行后将产生一个句 柄。 语法: [ResultCode=]SQLInsertPrepare(DeviceID,"TableName", "BindList", SQLHandle);

北京亚控科技发展有限公司

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

参数 DeviceID TableName BindList SQLHandle

描述 SQLConnct()产生的连接号 表名 记录体 产生的句柄

SQLLast
选取由SQLSelect()创建的选择集的末条记录。此句执行之前,必须 执行SQLSelect()。 语法: [ResultCode=]SQLLast(DeviceID); 参数 DeviceID 例如:SQLLast(DeviceID); 描述 SQLConnct()产生的连接号

SQLLoadStatement
读取包含在文件中的语句。类似于SQLSetStatement()函数。此函数 也可以用SQLAppendStatement()附加语句。每个文件只能包含一个 指令。 语法: [ResultCode=]SQLLoadStatement(DeviceID, "OutputFile"); 参数 DeviceID OutputFile 例如: 描述 SQLConnct()产生的连接号 文件名

北京亚控科技发展有限公司

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

89

SQLLoadStatement(DeviceID, “C:\InTouchAppname\SQL.txt”); 在文件 SQL.txt 中,包含以下信息: Select ColumnName from TableName where ColumnName>100;

SQLNext
选取由SQLSelect()产生的选择集中的下一条记录。 语法: [ResultCode=]SQLNext(DeviceID); 参数 DeviceID 例如:SQLNext(DeviceID); 描述 SQLConnct()产生的连接号

SQLNumRows
指出SQLSelect()函数指定的选择集中包含多少行。 SQLNumRows(DeviceID); 参数 DeviceID 例如: NumRows=SQLNumRows(DeviceID); 描述 SQLConnct()产生的连接号

SQLPrepareStatement
SQLSetStatement() 或 SQLLoadStatement() SQLAppendStatement()指定的语句。返回句柄。 语法: 和

北京亚控科技发展有限公司

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

[ResultCode=]SQLPrepareStatement(DeviceID, SQLHandle); 参数 DeviceID SQLHandle 描述 SQLConnct()产生的连接号 产生的句柄

例如:将返回的句柄赋给内存变量handle SQLPrepareStatement(DeviceID, SQLHandle);

SQLPrev
选取选择集中的上一条记录。 语法: SQLPrev(DeviceID); 参数 DeviceID 描述 SQLConnct()产生的连接号

SQLRollback
撤消最近的位于SQLTransact()后的尚未“提交”的指令。 语法: [ResultCode=]SQLRollback(DeviceID);

参数 DeviceID 例如:

描述 SQLConnct()产生的连接号

SQLTransact(DeviceID); SQLInsertPrepare(DeviceID,

“kingview”,

“bind1”,

北京亚控科技发展有限公司

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

91

handle); SQLInsertExecute(DeviceID, “bind1”, handle); SQLInsertEnd(DeviceID, handle); SQLRollback(DeviceID);

SQLSelect
访问数据库,得到一个特定的选择集。选择集中的记录可以由 SQLFirst(), SQLNext(), 等函数访问。 语法: [ResultCode=]SQLSelect(DeviceID,"TableName","BindList", "WhereExpr","OrderByExpr"); 参数 DeviceID TableName BindList WhereExpr 描述 SQLConnct()产生的连接号 表格名称 记录体 指定函数起作用行的条件 注意:如果列名是字符串, 表达式必须在单引号中。 下例选择“名字”列中等于 Asia 的行: 名字= ’Asia’ 下例选择“年龄”列中在 20 和 30 之间的行: 年龄>=20 and 年龄<30 定义排序的列和方向。只有 列名可以用来排序, 表达式:

OrderByExpr

北京亚控科技发展有限公司

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

列名[ASC|DESC]。下例将以 “温度”列的升序排序 “温度 ASC” 排序中也可使用多重表达 式。例如; “温度 ASC,时间 DESC” WhereExpr 举例: 字符串例子: “Ser_No=’abcd’” 字符串中使用like语句: “Ser_No like ab%” 注意:使用%代表广义字符。 字符串和模拟量中间使用and连接 “Ser_No=’abcd’ and Number=150” 注意:当SQLSelect()产生的选择集完成后,总要使用SQLEnd() 释 放资源。 例如:选择表格kingview中列名“Ser_No”为abcd的行,以温度列的 升序排序。变量对应关系在bind1中指定。 SQLSelect(DeviceID, “kingview”, “bind1”, “Ser_No=’abcd’, “温度 ACS”); 例如://字符串变量:FindDate 表示条件;这是相似查询 string WhereExpr="日期 like+'%"+FindDate+"%'"; SQLSelect( DeviceID, "数据记录表", "日报表", WhereExpr, "" ); 例如:String str1="炉号="+"'"+\\本站点\test+"'"; SQLSelect( DeviceID, "表 2", "Bind2", str1, "" ); //SQL变 量条件查询, \\本站点\test:字符串变量 例 如 : String strtime=StrFromInt( inttime, 10 );//inttime: 为整数类型。先转换为字符串类型

北京亚控科技发展有限公司

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

93

string str1="Times="+"'"+strtime+"'"; SQLSelect( DeviceID, "数据查询", "BIND", str1, "" ); 例如:选取表格 kingview 中的所有行。 SQLSelect(DeviceID, “kingview”, “bind1”, “”, “”);

SQLSetParamChar
以指定的参数为指定的字符串赋值。 语法: [ResultCode=]SQLSetParamChar(SQLHandle, "ParameterValue", MaxLen); 参数 SQLHandle ParameterNumber ParameterValue MaxLen 描述 由 SQLPrepareStatement() 函数准备的句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量) 参数相关列的最大长度

ParameterNumber,

SQLSetParamDate
为指定的字符型参数赋日期值。 语法: [ResultCode=]SQLSetParamDate(SQLHandle,ParameterNumber, ParameterValue); 参数 SQLHandle ParameterNumber ParameterValue 描述 句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量)

北京亚控科技发展有限公司

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

SQLSetParamDateTime
为指定的字符型参数赋日期和时间值。 语法: [ResultCode=]SQLSetParamDateTime( ParameterNumber, ParameterValue, Precision); 参数 SQLHandle ParameterNumber ParameterValue Precision 描述 句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量) 参数 ParameterValue 所用到 的字符串的个数

SQLHandle,

SQLSetParamDecimal
为指定的整型参数赋十进制值。 语法: [ResultCode=]SQLSetParamDecimal(SQLHandle, ParameterNumber, "ParameterValue", Precision, Scale); 参数 SQLHandle ParameterNumber ParameterValue Precision 描述 句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量) 参数 ParameterValue 所用到 的字符串的个数

SQLSetParamTime
为指定的字符型参数赋时间值。

北京亚控科技发展有限公司

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

95

语法: [ResultCode=]SQLSetParamTime(SQLHandle,ParameterNumber, ParameterValue); 参数 SQLHandle ParameterNumber ParameterValue 描述 句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量)

SQLSetParamFloat
为指定的浮点型参数赋值。 语法: [ResultCode=]SQLSetParamFloat(SQLHandle,ParameterNumber, ParameterValue); 参数 SQLHandle ParameterNumber ParameterValue 例如: SQLSetStatement(ConnectionID, “select * from kingview where highth=?”) SQLPrepareStatement(ConnectionID, handle); SqlSetParamFloat(handle, 1, var1) 描述 句柄 语句中参数出现的序号 赋给的值 (可以是组态王变量)

SQLSetParamInt
为指定的整数型参数赋值。

北京亚控科技发展有限公司

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

语法: [ResultCode=]SQLSetParamInt(SQLHandle,ParameterNumber, ParameterValue); 参数 SQLHandle ParameterNumber ParameterValue 描述 句柄 语句中参数出现的序号 赋给的值(可以是组态王变 量)

例如: SQLSetStatement(ConnectionID, “select * from kingview where agg=?”); SQLPrepareStatement(ConnectionID, handle); SqlSetParamInt(handle, 1, var2);

SQLSetParamNull
把指定的参数赋成空。 语法: [ResultCode=]SQLSetParamNull(SQLHandle, ParameterType, Precision, Sclae);

ParmeterNumber,

SQLSetStatement
启动一个SQL语句缓存区。 语法: [ResultCode=]SQLSetStatement(DeviceID, "SQLStatement"); 参数 描述

北京亚控科技发展有限公司

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

97

DeviceID SQLStatement 例如:

SQLConnct()产生的连接号 SQL 语句

SQLSetStatement(DeviceID, “Select LotNo, LotName from LotInfo”); 例如: SQLSetStatement(DeviceID, “select Speed from kingview”); SQLExecute(DeviceID, “BIND”, 0); 上例中,没有 SQLPrepareStatement()准备的语句调用,句 柄设为 0。 例如: SQLSetStatement(DeviceID, “select Speed kingview”); SQLPrepareStatement(DeviceID, handle); SQLExecute(DeviceID, “BIND”,handle); SQLClearStatement(DeviceID, handle); from

SQLTransact
定义了一组访问指令。这组指令暂不执行,直到用SQLCommit()函数 提交执行。 语法: [ResultCode=]SQLTransact(DeviceID); 参数 DeviceID 描述 SQLConnct()产生的连接号

SQLUpdate
使用组态王的变量值修改数据库中的记录。

北京亚控科技发展有限公司

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

语法: [ResultCode=]SQLUpdate(DeviceID, "TableName", "BindList", "WhereExpr"); 参数 DeviceID TableName BindList WhereExpr 描述 SQLConnct()产生的连接号 表格名 记录体 指定函数起作用行的条件 注意:如果列名是字符串, 表达式必须在单引号中。 下例选择“名字”列中等于 Asia 的行: 名字= ’Asia’ 下例选择“年龄”列中在 20 和 30 之间的行: 年龄>=20 and 年龄<30

例如:用组态王的当前变量更新kingview表格中所有agg=20的行。 SQLUpdate(DeviceID, “kingview”, “bind1”, “agg=20”);

SQLUpdateCurrent
使用组态王中的变量更新数据库中当前行的记录。 语法: [ResultCode=]SQLUpdateCurrent(DeviceID, "TableName"); 参数 DeviceID "TableName" 描述 SQLConnct()产生的连接号 记录体名

北京亚控科技发展有限公司

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

99

Sqrt
此函数用于计算变量值的平方根,调用格式: Sqrt(变量名或数值); 变量值的类型可为整型、模拟量、离散量,变量值为正数时,函数 返回值有效,变量值为负数时,函数返回值无效,

StartApp
此函数用于启动另一窗口应用程序。为确保能启动应用程序,请在 应用程序名前使用全路径。路径使用DOS名称,即在DOS下显示的路 径名。 调用格式: StartApp("命令行参数") ;或 StartApp("应用程序名") ; 例如: StartApp(“c:\programfiles\microsoftoffice\office\exc el report.xls”); 启动Excel,并自动打开电子数据表"Report.XLS"。若不想自动打 开,z则只需: StartApp("c:\program files\microsoft office\office\excel ") ;

StrASCII
此函数返回某一指定的字符串变量首字符的ASCII值。调用格式: IntegerResult=StrASCIi(Char); 参数 描述 Char 字母表顺序的字符或组态王字符串变量。 Char首字符的ASCII值将返回到IntegerResult中, 当此函数执行时, 只有单个字符被检测或受到影响。 如果字符串变量提供给 StrASCII 字符多于一个,只有变量的首字符会被检测。

北京亚控科技发展有限公司

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

例如: StrASCIi("A");返回 65 StrASCIi("A Mixer is Running");返回 65 StrASCIi("a mixer is running");返回 97

StrChar
此函数返回某一指定ASCII码所对应的字符。调用格式: MessageResult=StrChar(ASCII); 参数 描述 ASCII ASCII码或“组态王”字符串变量。 ASCII变量对应的字符将返回给MessageResult。此函数的一个用处 是可以不用键盘给字符串变量添加字符。 例如: ControlString=MessageTag+StrChar(13)+StrChar(10); 将一个[CR]和[LF]加到 MessageTag 的末尾,并且传递给了 ControlString。插入 ASCII 码在 32-126 范围之外的字符对 于创建外设(例如:打印机或调制解调器)的控制代码是非常 有用的。

StrFromInt
此函数将一整数值转换为另一进制下的字符串表示。调用格式: MessageResult=StrFromInt(Integer,base); 参数 描述 Integer 要转换的数。数字或组态王 的整型变量。 base 用来转换的进制。数字或 组态王的整型变量。 Integer被转换成指定的进制,结果将存在MessageResult中。 例如: StrFromInt(26, 2);返回"11010" StrFromInt(26, 8);返回 "32"

北京亚控科技发展有限公司

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

101

StrFromInt(26, 16);返回"1A"。

StrFromReal
此函数将一实数值转换成字符串形式,该字符串以浮点数计数制表 示或以指数计数制表示。调用格式: MessageResult=StrFromReal(Real,Precision,Type); 参数 描述 Real 根据指定 Precision 和 Type 进行转换,其结果保存在 MessageResult中。 Precision 指定要显示多少个小数位。 Type 确定显示方式,可为以下字符之一: "f" 按浮点数显示 "e" 按小写“e”的指数制显示。 "E" 按大写“E”的指数制显示。 例如: StrFromReal(263.355, 2,"f");返回 "263.36" StrFromReal(263.355, 2,"e");返回 "2.63e2" StrFromReal(263.55, 3,"E");返回 "2.636E2" 参见 StrToReal( )。

StrFromTime
此函数将一个时间值(1969年12月31日16:00起, 以秒为单位)转换成 字符串。调用格式: MessageResult=StrFromTime(SecsSince1_1_70, StringType); 参数 描述 SecsSince1_1_70 转换为指定的 StringType 类型, 结果保存 在MessageResult 中。 StringType 确定显示方式,可为以下值之一:

北京亚控科技发展有限公司

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

1 2 3 例如:

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

StrFromTime(86400, 1);返回 "1/2/70" StrFromTime(86400, 2);返回 "12:00:00 AM" StrFromTime(86400, 3);返回 " 1/2/70 12:00:00 AM "。

StrInStr
此函数返回SearchFor在Text中第一次出现的位置。调用格式: IntegerResult=StrInStr (Text,SearchFor,StartPos,CaseSens); 参数 描述 Text 用于查找 SearchFor 的文本,若有多个SearchFor 出现,则将其第一个的位置返回给 IntegerResult。 StartPos 用来确定在 Text 中开始查找位置的整数。 CaseSens 用来确定此查找是否对大小写敏感(0=不,1=是)。 例如: StrInStr("The mixer is running", "mix", 1, 0);返回 5 StrInStr("Today is Thursday", "day", 1, 0);返回 3 StrInStr("Today is Thursday", "day", 10, 0);返回 15 StrInStr("Today is Veteran's Day", "Day", 1, 1);返回 20 StrInStr("Today is Veteran's Day", "Night", 1, 1);返 回 0。

StrLeft
此函数返回指定字符串变量的开始(或最左的)若干个字符。调用格

北京亚控科技发展有限公司

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

103

式: MessageResult=StrLeft(Text,Chars); 参数 描述 Text 实际文本字符串或字符串变量名。 Chars 要返回的字符个数。若Chars置为0,则返回全部字符串。 例如: StrLeft("The Control Pump is On", 3);返回 "The" StrLeft("Pump 01 is On", 3);返回 "Pump" StrLeft("Pump 01 is On", 96);返回 "Pump 01 is On" StrLeft("The Control Pump is On", 0);返回 "The Control Pump is On"。

StrLen
此函数返回指定字符串变量的长度。调用格式: IntegerResult=StrLen(Text); 参数 描述 Text 实际文本字符串或字符串变量名。文本的长度(字符数) 返回给IntegerTag。所有字符串变量中的字符,包括那些在屏幕上 不以能显示的字符都将被计算。 例如: StrLen("Twelve percent");返回 14 StrLen("12%");返回 3 StrLen("The end. [CR]");返回 10,[CR] 是回车符- ASCII 13。

StrLower
此函数将指定文字中的所有大写字母转换为小写字母。小写字母、 标号、数字和其它特殊字符将不受影响。调用格式: MessageResult=StrLower(Text);

北京亚控科技发展有限公司

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

参数 Text 例如:

描述 实际文本字符串或字符串变量名 StrLower("TURBINE");返回 "turbine" StrLower("22.2 Is The Value");返回 "22.2 is the value."

StrMid
此函数从指定的位置开始,从一个字符串变量中返回指定个数的字 符。此函数与它的对应函数 StrLeft() 和 StrRight() 函数稍有不 同, 它允许工程人员指定要从字符串变量中抽取字符串的首尾位置。 调用格式: MessageResult=StrMid(Text,StartChar,Chars); 参数 描述 Text 实际文本字符串或字符串变量名。 StartChar 指定要抽取的首字符位置。 Chars 指定要返回字符的全部个数。 例如: StrMid("The Furnace is Overheating",5,7,); 返 回 "Furnace" StrMid("The Furnace is Overheating",13,3);返回 "is " StrMid("The Furnace is Overheating",16,50); 返 回 "Overheating" 参见 StrLeft( ), StrRight( ) 。

StrReplace
此函数替换或改变所提供字符串的指定部分。使用此函数能获取字 符串变量并替换字符、单词或短语。调用格式:

北京亚控科技发展有限公司

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

105

MessageResult = StrReplace( Text,SearchFor, ReplaceWith, CaseSens, NumToReplace, MatchWholeWords); 参数 描述 Text 要改变的字符串。 SearchFor 要查找并替换的字符串。 ReplaceWith 替换字符串。 CaseSens 确定查找是否大小写敏感。(0=不,1=是) NumToReplace 确定要替换的次数。(0=全部) MatchWholeWords 确定此函数是否要全字匹配。(0=不,1=是) 例如: StrReplace("In From Within","In","Out",0,1,0) returns "Out From Within" (只替换第一个) StrReplace("In From Within","In","Out",0,0,0) returns "Out From WithOut" (全部替换) StrReplace("In From Within","In","Out",1,0,0) returns "Out From Within" (大小写匹配的全部替换) StrReplace("In From Within","In","Out",0,0,1) returns "Out From Within" (全字全部替换) StrReplace() 函数不能识别特殊字符,如 @#$%&*()。函数 将 它 们 视 为 分 隔 符 。 例 如 如 , 若 函 数 StrReplace (abc#,abc#,1234,0,1,1) 执行,将不发生替换。 “#”标号被 识别为一个分隔符,而非字符。

StrRight
此函数返回指定字符串变量的最末端(或最右)若干个字符。调用格 式: MessageResult=StrRight(Text,Chars); 参数 描述

北京亚控科技发展有限公司

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

Text 要查找的文本。字符串或 组态王 字符串变量。 Chars 返回字符的个数。字符串或 组态王 整型变量。若Chars 置为0,则将返回全部字符串。 例如: StrRight("The Pump is On", 2);返回 "On" StrRight("The Pump is On", 5);返回 "is On" StrRight("The Pump is On", 87);返回 "The Pump is On" StrRight("The Pump is On", 0);返回 "The Pump is On"。

StrSpace
此函数在字符串变量中或表达式中产生一个空格串。调用格式: MessageResult=StrSpace(NumSpaces); 参数 描述 NumSpaces 数字或整型变量,指定产生的空格数。 例如: 所有的空格用"x" 表示: StrSpace(4);返回 "XXXX" "Pump" + StrSpace(1) + "Station" 的 结 果 是 : "Pump Station"。

StrToInt
此函数将一个由数字组成的字符串转换成一个能用作数学计算的整 数值。调用格式: IntegerResult=StrToInt (Text); 参数 描述 Text 函数将处理的字符串。字符串或 组态王 的字符串变量。 当此语句被计算时,函数将读出此字符串中首字符的数字值。若首 字符不是一个数字(空格忽略),则字符串的值等于零(0)。若首字符 是一个数字,则函数继续读后续的字符,直到遇到一个非数字值为

北京亚控科技发展有限公司

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

107

止。 例如: If Text="ABCD",then IntegerTag=0. If Text="22.2 is the Value", then IntegerTag=22 为整数是数字)。 If Text="The Value is 22", then IntegerTag=0. 参见 StrFromInt ()。 (因

StrToReal
此函数将一个由数字组成的字符串转换成一个能用于数字计算的实 数值。调用格式: RealResult=StrToReal(Text); 参数 描述 Text 函数将处理的字符串。 当此函数被调用时,函数将读出此字符串中首字符的数字值。若首 字符不是一个数字(空格忽略),则字符串的值等于零(0)。若首字符 是一个数字,则函数继续读后续的字符,直到遇到一个非数字值为 止。 例如: If Text="ABCD", then RealTag=0. If Text="22.261 is the Value", then RealTag=22.261. If Text="The Value is 22", then RealTag=0. 参见 StrFromReal()

StrTrim
此函数删除字符串变量中无用的空格。调用格式: MessageResult=StrTrim(Text,TrimType); 参数 描述 Text 函数将处理的字符串。 字符串或组态王中的字符串变

北京亚控科技发展有限公司

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

量。 TrimType 删除方式,可为下列类型之一: 1 删除首部空格(第一个非空格字符的左边) 2 删除尾部空格(最后一个非空格字符的右边) 3 删除单词间单个空格外的多余空格 Text 被用来查找要删除的空白(ASCⅡ码0x9-0x01或者ox20)。 例如: 所有的空格用 "x" 代表。 StrTrim("xxxxxThisxisxaxxtestxxxxx", 1); 返 回 "Thisxisxaxxtestxxxxx" StrTrim("xxxxxThisxisxaxxtestxxxxx", 2); 返 回 "xxxxxThisxisxaxxtest" StrTrim("xxxxxThisxisxaxxtestxxxxx", 3); 返 回 "Thisxisxaxtest" StrReplace() 函数可用于从某一指定字符串变量中消除所 有的空格,用“null”简单地替换所有空格。

StrType
此函数检测字符串变量的首字符以确定其是否为某一类型。调用格 式: DiscreteResult=StrType(Text,TestType); 参数 描述 Text 函数将处理的字符串或字符串变量。 TestType 字符类型,确定为下列类型之一: 1 字母数字符 ('A'-'Z', 'a-z' 和 '0-9') 2 数字符 ('0'- 9') 3 字母 ('A-Z' 和 'a-z') 4 大写字母 ('A'-'Z') 5 小写字母 ('a'-'z')

北京亚控科技发展有限公司

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

109

6 标点字符 (0x21-0x2F) 7 ASCII 字符 (0x00 - 0x7F) 8 十六进制字符 ('A'-'F' 或 'a'-'f' 或 '0'-'9') 9 可打印字符 (0x20-0x7E) 10 控制字符 (0x00-0x1F 或 0x7F) 11 空白符(0x09-0x0D or 0x20) 若Text中首字符是由TestType指定的类型,则StrType() 函数将返 回给DiscreteResult一个正值。正如在其它函数中,单个字符被检 测或影响一样,若StrType() 函数的字符串变量含有一个以上字符 时,只有变量的首字符将被检测。 例如: StrType("ACB123",1);返回 1 StrType("ABC123",5);返回 0。

StrUpper
此函数将指定字符串变量中所有的小写字符转换成大写字符。大写 字符、符号、数字以及其它特殊字符将不受影响。调用格式: MessageResult=StrUpper(Text); 参数 描述 Text 函数将处理的字符串或字符串变量。 例如: StrUpper("abcd");返回 "ABCD." StrUpper("22.2 is the value");返回 "22.2 IS THE VALUE"

StopBackupStation
此函数用于在组态王进行网络历史数据备份合并时人为中断备份 过程。 语法使用格式: BOOL StopBackupStation( str szStationName); 参数:远程站点名称。

北京亚控科技发展有限公司

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

例如: StopBackupStation(“IO采集站”);

Sum
此函数为对指定的多个变量求和。语法使用格式如下: Sum(’a1’,’a2’); A1、a2 为整型或实型变量。其中参数个数为 1-32 个。 当对报表指定单元格区域内的单元格进行求和运算时,显示到当前 单元格内。单元格区域内出现空字符、字符串等都不会影响求和。 语法使用格式如下: Sum( ‘单元格区域’ ) 例如:=Sum( ‘a1’,‘b2’,‘r10’) ; 任意单元格选择求和 =Sum(‘b1:b10’); 连续的单元格求和

Tan
此函数用于计算变量值的正切值, 调用格式: Tan(变量值); 例如: Tan(45);返回值为 1 Tan(0);返回值为 0。

Text
此函数变量名显示一个基于指定Format_Text格式的模拟(整型或实 型)变量名。调用格式: MessageResult=Text(Analog_Tag,Format_Text); 参数 描述 Analog_Tag 要转换的模拟变量 Format_Text 转换所使用的格式 例如:

北京亚控科技发展有限公司

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

111

MessageTag=Text(66,"#.00"); MessageTag 是一个文字类型变量名, 为一个整型或者实型 66 的变量名。 “#0.00”代表显示格式: 若 Analog_Tag=66, 则 MessageTag=66.00。 若 Analog_Tag=22.269, 则 MessageTag=22.27。 若 Analog_Tag=9.999, 则 MessageTag=10.00。

Time
此函数为根据给出的时、分、秒整型数,返回时间字符串,默认格 式为:时:分:秒。语法使用格式如下: Time(LONG nHour, LONG nMinute, LONG nSecond); 例如:时、分、秒变量分别为: “$时”“$分”“$秒” 、 、 ,用“时间” 来显示由以上三个整数决定的“$时间”字符串,则在命令语言中输 入:时间=Time(时,分,秒) 。

Trace
此函数为调试函数,即系统运行时,利用该函数将值按照指定的形 式显示在信息窗口中。调用格式:Trace(‘test = %2d’, Express) ,即 把表达式Express的值按照十进制整数格式输出到信息窗口中,若 Express=100,信息窗口将显示“test=100” 。字符串“test”也可由用 户指定。关于输出格式请参见下表: 字符 D 类型 整型 整型 整型 双精度型 输出格式 区分正负的十进制整数 不区分正负的十六进制整数, 输出为小写,例如 ‘abcdef.’ 不区分正负的十六进制整数, 输出为大写,例如 ‘ABCDEF.’ 区分正负的形式为[ – ]d.dddd e [sign]ddd 的数。 d 为一个十进制数字, dddd 是一个或多个十进制数 字,ddd 是三位十进制数字, sign 为+或-。

X(小写)
X(大写) e

北京亚控科技发展有限公司

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

E F

双精度型 双精度型

S(大小写 均可)

字符串型

例如-1.000000e+002 与 e 字符一样,只是指数用 E 表示,而不是 e,例如 -1.000000E+002 区分正负的形式为[ – ]dddd.dddd 的数。Dddd 是一个 或多个十进制数字, 小数点前的数字位数由取决于数 据的大小,小数点后的数字位数取决于要求的精度。 将字符串型变量以字符串方式输出。

Trunc
通过删去小数点右边部份的方式截取一个实数。调用格式: ResultNumericTag=Trunc(Number); 参数 描述 Number 任一数字或 Kingview 实型或整型变量名 此函数的结果与把一个实数变量的内容放到一个整型变量中的结果 相同。 例如: Trunc(4.3);返回 4 Trunc(-4.3);返回 –4。

xyAddNewPoint
此函数用于在指定的X-Y轴曲线控件中给指定曲线添加一个数据点。 语法格式使用如下: xyAddNewPoint ( "ControlName", X, Y, Index ); 参数说明: ControlName:工程人员定义的X-Y轴曲线控件名称,可以为中文名 或英文名。 X:设置数据点的x轴坐标值 Y:设置数据点的y轴坐标值 Index:给出X-Y轴曲线控件中的曲线索引号,取值范围0-7。 例如:

北京亚控科技发展有限公司

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

113

xyAddNewPoint ( "反应罐液压-液位", 30, 20, 1 ); 此语句执行后在反应罐液压-液位控件中索引号为 1 的曲线 上添加一个数据点,该点的坐标值为(30,20),表示该点的 反应罐液压是 30,反应罐液位是 20。

xyClear
此函数用于在指定的X-Y轴曲线控件中清除指定曲线。 语法格式使用如下: xyClear( "ControlName",Index ); 参数说明: ControlName:工程人员定义的X-Y轴曲线控件名称,可以为中文名 或英文名。 Index: 给出X-Y轴曲线控件中的曲线索引号,取值范围0-7,当取 值为-1时,则清除所有曲线。 例如: xyClear ( "反应罐液压-液位", 1 ); 此语句执行后在反应罐液压-液位控件中清除索引号为 1 的 指定曲线。
 
打赏
 
更多>同类工控
0相关评论

推荐图文
推荐工控
点击排行

网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报