组态王命令语言函数速查手册 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 );
北京亚控自动化软件科技有限公司