当前位置:文档之家› 组态王version_6.53命令语言函数速查手册

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

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

工业自动化通用组态软件

组态王version6.53

命令语言函数速查手册

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

Abs

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

Abs(变量名或数值);

返回值:整值或实型值;

例如:

Abs(14);返回值为14

Abs(-7.5);返回值为7.5

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

Ack

对变量进行报警确认,或对报警组进行报警确认。如果函数参数为变量名称,则只对该变量进行报警确认;如果函数参数为报警组名称,则确认所有属于该报警组及其子报警组的变量。该函数的参数只能是变量名或报警组名,不可以为字符串变量。此函数常用于按钮命令语言,当发生报警时,用此函数进行报警确认,它将产生确认报警事件。调用格式:

Ack(报警组名);或Ack(变量名);

例如:

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

AckByTagName

对变量进行报警确认。函数参数可以是一个字符串变量,也可以是一个表示变量名的字符串。调用格式:

AckByTagName("tag_name");

参数:tag_name:变量名。

例如:

AckByTagName("\\本站点\液位");

AckByTagName(Varname);其中Varname为字符串变量。

AckByGroupName

对报警组进行确认。调用格式:

AckByGroupName("station_name","group_name");

station_name为产生报警的IO服务器名,group_name为报警组名。

函数参数可以是字符串变量,也可以是表示IO服务器名或报警组名的字符串。

例如:

AckByGroupName("PC1","报警组1");

AckByGroupName(PCName,GroupName);//PCName,GroupName为字符串变量。

ActivateApp

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

ActivateApp(“ExeName”);

参数:ExeName应用程序的执行文件名

例如:

激活MicrosoftWord的正确调用为:

ActivateApp("Word.exe");

激活组态王:

可使用ActivateApp("TouchVew.exe");

ActiveXIsVisible

此函数用于控制窗体控件隐含。调用形式:

ActiveXIsVisible("CtrlName",nMode);

参数:CtrlName控件名

nMode控制模式。nMode=0时,控件隐含。

例如:

实现控件隐含的正确调用为:

ActiveXIsVisible(“Ctrl10”,0);

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”的反正切值。

Average

此函数为对指定的组态王报表表格的多个单元格求平均值,或求多个变量的平均值。语法格式使用如下:

Average(’a1’,’a2’);或Average('a1:a10');

a1、a2……为组态王单元格所在的行号列标,或整型或实型变量。其中参数个数为1-32个。当对报表的指定单元格区域内的单元格进行求平均值运算时,结果显示在当前单元格内,语法格式使用如下:

Average(’a1’,‘a2‘);

例如:

任意单元格选择求平均值:

=Average(‘a1’,‘b2’,‘r10’);

连续的单元格求平均值:

=Average(‘b1:b10’);

或求变量的平均值:

AverageValue=Average(lVar1,fVar1);

BackUpHistData

此函数为组态王网络中从IO服务器上下载历史数据记录到历史记录服务器。用户在历史记录服务器上调用该函数。函数的使用需要与组态王网络配置相配合,具体内容参见《组态王6.53使用手册》中“历史库”一章。

语法使用格式:

BackupStationData(StrchMchinename,LongftEndtime);

参数:chMchinename字符串型为进行备份存储的IO服务器名ftEndtime整型为备份截止时间

例如:

//备份“IO采集站”的历史数据,截至时间为当前:

endTime=HTConvertTime($年,$月,$日,$时,$分,0);

BackUpHistData("IO采集站",endTime);

Bit

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

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:位的设定值

注意:对于IO变量来说,BitSet函数只是用于可读可写的变量。

例如:

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

ChangePassword

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

例如:

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

ChangePassword();

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

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

chartAdd

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

chartAdd("ControlName",Value,"label");

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

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

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

例如:

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

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

chartClear

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

chartClear("ControlName");

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

例如:

chartClear("XYChart");

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

chartSetBarColor

此函数用于在指定的棒图控件中设置饼图的颜色。条形图不可以。语法格式如下:chartSetBarColor("ControlName",barIndex,colorIndex);

参数:

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

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

1Blue 9LightBlue

2Green 10LightGreen

3Cyan 11LightCyan

4Red 12LightRed

5Magenta 13LightMagenta

6Yellow 14LightYellow

7White 15BrightWhite

16Black

例如:

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("画面名");

例如:

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

ConfigODBC

此函数用于配置odbc的数据源,语法格式如下:

ConfigODBC(nDatatbasetype,szAttributes);

参数:

nDatatbasetype:数据库类型,目前支持Access,SQLserver该参数为0时表示数据库类型为Access,参数为1时表示数据库类型为SQLserver;

szAttributes:配置字符串:

例1:

配置Access数据库,DSN名称为demo2,数据库文件为

E:\ProgramFiles\Kingview\Example\Kingdemo1\数据库.mdb。

ConfigODBC(0,"DSN=demo2\0Description=E:\Program

Files\Kingview\Example\Kingdemo1\数据

库.mdb\0PWD=1234\0UID=shihf");

例2:

配置SQL数据库:

ConfigODBC(1,"DSN=MyDSN\0Description=SQLConfigDSN

Sample\0SERVER=MySQL\0ADDRESS=MyServer\0NETWORK=dbmssoc

n\0DATABASE=pubs\0");

Cos

此函数用于计算变量值的余弦值,语法格式如下:

Cos(数值或变量名);

例如:

Cos(90);返回值为0

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

Date

此函数为根据给出的年、月、日整型数,返回日期字符串,默认格式为:年:月:日。语法使用格式如下:

Date(LONGnYear,LONGnMonth,LONGnDay);

例如:年、月、日变量分别为:“$年”、“$月”、“$日”,用日期来显示由以上三个整数决定的“日期”字符串,则在命令语言中输入:

日期=Date(年,月,日);

DisplayMCI

此函数提供了一个对多媒体设备的通用接口,具有强大的功能。语法使用格式:DisplayMCI("MCICommand",option);

下面举例说明此函数的使用方法。

例如:

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(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。

EnableNavigate

此函数用于显示/关闭导航图。调用形式:

EnableNavigate(is_enable);

参数:is_enable,整型。

0:is_enable为0时,关闭导航图;

1:is_enable为1时,显示导航图。

使用EnableNavigate函数关闭导航图后,除非使用该函数来显示导航图,否则无法显示导航图。

例如:EnableNavigate(0);//关闭导航图

EnableSaveTagValueToIniValueWhenValueChange

对于设置了“保存数值”和“保存参数”的变量,使用该函数后,当变量的值和参数发生变化时,系统会自动将变量的值和参数保存到文件tagname.db中,无论组态王运行系统是否正常退出,再次运行后,将保存的变量值和变量参数作为变量的初始值和初始参数。“保存数值”和“保存参数”的具体含义请参见《组态王手册》第七章变量定义和管理部分。

调用形式:

EnableSaveTagValueToIniValueWhenValueChange(is_enable);

参数:

is_enable:整型变量或数值

1:当变量的值和参数发生变化时,保存变量数值和参数。组态王运行系统退出,再次运行后,将保存的变量值和变量参数作为变量的初始值和初始参数。

0:与组态王“保存数值”和“保存参数”实现的功能相同。

例如:

组态王开发系统数据词典中定义变量,设置“保存数值”。执行函数:EnableSaveTagValueToIniValueWhenValueChange(1);

该变量的值发生变化时,系统保存该变量的值。组态王运行系统退出,再次运行后,将保存的变量值作为变量的初始值。

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;

不能启动返回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

此函数删除不需要或不想要的文件。

调用格式: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的整型变量。

Monitor:在数据词典中定义过的内存整数。

FileMove()函数在后台执行,这样它不会干扰“组态王”的运行。使用DoneTag是为了允许应用程序或工程人员监视转移操作的进展。用这种方法,在转移过程启动后可能发生的任何错误都能使工程人员察觉。(此处用变量Monitor监测)这与上述返回的Status不同,Status 表明的是转移过程是否已成功启动。一旦转移过程已成功启动,Monitor就会被赋值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指定第一个数据要写到的那个组态王变量的名称。此变量名必须以一个数字结尾(如MyTag1)。此参数必须是一个表明变量名的字符串(而非实际的变量本身)。所以,若变量叫做MyTag1,就需要给出MyTag1或https://www.doczj.com/doc/f112602789.html,,而不仅仅是MyTag1。NumberOfFields指定要读的字段数目(此文件的每条记录中以逗号隔开的字段的数目)。

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

例如:

若C:\DATA\FILE.CSV的第一行内容为:“Thisistext,3.1416,5”,调用函数

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

将读出此行,并把“Thisistext"保存在MyTag1中,3.1416保存在MyTag2中,5保存在MyTag3中:此函数在读出之后返回新的字节位置。你可以在下次读时使用此返回值作为FileOffset 的值,如:BytePosition=FileReadFields(c:\DATA\FILE.CSV",FileOffset,"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”,NumberOfFields);

参数描述

Filename指定要写的文件。若文件不存在,则创建它。

FileOffset指定写此文件的起始位置。若FileOffset为0,

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

StartTag指定第一个数据项的变量名称。此变量名必须以一个数字结尾(如MyTag1)。此参数必须是一个表明变量名的字符串(而非实际的变量本身)。比如,变量名为MyTag1,就需要给出”MyTag1”(注意引号)或https://www.doczj.com/doc/f112602789.html,,而不仅仅是MyTag1。

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

此函数在写入之后返回新的字节位置。可以在下次调用函数时使用此返回值作为FileOffset值。若StartTag为“MyTag1”,而NumberOfFields为3,则有3个字段被写入文件中(写入的是MyTag1、MyTag2和MyTag3)。这些具有连续名字的变量必须先在组态王中创建,并可以属于不同的类型(整型,字符串等等)。

例如:

将一行“Thisistext3.1416,5”写到文件C:\DATA\FILE.CSV的第一行中。“Thisistext”是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,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

此函数用于在组态王进行网络历史数据备份合并时获得进度百分比。使用时需要通过命令语言调用来获得进度值。语法使用格式:

GetBackupProgress(strszStationName);

参数:szStationName远程站点名称。

返回值:整型,为0~100间的进度值。

例如:

备份进度=GetBackupProgress(“IO采集站”);

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()。

GetDatelocal

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

GetDatelocal(DateTime,Year,Month,Day);

参数描述

DateTime:需要进行日期转换的数,整型,为输入参数

Year:年,整型,转换后得到的数据,输出参数

Month:月,整型,转换后得到的数据,输出参数

Day:日,整型,转换后得到的数据,输出参数

例如:

使用HTConvertTime函数将自UTC(格林尼治)时间1970年1月1日00:00:00到北京时间2006年9月26日9:22:4转换为以秒为单位的长整数数值为1159233724,使用GetDatelocal函数可以从这个数值中分离出所表示的北京日期——年、月、日。

GetDatelocal(1159233724,年,月,日);

执行后,得到的“年”的值为2006,“月”的值为9,“日”的值为26。

GetGroupName

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

sGroupName=GetGroupName(StationName,GroupID);

参数描述

StationName:报警组所在的站点名称(该项暂时无效,使用时用空字符串代替)GroupID:要获取名称的报警组的ID号

返回值为字符串型。

例如:

GroupName=GetGroupName(“”,\\本站点\原料罐液位.Group);

GetKey

此函数为获得组态王当前使用的加密锁的序列号。语法使用格式

KeyID=GetKey();

该函数没有任何参数。返回值为字符串型。

GetPictureScrollXPos

此函数用于获取目标画面当前窗口的左上角的X坐标值。语法使用格式GetPictureScrollXPos(STRINGPictureName);

PictureName:画面名称

返回值为目标画面当前窗口的左上角的X坐标值。

例如:

xx=GetPictureScrollXPos("监控中心");

GetPictureScrollYPos

此函数用于获取目标画面当前窗口的左上角的Y坐标值。语法使用格式GetPictureScrollYPos(STRINGPictureName);

参数描述

PictureName:画面名称

返回值为目标画面当前窗口的左上角的Y坐标值。

例如:

yy=GetPictureScrollYPos("监控中心");

GetProjectPath

此函数用于获取当前工程的路径。语法使用格式

GetProjectPath();

例如:在组态王数据词典中定义内存字符串变量VarName:

VarName=GetProjectPath();

GetRealDBForBool

此函数用于获取变量的当前实时离散值。语法使用格式GetRealDBForBool("VarName");

参数描述

VarName:变量名称,字符串格式

说明:变量只能是离散量。

返回值为离散型。

例如:bb=GetRealDBForBool("原料油出料阀");

GetRealDBForFloat

此函数用于获取变量的当前实时模拟值。语法使用格式GetRealDBForFloat("VarName");

参数描述

VarName:变量名称,字符串格式

说明:变量只能是实型变量。

例如:ff=GetRealDBForFloat("原料油液位");

GetRealDBForInt

此函数用于获取变量的当前实时整型值。语法使用格式GetRealDBForInt("VarName");

参数描述

VarName:变量名称,字符串格式

说明:变量只能是整型变量。

例如:ii=GetRealDBForInt("水果");

GetRealDBForString

此函数用于获取变量的当前实时字符串型值。语法使用格式GetRealDBForString("VarName");

参数描述

VarName:变量名称,字符串格式

说明:变量只能是字符串型变量。

例如:ss=GetRealDBForString("记录日期");

GetStationStatus

此函数用于在组态王进行网络历史数据备份合并时获得备份的状态。使用时需要通过命令语言调用来获得状态值。语法使用格式:

BOOLGetStationStatus(strszStationName);

参数:szStationName远程站点名称。

返回值:离散型,>0正在备份数据=0空闲。

例如:备份状态=GetStationStatus(“IO采集站”);

GetTime

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

GetTime(DateTime,Hour,Minute,Second);

参数描述

DateTime:需要进行时间转换的数,整型,为输入参数

Hour:时,整型,转换后得到的数据,输出参数

Minute:分,整型,转换后得到的数据,输出参数

Second:秒,整型,转换后得到的数据,输出参数

例如:

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

GetTimelocal

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

参数描述

DateTime:需要进行时间转换的数,整型,为输入参数

Hour:时,整型,转换后得到的数据,输出参数

Minute:分,整型,转换后得到的数据,输出参数

Second:秒,整型,转换后得到的数据,输出参数

例如:

使用HTConvertTime函数将自UTC(格林尼治)时间1970年1月1日00:00:00到北京时间2006年9月26日9:22:4转换为以秒为单位的长整数数值为1159233724,使用GetTimelocal函数可以从这个数值中分离出所表示的北京时间——时、分、秒。GetTimelocal(1159233724,时,分,秒);执行后,得到的“时”的值为9,“分”的值为22,“秒”的值为4。

HidePicture

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

HidePicture("画面名");

参数:画面名称字符串型

例如:HidePicture("反应车间");

HTConvertTime

此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是UTC(格林尼治)1970年1月1日00:00:00。例:北京为东八区,那么转换的时间基准为1970年1月1日8: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之间

返回值:整型

注:

调用此函数将用年、月、日、时、分、秒表示的时间转换成自1970年1月1日00:00:00即UCT起到该时刻所经过的秒数。在定义返回值变量时,应注意将其最大值置为整型数的最大范围,如2×109,否则可能会因为返回数据超出范围导致转换的时间不正确。

例如:语句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是用工程百分比来表示变量的下限值,start则表示将下限值的工程百分比转换为实际值。“end”表示获取与历史趋势曲线的域ValueEnd相对应的实际值,ValueEnd是用工程百分比来表示变量的上限值,end 则表示将上限值的工程百分比转换为实际值。

例如:

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

如下图所示:

对应的工程百分比为0%

最大上限值500

最小下限值0

对应的工程百分比为100%

如果用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)的以秒计的相对时间,指示器位置由ScootNum指定。调用格式:IntegerResult=HTGetTimeAtScooter(HistoryName,ScootNum);

参数描述

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

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

当趋势曲线的ChartStart、ChartLength、ScootNum或指示器位置改变时都会引起此表达式被计算。

例如:

下面的语句在趋势曲线Trend1左指示器的当前位置给出以秒为单位的时间值:TimeLength=HTGetTimeAtScooter(Trend1,1);

HTGetTimeStringAtScooter

此函数返回包含时间/日期的字符串,指示器的位置由ScootNum和ScootLoc指定。调用格式:MessageResult=HTGetTimeStringAtScooter(HistoryName,ScootNum,pTextFormat); 参数描述

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

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

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

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

"Time"以Windows控制面板相同的格式显示时间。

"DateTime"同时显示日期和时间。

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

例如:

在变量为Trend1的右指示器的当前位置给出日期/时间值。

这个值被存在字符串变量NewRightTimeString中,格式是”Time”,调用函数NewRightTimeString=HTGetTimeStringAtScooter(Trend1,2,"Time");

HTGetValue

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

RealResult=HTGetValue(HistoryName,PenNum,ContentString);

参数描述

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

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

ContentString表明返回值类型的字符串。可以是以下字符串之一。

"AverageValue"整个趋势的平均值。

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

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

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

例如:

下面的语句得到趋势Trend1的Pen2所取得数据的最大值。

算出的值存到内存实型变量LeftHemisphereSD中:

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

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历史趋势变量,代表趋势名。

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

ContentString表明要返回值的类型的字符串,可以是以下3个字符串之一:"AverageValue"左右指示器间区域上的平均值。

"MaxValue"左右指示器间区域上的最大值。

"MinValue"左右指示器间区域上的最小值。

此函数直接使用运行数据库的趋势变量的.ScooterPosLeft和.ScooterPosRight域来确定区域边界,并返回计算值。

例如:

取得趋势曲线“Trend1”的Pen1代表的变量左右指示器之

间的平均值,并把结果存入内存实型变量AvgValue中。调用函数:

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

HTResetValueZone

此函数将趋势曲线的数值轴恢复到初始值状态(我们把在组态王开发系统下历史趋势曲线的标识定义中设定的数值轴的起始值和最大值称为数值轴的初始值)。

调用格式:HTResetValueZone(HistoryName);

参数描述:HistoryName历史趋势变量,代表趋势名。

例如:

将趋势曲线Trend1的数值轴恢复到初始状态

HTResetValueZone(Trend1);

HTScrollLeft

此函数将趋势曲线的起始时间左移(提前)给定的百分比值。百分比是相对于趋势曲线的时

间轴长度。移动后时间轴的长度保持不变。

调用格式:HTScrollLeft(HistoryName,Percent);

参数描述

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

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

例如:

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

HTScrollLeft(Trend1,10.0);

若当前显示起始于下午12:00:00,而且显示宽度为60秒。

在函数执行后,新的趋势曲线将起始于上午11:59:54。

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,LeftScooterTime);

参数描述HistoryName历史趋势曲线名称,在“历史趋势曲线”

对话框中定义。

LeftScooterTime历史趋势曲线的时间坐标起点值。一个以GMT(格林尼治时间)1970年1月1日00:00:00为起点(北京时间为1970年1月1日08:00:00)的以秒计的相对时间。

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

此函数更改趋势曲线的起始时间和截止时间。通过缩短时间轴长度,以使趋势曲线局部放大。调用格式: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

此函数计算新曲线的宽度和起始时间,曲线宽度为函数调用前的二倍,新起始时间依AlignPosString的值算出。调用格式: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表明未运行。

InfoAppDir

此函数返回当前组态王的工程路径。调用格式:

MessageResult=InfoAppDir();

当前组态王工程路径返回给MessageResult.

例如:

DemoPath=InfoAppDir();

将返回"C:\ProgramFiles\Kingview\Example\Kingdemo3"。

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可为任何变量名(不受系统变量的限制)。

由驱动器号指定的磁盘驱动器的有关信息返回给IntegerResult。

例如:

下面的语句每分钟执行一次并返回当前的值:

InfoDisk("C",1,$分);//将返回C盘总空间数

InfoDisk("C",2,$分);//将返回C盘空闲空间数

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,$分);将返回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,$分);//将返回空闲百分比

InfoResource(2,$分);//将返回空闲百分比

InfoResource(3,$分);将返回内存中空闲空间字节数

InfoResource(4,$分);将返回任务数

注意:

在WINNT下返回GDI和USER的资源可用空闲空间的百分比是一样的,与WINNT系统有关。

Int

此函数返回小于等于指定数值的最大整数。调用格式:IntegerResult=Int(Number);

参数描述

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

例如:Int(4.7);将返回4 Int(-4.7);将返回-5

listLoadList

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

组态王教程1

组态王软件培训

培训内容 内容包括: 1、组态王介绍 2、新建工程 3、建立IO设备通信 4、建立数据词典 5、画面组态 6、设置,然后运行 7、脚本编程,函数等。

组态王软件是一种通用的工业监控软件, 它适用于从单一设备的生产运营管理和故障诊断,到网络结构分布式大型集中监控管理系统的开发。支持与国内外常见的PLC、智能模块、智能仪表、变频器、数据采集板卡进行数据通讯组态王软件结构由工程管理器、工程浏览器及运行系统三部分构成。

组态软件的安装 1、运行安装组态王程 序。直接安装。 2、安装完后直接安装 驱动。 3、其它内容可以不安 装。

工程管理器:工程管理器用于新工程的创建和已有工程的管理,对已有工程进行搜索、添加、备份、恢复以及实现数据词典的导入和导出等功能。 工程浏览器:工程浏览器是一个工程开发设计工具,用于创建监控画面、监控的设备及相关变量、动画链接、命令语言以及设定运行系统配置等的系统组态工具。 运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器的动画设计显示动态画面,实现人与控制设备的交互操作。

组态王软件是一种通用的工业监控软件, 它适用于从单一设备的生 产运营管理和故障诊断,到网络结构分布式大型集中监控管理系统的开发。支持与国内外常见的PLC、智能模块、智能仪表、变频器、数据采集板卡进行数据通讯组态王软件结构由工程管理器、工程浏览器及运行系统三部分构成。 工程管理器:工程管理器用于新工程的创建和已有工程的管理,对已有工程进行搜索、添加、备份、恢复以及实现数据词典的导入和导出等功能。 工程浏览器:工程浏览器是一个工程开发设计工具,用于创建监控画面、监控的设备及相关变量、动画链接、命令语言以及设定运行系统配置等的系统组态工具。 运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器的动画设计显示动态画面,实现人与控制设备的交互操作。

组态王软件教程

组态王软件教程 软件教程 一、概述 1.概述 组态王软件结构由工程管理器、工程浏览器及运行系统三部分构成。 工程管理器:工程管理器用于新工程的创建和已有工程的管理,对已有工程进行搜索、添加、备份、恢复以及实现数据词典的导入和导出等功能。 工程浏览器:工程浏览器是一个工程开发设计工具,用于创建监控画面、监控的设备及相关变量、动画链接、命令语言以及设定运行系统配置等的系统组态工具。 运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器的动画设计显示动态画面,实现人与控制设备的交互操作。 2.建立应用工程的一般过程 1)创建新工程 为工程创建一个目录用来存放与工程相关的文件。 2)定义硬件设备并添加工程变量 添加工程中需要的硬件设备和工程中使用的变量,包括内存变量和I/O 变量。 3)制作图形画面并定义动画连接 按照实际工程的要求绘制监控画面并使静态画面随着过程控制对象产生动态效果。 4)编写命令语言 通过脚本程序的编写以完成较复杂的操作上位控制。 5)进行运行系统的配置

对运行系统、报警、历史数据记录、网络、用户等进行设置,是系统完成用于现场前的必备工作。 6)保存工程并运行 完成以上步骤后,一个可以拿到现场运行的工程就制作完成了。 二、建立一个新工程 1.工程管理器 组态王工程管理器是用来建立新工程,对添加到工程管理器的工程做统一的管理。工程管理器的主要功能包括:新建、删除工程,对工程重命名,搜索组态王工程,修改工程属性,工程备份、恢复,数据词典的导入导出,切换到组态王开发或运行环境等。 2.工程浏览器 工程浏览器是组态王6.55 的集成开发环境。 3.定义外部设备和数据变量 组态王把那些需要与之交换数据的硬件设备或软件程序都作为外部设备使用。外部硬件设备通常包括PLC、仪表、模块、变频器、板卡等;外部软件程序通常指包括DDE、OPC 等服务程序。按照计算机和外部设备的通讯连接方式,则分为:串行通信(232/422/485)、以太网、专用通信卡(如CP5611)等。 组态王与外部设备的通讯方式:如COM1、COM2、DDE、板卡、OPC 服务器、网络站点,其中COM1、COM2 表示组态王支持串口的通讯方式,DDE表示支持通过DDE 数据传输标准进行数据通讯,其他类似。 注意:标准的计算机都有两个串口,所以此处作为一种固定显示形式,这种形、COM2,也不表示组态王计算机上肯定有两个式并不表示组态王只支持COM1 串口;并且“设备”项下面也不会显示计算机中实际的串口数目,用户通过设备定义向导选择实际设备所连接的PC 串口即可。

组态王 常用函数

SetRealDBForFloat bool int 此函数用于生成实型变量的操作事件。除按钮命令语言外,在组态王命令语言中修改变量的值可以生成操作事件。 调用形式: SetRealDBForFloat("VarName",Value): VarName 为变量名,Value 为变量值 例如: 在画面“显示时”命令语言中输入: SetRealDBForFloat ("\\本站点\液位",1.5) 设置实型变量“\\本站点\液位”的值为1.5。 画面显示时,生成实型变量\\本站点\液位的操作事件 Sgn 此函数判别一个数值的符号(正、零或负)。调用格式:IntegerResult=Sgn(Number); 北京亚控科技发展有限公司 组态王命令语言函数速查手册 110 参数描述 Number 任一数值或组态王实型或整型变量名。 若数值为正,则返回值为1。数值为负的则返回值为-1,数值为0 则返回0。 例如: Sgn(425);//将返回1 Sgn(0);//将返回0 Sgn(-37.3);//将返回-1 ShowNavigateWindow 此函数用于实现导航窗口的显示与隐藏。调用格式:ShowNavigateWindow(nCmdShow); 参数描述 nCmdShow:导航窗口的显示与隐藏控制。nCmdShow=0,隐藏导航窗口;nCmdShow=1,显示导航窗口。 例如:显示导航窗口: ShowNavigateWindow(1); StrReplace 此函数替换或改变所提供字符串的指定部分。使用此函数能获取字符串变量并替换字符、单词或短语。调用格式:MessageResult = StrReplace( Text,SearchFor, ReplaceWith, CaseSens, NumToReplace,

组态王的经典问题解答

组态王的n个经典问题解答之一 1、变量设定中最大(小)值及最大(小)原始值的意义? 最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中[寄存器]数字量的最大(小)值(如板卡中的819-4095等)。一般对于板卡设备此值为物理量经AD转换之后的值,如12BitAD此值范围0~4096、16BitAD为0~65535,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的. 2:组态完成后发现工程特别大,怎样把工程文件变小? 可以删除*.AL2(报警信息文件),*.REC(历史记录文件),*.111文件(*.pic文件的备份文件)的文件。 3:在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思? 保存参数:在系统运行时,修改变量的域的值(可读可写型),系统自动保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变量的域的参数值为上次系统运行时最后一次的设置值。无需用户再去重新定义。 保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。 4:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win98系统)? 编辑Win98系统下的System.ini文件,将shell=explorer.exe改为: path=c:\ProgramFiles\Kingview\ shell=Touchvew.exe 即可 5:组态王里画面属性中覆盖式与替换式有何区别? 覆盖式画面出现时,它重叠在当前画面之上,其他打开的画面还在运行,关闭后被覆盖的画面又可见。替换式画面出现时,所有与之相交的画面自动从屏幕和内存中删除,不再运行。 6:如何利用多个摄像头在组态王上显示多幅画面? 用户需要增加硬件设备:矩阵转换器和画面分割器。视频采集后通过矩阵转换和画面分割再送进组态王中,例如需要显示16个画面,可选择16画面分割器。 7:如何将gif动画用在组态王画面中? 在组态王画面中的工具箱内选折<画点位图 designtimesp=451>这一项并用鼠标在画面中画出一个点位图块,然后点击鼠标右键,在其下拉式菜单中选折〈从文件加载〉,选择所需的gif动画文件。 8:如何用组态王在启动一个应用程序时打开任意路径下的一个文件? 一在组态王中定义一个内存字符串型变量,在StartApp函数调运之前,赋给该变量值,为:应用程序路径+一个或两个空格+文件路径、文件名、文件扩展名。接下来用StartApp 函数,其参数为该变量名称。如用WordPad启动时打开一个.alg文件:定义“文件”问内存

IPAM-7404应用手册-组态王

一简介 应用手册介绍通过组态王采集和控制IPAM系列模块的详细步骤。 二软硬件环境 WINDOWS 操作系统 组态王6.51(其他版本类似) IPAM-7404 USB转RS485转换器或者RS232转RS485转换器 直流电源(10~30vdc) 三系统结构示意图 电源 RS-485/ USB IPAM 主机 四设置IPAM-7404的相关参数 使用组态软件对IPAM系列模块进行命令和测试,必须先对模块进行一些相关参数的设定。设定方法为用配套配置软件IPAMTOOL(使用说明见用户手册)连接上模块后设置内容如下图所示:

五IPAM-7404在组态王的设定和测试 设定好参数后关闭IPAMTOOL配置软件,确保组态王正确安装后打开组态王开始组态王的操作。 1 新建设备 1)双击打开组态王软件,如下图所示。新建一个你所需要的工程,我们以“纹波测试”工程为例(如果没有建立好的工程,可以点左上角的新建按钮新建一个工程)。

2)双击“纹波测试”后,在界面左端找到“设备”,单击它,进入以下界面 3 第页 3)双击“新建...”,跳出“设备配置向导”窗口 4)在设备配置向导窗口内,依次选择“设备驱动”“PLC”“莫迪康”“Modbus (RTU)”“串行”,再点击下一步。

4 第页5)第一步:跳出“设备配置向导---逻辑名称”窗口,设定为IPAM7404。 第二步:继续点击下一步,跳出“设备配置向导---选择串口号”窗口,选择RS-485所接USB或串口,这里选择COM1。 第三步:再点击下一步,跳出“设备配置向导---设备地址设置指南”窗口,模块出厂默认地址为1,如果在设置IPAM7404参数的时候设置了其他地址,以设置的地址为准。 第四步:设定好后,点击下一步,跳出“通讯参数”窗口,默认值为“30秒”和“24小时”,点击确定按钮。 第五步:确定后点击下一步,跳出“设备安装向导---信息总结”窗口,核对信息。 第六步:点击完成按钮,新建设备IPAM7404完成。 第一步第二步 第三步第四步

组态王使用说明

皖西学院 监控组态软件实验指导书 机械与电子工程学院 电气工程教研室 2013.3

实验一监控组态工程建立与工艺流程图绘制 一、实验目的 熟练掌握工控组态软件的绘图工具 二、实验内容 熟悉工控组态软件的绘图工具,完成反应工段工艺流程绘制以及外部设备和变量的定义。 三、实验步骤 1.1创建工程 在工程管理器中选择菜单“文件/新建工程”,或者点击工具栏的“新建”按钮,根据“新建工程向导”对话框完成工程创建,如图一所示 图一工程管理器 1.2 组态画面 双击工程管理器中的工程,打开工程浏览器,在工程浏览器中左侧的“工程目录显示区”中选择“画面”,在右侧视图中双击“新建”,弹出新建画面对话框如图一所示。

图二画面属性设置 点击图二确定按钮后,在工具箱和图库中选中相应图素进行监控画面组态,绘制工艺流程图如图三所示。 图三反应车间监控画面 1.3定义设备 根据工程中实际使用得设备进行定义,本例程使用亚控的仿真PLC设备,使用“PLC-亚控-仿真PLC-串口”驱动,定义设备名称为“PLC”。

1.4定义变量 在组态王中定义三个变量:原料油液位(IO实数类型)、成品油液位(IO实数类型)、催化剂液位(IO实数类型)。 原料油液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。 催化剂液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。 成品油液位变量:最小值0,最大值200,最小原始值0,最大原始值200,连接设备PLC,寄存器INCREA200,数据类型short,读写属性为只读,采集频率1000。记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。 四、实验报告 实验报告包括实验目的、实验内容、设计说明、实验体会等。

组态王使用常见问题

组态王使用常见问题 1、变量设定中最大(小)值及最大(小)原始值的意义? [最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中[寄存器]数字量的最大(小)值(如板卡中的819-4095等)。一般对于板卡设备此值为物理量经AD转换之后的值,如12BitAD 此值范围0~4096、16BitAD为0~65535,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的. 2、为什么变量无法删除,如何删除变量? [在组态王中,只有未使用的变量才能被删除,因此在删除变量之前,必须去掉在画面或命令语言、控件引用处,等处与之有关的连接,如果还是无法删除,在工程浏览器中执行工具-更新变量计数命令,重新统计变量,在变量使用报告中可以查询变量是否还在某些地方使用,将其连接断开后,利用工具-删除未用变量将变量删除。 3、工程运行时,显示通讯协议组件失败? [设备驱动安装错误:1、安装新的驱动2、在开发状态下从新连接设备,如果还是有错误,请联系驱动部索要新的驱动程序] 4、光盘上的典型案例无法打开? [将工程拷贝到硬盘上将属性改为存档即可 5、如何在打开机器时自动进入组态王? [将touchview快捷方式拷贝到系统开始\程序\启动中 6、怎样把工程文件变小?

[可以删除*.AL2(报警信息文件),*.REC(历史记录文件),*.111文件(*.pic 文件的备份文件)的文件。 7、如何在线增删用户及用户密码和权限? [使用editusers()函数(用户权限需大于900)] 8、在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思? [保存参数:在系统运行时,修改变量的域的值(可读可写型),系统自动保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变量的域的参数值为上次系统运行时最后一次的设置值。无需用户再去重新定义。 保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。 9、开发狗与运行狗的区别? [开发狗是用于工程开发使用的,为了方便调试支持6小时的连续运行,运行狗是用于工程实际运行,不能进行开发. 21:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win2000系统)? 运行RegEdit文件:找到我的\HKEY_Local_MACHINE\software\Microsoft\Windows NT\currentVersion\winlogon 将Userinit=c:\winnt\system32\userinit.exe改为:Userinit= c:\program files\kingview\touchvew.exe

组态王实例教程入门

组态王实例教程入门 组态王kingview6.55是亚控科技根据当前的自动化技术的发展趋势,面向低端自动化市场及应用,以实现企业一体化为目标开发的一套产品。该产品以搭建战略性工业应用服务平台为目标,集成了对亚控科技自主研发的工业实时数据库(KingHistorian)的支持,可以为企业提供一个对整个生产流程进行数据汇总、分析及管理的有效平台,使企业能够及时有效地获取信息,及时地做出反应,以获得最优化的结果。 组态王保持了其早期版本功能强大、运行稳定且使用方便的特点,并根据国内众多用户的反馈及意见,对一些功能进行了完善和扩充。组态王kingview6.55提供了丰富的、简捷易用的配置界面,提供了大量的图形元素和图库精灵,同时也为用户创建图库精灵提供了简单易用的接口;该款产品的历史曲线、报表及web发布功能进行了大幅提升与改进,软件的功能性和可用性有了很大的提高。 组态王在保留了原报表所有功能的基础上新增了报表向导功能,能够以组态王的历史库或KingHistorian为数据源,快速建立所需的班报表、日报表、周报表、月报表、季报表和年报表。此外,还可以实现值的行列统计功能。 组态王在web发布方面取得新的突破,全新版的Web发布可以实

现画面发布,数据发布和OCX控件发布,同时保留了组态王Web的所有功能:IE浏览客户端可以获得与组态王运行系统相同的监控画面,IE客户端与Web服务器保持高效的数据同步,通过网络您可以在任何地方获得与Web服务器上相同的画面和数据显示、报表显示、报警显示等,同时可以方便快捷的向工业现场发布控制命令,实现实时控制的功能。 组态王集成了对KingHistorian的支持,且支持数据同时存储到组态王历史库和工业库,极大地提高了组态王的数据存储能力,能够更好地满足大点数用户对存储容量和存储速度的要求。KingHistorian是亚控新近推出的独立开发的工业数据库。具有单个服务器支持高达100万点、256个并发客户同时存储和检索数据、每秒检索单个变量超过20,000 条记录的强大功能。能够更好地满足高端客户对存储速度和存储容量的要求,完全满足了客户实时查看和检索历史运行数据的要求。

组态王6.5 网络OPC功能使用说明

组态王6.5 网络OPC功能使用说明 组态王6.01具有网络OPC功能,组态王与组态王之间可以通过网络以OPC方式进行通讯,同样其它OPCclient/OPCserver也可以通过网络与组态王之间以OPC方式进行通讯。 组态王作为OPC server时只能在NT/2000上使用。 客户端可以在NT/2000/XP上使用 服务器与客户端的用户名、密码必须一致 具体操作如下: 一、配置充当OPC服务器的机器 1、win2000/nt的配置 配置充当OPC服务器的机器是指对dcomcnfg程序进行配置,win2000操作系统自己带有dcomcnfg程序,设置过程如下: (1)打开dcomcnfg: 在windows菜单“开始”中选择“运行”,在编辑框中输入“dcomcnfg”,如下图所示。 (2)定义属性:点击“确定”后,弹出“分布式com配置属性”对话框,如下图:

进入“默认安全机制”属性页进行定义,如下图: 对“默认访问权限”,“默认启动权限”和“默认配置权限”进行设置,将everyone用户设置为“允许访问”,“允许调用”和“完全控制”。 然后选中“opcEnum”,进行“属性”配置,弹出如下对话框:

在“安全性”属性页中选中“使用自定义访问权限”,“使用自定义启动权限”,“和使用自定义配置权限”,并分别进行编辑,全部设置为”everyone”允许访问,允许设置,完全控制等。 然后在“身份标识”属性页中选中“交互式用户” (3)再回到“分布式com配置属性”对话框中,选中kingview.view,如下图,

进行属性配置,同样,在“安全性”属性页中选中“使用自定义访问权限”,“使用自定义启动权限”,“和使用自定义配置权限”,并分别进行编辑,全部设置为”everyone”允许访问,允许设置,完全控制等。然后在“身份标识”属性页中选中“交互式用户”。 二、服务器端运行组态王 服务器端可以直接进入组态王运行系统,此时组态王作为OPC服务器。 三、客户端通过OPC连接服务器 1、客户端组态王的定义。客户端组态王作为opcclient,可以通过网络OPC功能与组态王OPC服务器连接。 客户端的操作如下: (1)定义OPC服务器:在工程浏览器中,选择“OPC服务器”,然后双击“新建”,弹出“查看OPC服务器” 在“网络节点名”中输入服务器的机器节点名,例如运行组态王的服务器为test,则输入\\test,点击“查找”后,列表中会列出test 机器上所有的OPC服务程序,双击kingview.view.1,然后点“确认”,OPC服务器就定义好了。

组态王软件介绍教学文案

3、系统软件 3.1组态王软件介绍 本系统采集控制软件选用中国本土软件厂商北京亚控科技发展有限公司生产的,国内最早的商用组态软件“组态王”。截止到2009年底,“组态王”已在国内装机量有10万套,成功地应用于我国工业领域的各行各业,例如石油、化工、电力、冶金、造纸、橡胶、环保、机械制造等等,在中国使用的监控软件中,组态王拥有国内最多的用户。像国外众多的软件一样,组态王软件也经过了一个发展例程: 1995年——组态王V1.0 1996年——组态王V1.2 1997年——组态王V1.51 1998年——组态王V2.0 1999年——组态王V5.1 2000年——组态王V5.1 for Internet 2001年——组态王V6.0、组态王电力专业版6.0 2002年——组态王V6.02 2003年——组态王V6.5 2005年——组态王V6.51 2006年——组态王V6.52 2007年——组态王V6.53 下面介绍组态王通用强大的功能。 3.1.1基本人机界面功能 通过本功能完成画面组态。 1.快速便捷的应用设计 用组态软件构造“监控和数据采集系统”的好处之一就是能大大缩短开发时间,并能保证系统的质量。能快速便捷地进行图形维护和数据采集是此类系统的关键点。组态王正是提供了丰富的快速应用设计的工具。 (1)方便实用的工程管理组态王6.53提供方便实用的管理工具——工程管理器。工程管理器是一个独立的可执行文件,用来管理本机的所有组态王工程,可以实现工程的压缩备份,备份恢复,数据词典的导出导入,实现开发和运行系统的切换等。

(2).集成的开发环境最新设计的组态王工程浏览器为用户提供了便利的集成开发环境。工程设计者可以在工程浏览器中查看工程的各个部分,可以查看画面、数据库、配置通讯驱动程序、设计报表;可以完成系统的大部分配置。 工程浏览器采用树形结构,操作简单方便,容易接受。在工程浏览器中,用户也可以方便地切换到组态王开发环境和运行环境。 (3).功能强大、易用的绘图工具目前用简单的示意性图形已经不足以表示工业现场复杂的生产过程,用户普遍要求更加丰富多彩、生动逼真的画面。为满足此要求,组态王提供了丰富的绘图工具,并尽可能使绘图工具的使用方法容易掌握。 组态王工具箱中提供的绘图工具包括直线、折线、圆弧、矩形(方形)、圆角矩形、圆形(椭圆)等工具。它们的使用方法与一般绘图软件(如“画笔”)大致相同,设计者不需专门的培训即可使用。 (4).灵活的便捷菜单使用组态王的过程中,用户可以随时按下鼠标右键来得到上下文相关的快捷菜单。这种方式比普通的菜单命令更容易使用,将大幅度地提高开发应用系统的效率。 (5).支持无限色和过渡色组态王6.53调色板改为支持无限色,支持二十四种过渡色效果,组态王的任一种绘图工具都可以使用无限色,大部分图形都支持过渡色效果,巧妙地利用无限色和过渡色效果,可以使您轻松构造面无限逼真、美观的画面。 (6).图形对象丰富的动画效果图形界面上的任何对象或复合对象都可以随着过程参数的改变而变换状态,以产生动画效果。图形对象与过程参数建立变化对应关系的过程称为“动画连接”。 图形对象可以按动画连接的要求改变颜色、尺寸、位置、填充百分比等属性。一个图形对象可以同时定义多个连接。把这些动画连接组合起来,应用软件将呈现出令人难以想象的图形动画效果。 图形对象可以进行的“动画连接”包括: 属性变化:包括线属性、填充属性、文本色 位置与大小变化:包括水平和垂直移动、缩放、旋转、填充 值输出:包括模拟值输出、离散值输出、字符串输出 用户输入:包括模拟值输入、离散值输入、字符串输入 滑动杆输入: 包括水平滑动杆输入、垂直滑动杆输入

组态王指令说明

组态王 Name:表示变量的名称,字符型,只读。 Comment:表示变量的描述内容,字符型,可读可写。 质量戳相关域:变量的质量戳表示变量的数据质量好坏。质量戳相关域包括: Quality:表示变量质量戳的值,整型,只读。 QualityString:表示变量质量戳字符串,字符串型,只读 时间戳相关域:变量的时间戳表示变量数据的采集时间。时间戳相关域包括: TimeYear:表示变量时间戳年的值,整型,只读 TimeMonth:表示变量时间戳月的值,整型,只读 TimeDate:表示变量时间戳日的值,整型,只读 TimeHour:表示变量时间戳小时的值,整型,只读 TimeMinture:表示变量时间戳分的值,整型,只读 TimeSecond:表示变量时间戳秒的值,整型,只读 TimeMsec:表示变量时间戳毫秒的值,整型,只读 TimeZone:表示变量时间戳时区的值,整型,只读 TimeDateString:表示变量时间戳日期的字符串,字符串型,只读TimeTimeString:表示变量时间戳时间的字符串,字符串型,只读 组态王的变量(除报警窗和历史曲线变量外)均具有以上14种域。 另外,IO整型和IO实型变量还有下面四个域: MaxEU:最大值,模拟型,可读可写。 MinEU:最小值,模拟型,可读可写。 MaxRAW:表示变量的最大原始值,模拟型,可读可写。 MinRAW:表示变量的最小原始值,模拟型,可读可写。 内存整型,内存实型变量也有MaxEU和MinEU域。 离散变量的报警域包括 Ack 表示变量报警是否被应答,离散型,只读。 Alarm 表示变量是否有报警,离散型,只读。 AlarmEnable 表示变量的报警使能状态,离散型,可读可写 DataChanged 表示变量的变化状态,当变量值变化时,该域置1,用户可以手动 赋值为0,离散型,可读可写。 DataUpDate 表示变量的状态变化,离散型,只读。默认状态为false。当从设 备上采集上数据,填充实时库时(不管数据是否变化),该值置 为true,需要手动复位。 Group 表示变量所属的报警组ID,模拟型,可读可写。 Priority 表示变量的报警优先级,模拟型,可读可写。ExtendFieldString1 表示报警变量的扩展域1,字符串型,可读可写

组态王日报表例程

组态王日报表的实现例程 配置参考文档 北京亚控科技发展有限公司 技术部 目录 一、功能概述 (2) 一、功能概述 (2) 二、工程实例 (2) 三、操作步骤: (2) 1、定义设备: (2) 2、定义变量: (2) 3.制作画面: (3) 3.1) 创建报表: (3) 3.2) 创建日历控件: (5) 4.进入运行系统: (11) 四、注意事项 (12) 图表 图一报表 (4) 图二报表设计 (4) 图三日报表 (5) 图四日历控件 (6) 图五控件事件函数 (9) 图六保存报表 (9) 图七打印报表 (10) 图八打印报表 (10) 图九运行系统 (11) 图十打印预览 (12)

一、功能概述 常规需求:很多工业现场会用到报表功能,而日报是其中最基本的一种报表形式。 日报表一般为每天整点的数据,每一个变量有24个数据。 组态王中的实现方法: 利用组态王内置报表以及报表的函数来实现对日数据的查询生成日报表。 组态王内置报表的操作类似excel,操作简单、方便,并且组态王提供了大量的报表函数来实现各种复杂功能。 二、工程实例 我们举一个例子来说明日报表的实现方法。在此例程中我们定义五个变量,分别为“压力”、“温度”、“密度”、“电流”、“电压”,运行系统运行后记录历史数据,查询日报表数据时自动从历史数据中查询整点数据生成报表,并可以保存、打印报表。下面就以此为例来演示完成这一要求的具体步骤。 三、操作步骤: 1、定义设备: 根据工程中实际使用得设备进行定义,本例程使用亚控的仿真PLC设备,使用“PLC-亚控-仿真PLC-串口”驱动,定义设备名称为”PLC”。 2、定义变量: 在组态王中定义三个变量:压力(IO实数类型)、温度(IO实数类型)、密度(IO实数类型)。压力变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器INCREA100,数据类型short,读写属性为只读,采集频率1000。记录和安全区选择“数据变化记录”,变化灵敏度选择“0”。 温度变量:最小值0,最大值50,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。记录和安全区选择“数据变化记录”,变化灵敏度选择

组态王7.5SP1版本第3章命令语言

第四讲命令语言 第一节命令语言 命令语言概述 组态王除了在定义动画连接时支持连接表达式,还允许用户编写命令语言来扩展应用程序的功能,极大地增强了应用程序的可用性。 命令语言的格式类似C语言的格式,工程人员可以利用其来增强应用程序的灵活性。组态王的命令语言编辑环境已经编好,用户只要按规范编写程序段即可,它包括:应用程序命令语言、热键命令语言、事件命令语言、数据改变命令语言、自定义函数命令语言和画面命令语言等。 命令语言的句法和C语言非常类似,可以说是C的一个简化子集,具有完备的词法语法查错功能和丰富的运算符、数学函数、字符串函数、控件函数、SQL函数和系统函数。各种命令语言通过“命令语言编辑器”编辑输入并进行语法检查,在运行系统中进行编译执行。 命令语言有六种形式,其区别在于命令语言执行的时机或条件不同: 1、应用程序命令语言 可以在程序启动时、关闭时或在程序运行期间周期执行。如果希望周期执行,还需要指定时间间隔。 2、热键命令语言 被链接到设计者指定的热键上,软件运行期间,操作者随时按下热键都可以启动这段命令语言程序。 3、事件命令语言 规定在事件发生、存在、消失时分别执行的程序。离散变量名或表达式都可以作为事件。 4、数据改变命令语言 只链接到变量或变量的域。在变量或变量的域值变化到超出数据字典中所定义的变化灵敏度时,它们就被触发执行一次。 5、自定义函数命令语言 提供用户自定义函数功能。用户可以根据组态王的基本语法及提供的函数自己定义各种功能更强的函数,通过这些函数能够实现工程特殊的需要。

6、画面、按钮命令语言 可以在画面显示时、隐含时或在画面存在期间定时执行画面命令语言。 在定义画面中的各种图索的动画连接时,可以进行命令语言的连接。 如何退出系统 如何退出组态王运行系统,返回到Windows呢?可以通过Exit()函数来实现。 1、选择工具箱中的工具,在画面上画一个按钮,选中按钮并单击鼠标右键,在弹出的下拉菜单中执行“字符串替换”命令,设置按钮文本为:系统退出。 2、双击按钮,弹出动画连接对话框,在此对话框中选择“弹起时”选项弹出命令语言编辑框,在编辑框中输入如下命令语言: Exit(0); 3、单击“确认”按钮关闭对话框,当系统进入运行状态时单击此按钮系统将退出组态王运行环境。 第二节常用功能 定义热键 在实际的工业现场,为了操作的需要可能需要定义一些热键,当某键被按下时使系统执行相应的控制命令。例如当按下F1键时,使原料油出料阀被开启或关闭。这可以使用命令语言的一种热键命令语言来实现。 1、在工程浏览器左侧的“工程目录显示区”内选择“命令语言”下的“热键命令语言”选项,双击“目录内容显示区”的新建图标弹出“热键命令语言”编辑对话框,如图4-1所示。 图4-1 2、对话框中单击“键”按钮,在弹出的“选择键”对话框中选择“F1”键后关闭对话框。

组态王6.5使用手册 第14章 控件(共101页 34~73页)

第十四章控件 14.2.8 超级文本显示控件 组态王提供一个超级文本显示控件,用于显示RTF格式或TXT格式的文本文件,而且也可在超级文本显示控件中输入文本字符串,然后将其保存成指定的文件,调入RTF、TXT格式的文件和保存文件通过超级文本显示控件函数来完成。 14.2.8.1 如何创建超级文本显示控件 在画面开发系统的工具箱中选择“插入控件”按钮,或选择菜单“编辑/插入控件”命令,在弹出的如图14.2所示的“创建控件”对话框中,在种类列表中选择“超级文本显示”,在右侧的内容中选择“显示框”图标,单击对话框上的“创建”按钮,或直接双击“显示框”图标,关闭对话框。此时鼠标变成小“十” 字形,在画面上需要插入控件的地方按下鼠标左键,拖动鼠标,画面上出现一个矩形框,表示创建后控件界面的大小。松开鼠标左键,控件在画面上显示出来。 如图14.32所示。控件周围有带箭头的小矩形框,鼠标挪到小矩形框上,鼠标箭头变为方向箭头时,按下鼠标左键并拖动,可以改变控件的大小。当鼠标在控件上变为双“十”字型时,按下鼠标左键并拖动,可以改变控件的位置。

图14.32 创建后的超级文本显示框控件 14.2.8.2 如何定义超级文本显示控件的属性 控件创建完成后,需要定义空间的属性。用鼠标双击控件,弹出超级文本显示框控件属性对话框,如图14.33所示。 图14.33 超级文本显示框控件属性对话框 超级文本显示框控件属性: ◆控件名称:定义控件的名称,一个显示框控件对应一个控件名称, 而且是唯一的,不能重复命名,控件的命名应该符合组态王的命名 规则。如“Richtxt1”。 ◆访问权限:定义控件的安全级别——访问权限,范围为1~999。定

组态王 实例

一、概述 组态王软件结构由工程管理器、工程浏览器及运行系统三部分构成。工程管理器:工程管理器用于新工程得创建与已有工程得管理,对已有工程进行搜索、添加、备份、恢复以及实现数据词典得导入与导出等功能。工程浏览器:工程浏览器就是一个工程开发设计工具,用于创建监控画面、监控得设备及相关变量、动画链接、命令语言以及设定运行系统配置等得系统组态工具。运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器得动画设计显示动态画面,实现人与控制设备得交互操作。 通常情况下,建立一个应用工程大致可分为以下六个步骤: 1.创建新工程为工程创建一个目录用来存放与工程相关得文件。 2.定义硬件设备并添加工程变量添加工程中需要得硬件设备与工程中使 用得变量,包括内存变量与 I/O 变量。 制作图形画面并定义动画连接按照实际工程得要求绘制监控画面并 使静态画面随着过程控制对象产生动态效果。 4.编写命令语言通过脚本程序得编写以完成较复杂得操作上位控制。 进行运行系统得配置对运行系统、报警、历史数据记录、网络、用户 等进行设置,就是系统完成用于现场前得必备工作。 6.保存工程并运行完成以上步骤后,一个可以拿到现场运行得工程就制 作完成了。 接下来我将建立一个反应车间得监控中心。监控中心从现场采集生产数据,以动画形式直观得显示在监控画面上。监控画面还将显示实时趋势与报警信息,并提供历史数据查询得功能,完成数据统计得报表。将实时数据保存到关系数据库中,并进行数据库得查询等。 二、建立一个新工程 一) 建立一个新工程 点击“开始”---〉“程序”---〉“组态王 6、5”---〉“组态王6、5”(或直接双桌面上组态王得快捷方式),启动后得工程管理窗口如图2-1 所示: 图2-1 图2-2 新建:单击此快捷键,弹出新建工程对话框建立组态王工程。点击工程管 理器上得“新建”,弹出“新建工程向导之一”,接下来一直按下一步直到点 击完成后会出现“就是否将新建得工程设为组态王当前工程”得提示,选择 “就是”即可新建一工程如图2-2: 二) 工程浏览器

组态王符号的含义

组态王符号的含义 if(表达式)∶ C语言的条件判别语句。 表达式为真则执行随后在{ }中的语句(无{ }则只执行if后面的一句)。表达式为假,则执行else后面的语句。 if 语句有两种结构: 1. if ( condition )一条语句/复合语句 2. if ( condition ) 一条语句/复合语句else 一条语句/复合语句 else∶else和if是成对出现的,有else出现,必定有if语句,但有if语句可以没有else语句 ( )∶ C语言的分隔符——用于形成表达式、隔离条件表达式,以及指明函数调用和函数参数。 { }∶ C语言的分隔符——用于指明复合语句(分程序)的开始和及结束。 +、-、*、/∶ C语言的运算符——加、减、乘、除。 ;∶ C 语言的分隔符——终止一条语句。 = ∶C语言的①运算符——赋值。②分隔符——用于分隔变量说明和初始化表。 <∶ C语言的运算符——小于。 <=∶ C语言的运算符——小于等于。 > ∶C语言的运算符——大于。 >=∶C语言的运算符——大于等于。 ==∶ C语言的运算符——等于。

!=∶ C语言的运算符——不等于。 &&∶ C语言的运算符——逻辑与。 ||∶C语言的运算符——逻辑或。 “∶ %∶ C语言的运算符——模除(取整除后的余数)。 ^ ∶C 语言的运算符——按位异或。 | ∶C语言的运算符——按位或。 & ∶ C语言的运算符——①取变量地址。②按位与。 ,∶C语言中①逗号运算符。②分隔符,用于分隔函数参数表中的各参数。 while(表达式)∶ C语言的循环语句。若表达式为真,执行随后{ }内的语句(或do后{ }内的语句)。 其它符号 ->∶ C语言的运算符——指向结构(C++ 语言中的类)成员的指针引用。 <<∶ C语言的运算符——字位左移。 >>∶C语言的运算符——字位右移。 ++∶ C语言的运算符——增一。 -- ∶C语言的运算符——减一。

组态王的n个经典问题解答共16页

组态王的n个经典问题解答组态王的n个经典问题解答 1、变量设定中最大(小)值及最大(小)原始值的意义? 最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小, 而最大(小)原始值是采集设备中[寄存器]数字量的最大(小)值(如板卡中的 819-4095等)。一般对于板卡设备此值为物理量经AD转换之后的值,如 12BitAD此值范围0~4096、16BitAD为0~65535,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的. 2:组态完成后发现工程特别大,怎样把工程文件变小? 可以删除*.AL2(报警信息文件),*.REC(历史记录文件),*.111文件(*.pic文件的备份文件)的文件。 3:在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思? 保存参数:在系统运行时,修改变量的域的值(可读可写型),系统自动 保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变 量的域的参数值为上次系统运行时最后一次的设置值。无需用户再去重新定义。 保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。 当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一 次变化的值。 4:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win98系统)? 编辑Win98系统下的System.ini文件,将shell=explorer.exe改为: path=c:\ProgramFiles\Kingview\ shell=To hvew.exe即可 5:组态王里画面属性中覆盖式与替换式有何区别? 覆盖式画面出现时,它重叠在当前画面之上,其他打开的画面还在运 行,关闭后被覆盖的画面又可见。替换式画面出现时,所有与之相交的画面自 动从屏幕和内存中删除,不再运行。 6:如何利用多个摄像头在组态王上显示多幅画面?

组态王KingView6.52操作说明

组态王KingView6.52与S7-200系列PLC联机操作说明一、组态王在PLC控制系统中的作用 在PLC控制系统中,使用组态王软件主要是用它来构造(设计)一个虚拟的(假的)系统,且该虚拟的系统能反映实际的PLC控制系统的工作情况,以便在监控室通过组态软件也可实现对系统的远程控制,同时也可实时监控系统的运行状况,从而能及时发现并排除故障。 二、用组态王构造一个虚拟的控制系统的必备条件 由于组态王所构造的虚拟系统能反映实际的PLC控制系统的工作情况,故该虚拟系统必须具备四个基本条件:(1)模拟PLC的虚拟的PLC,即I/O设备;(2)用以描述工业现场及工控设备(如三机异步电动机启停控制系统中的电动机,照明监控系统中的灯)的图形;(3)反映工控对象各种属性(如:三机异步电动机启停控制系统中的电动机运转与停止的运行状态,启动按钮的开与关的状态;照明监控系统中的灯的亮与灭的状态)的数据,亦即变量;(4)模拟现场设备运行(如:电动机的运转与停止的动作过程,按钮的开与关的动作过程,灯的亮与灭的动作过程)动画,即图形应如何与数据连接,亦即动画连接。 三、组态王实现的DDC远程监控系统 1、控制要求 控制一盏灯的亮与灭:系统有两个按钮,分别用以控制一盏灯的亮与灭,该系统有两种控制方法:1)通过现场的实际按钮控制;2)通过组态王构造的虚拟系统的虚拟按钮控制。 2、参考《楼宇智能化实训指导》P101把按钮、灯等硬件通过接触器、继电器等接至DDC

假设该系统的DDC I/O分配表如下表所示: 3、用组态王KingView6.52构造一个虚拟的DDC监控系统(1)新建组态王工程,开始->程序->“组态王”,如图1所示。 图1 打开组态王软件打开后,看到如图2所示界面,点击“新建”。

组态王报表演示说明

报表演示说明 1、本演示分为日报、月报、年报 2、日报的生成: 对于日报可以每小时输入一个数据,然后进行统计后每天生成一个报表 日报生成的命令语言见事件命令语言的条件为:$分==0 && $秒==0,消失时注意: a、报表函数命令执行时报表控件所在的画面必须打开,因此对于画面不多的情况下可以在工程运行时将后台处理画面打开并隐含起来,同时所有其它的画面属性都应为覆盖式。如果画面较多无法全部将画面属性设为覆盖式则可以在报表命令语言执行前执行打开画面的命令 b、在新的一天开始时需要使用新的报表文件,因此需要在调用前需要判断当天的报表文件是否已经创建,如果没有创建则需要进行创建 c、对于日报的统计主要针对每天持续运行的情况,对于不能保证持续运行的现场可以参照月报的统计方式 b、报表的查询在日报查询页,可以对报表文件进行读取、删除等操作{string FileName1=InfoAppDir()+"日报\"+ StrFromReal( \\本站点\$年, 0, "f" )+"y"+StrFromReal(\\本站点\$月, 0, "f" )+"m"+StrFromReal(\\本站点\$日, 0, "f" )+".rtl"; //自定义变量 long return01=InfoFile( Filename1, 1, \\本站点\$分 ); //判断日报目录下是否已经有当天的报表文件了 if (return01==0) { string FileName=InfoAppDir()+"报表\日报.rtl"; ReportLoad("Report5",FileName); FileName=InfoAppDir()+"日报\"+StrFromReal( \\本站点\$年, 0, "f" )+"y"+StrFromReal( $月, 0, "f" )+"m"+StrFromReal( $日, 0, "f" )+".rtl"; ReportSaveAs("Report5",FileName); } //如果没有报表文件则从报表目录下调取模板创建报表文件 ReportLoad("Report5",FileName1); ReportSetCellString("report5", 3,10, \\本站点\$日期); long hang=\\本站点\$时+6; string timestr=time(\\本站点\$时,0,0); ReportSetCellString("report5", hang,1, timestr); ReportSetCellValue("report5", hang,2,\\本站点\颗粒物); ReportSetCellValue("report5", hang,3,\\本站点\颗粒物折算); ReportSetCellValue("report5", hang,4, \\本站点\SO2); ReportSetCellValue("report5", hang,5, \\本站点\SO2折算);

相关主题
文本预览
相关文档 最新文档