组态王重要功能简单使用介绍
一、图库
1、图形建立动画连接并合成图素的方式创建的图库精灵,在画面中引用后,其属性界面中动画连接属性的变量改变后,可以任意移动它的位置,但不能再调整其大小,否则动画连接属性的变量会变回到原先的变量。为避免误操作,可以把图库精灵转换成普通图素后再定义属性变量。
2、一般情况下,含有图库精灵的画面会有许多操作上的限制。如,为了在画图过程中把常用的图块创建为图库精灵,但图块中的图素要求不能包含引用到的图库精灵。所以在画图过程中引用到的图库精灵应首先转化成普通图素。转化成普通图素后,还可以个性化定义动画,而图库精灵定义动画比较死板。
二、动画制作
1、组态王软件对稍微复杂的动画,如旋转轮、搅拌叶片模拟动作等没有现成的图库引用,都必须自己设计,无论采用图素基本旋转功能还是图素显示与隐藏方式实现视觉上的动画效果,绝大多数情况下都必须使用到内存变量。一般一个动画使用到一个内存变量。当软件点数较少,变量使用较紧张时,就不能为了动画效果而定义大量的内存变量。动画的实现一般要求有重复计数功能的表达式支持,这就要定义专用的内存整型变量(为了使动画更流畅,可以定义内存实型变量,以小于1的阶梯变化),通过命令语言
控件的使用来实现重复计数功能。为了减少变量的使用数,就应对整个组态系统的动画效果进行大的归类,如旋转、移动、闪烁、缩放等,每一类定义一个或多个(尽量少)的内存实型变量。使用方法为:1、在应用程序命令语言中写出变量重复计数的程序,在某一窗口只要引用此变量来实现动画即可;
2、在每个需要动画效果的窗口的画面命令语言中写出变量重复计数的程序。方法1优点是每个变量只要书写一次计数程序,缺点是整个监控系统的同类型的动画效果相同,制作也不灵活。方法2的优点是每个窗口中变量计数的变化量可以不一样,这样使得制作动画更方便灵活,每个窗口动画效果可根据需要灵活实现,缺点是同一个变量要多次书写计数程序。另外必须注意的是:如果同时多个窗口都要实现同类型的动画效果,也就是同一个变量在多个窗口使用。则必须在每个画面命令语言中(显示时)使用关闭画面函数来关闭其它相关窗口,目的为:方法1,避免计算机内存工作量大。方法2,避免变量在不同窗口有不同计数变化量时,产生计数冲突,影响动画效果。
三、命令语言
在监控设计时经常用到的一些命令语言函数。
1、命令语言的句法如控件函数、数学函数等,都可通过"命令语言编辑器"编辑输入。
2、条件语句可以嵌套使用。
3、 HTConverTime(yeat,month,day,hour,minute,second)此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是1969年12月31日24时0分0秒。StrFromTime(SecsSince1_1_70, StringType),此函数将一个时间值(1970年1月1日起,以秒为单位)转换成字符串。例子:显示2005年6月15日第前27天的时间格式。命令语言为:
实型变量A= HTConverTime(2005,6,15,0,0,0);
实型变量A=实型变量A-27*24*3600;
字符型变量A= StrFromTime(实型变量A,1);
结果:字符型变量A=2005-5-19
4、 StrMid(Text,StartChar,Chars)此函数从指定的位置开始,从一个文字变量中返回指定个数的字符;StrRight(Text,Chars)此函数返回指定文字变量的最末端(或最右)若干个字符;StrLeft(Text,Chars)此函数返回指定文字变量的开始(或最左的)若干个字符;StrReplace( Text,SearchFor, ReplaceWith, CaseSens, NumToReplace, MatchWholeWords)此函数替换或改变所提供字符串的指定部分。使用此函数能获取字符串变量并替换字符、单词或短语;StrToInt (Text)此函数将一个由数字组成的字符串转换成一个能用作数学计算的整数值。
利用以上函数可以把某变量灵活转换成各种形式,如把字符串形式的时间格式转换成其他形式的时间格式(如2005/06/19)。
四、通用控件使用
监控系统经常使用到的外部控件有:
1、复选框控件:在历史曲线查询时使用到。在控件的click()事件中编写变量历史曲线查询语句。可能使用到.Enabled、.Valu、.Caption等属性。
2、控件microsoft date and time picker control 6.0 (sp4):简单方便的日期输入控件,主要在需要用到时间参数的历史数据查询时应用。经常用到的属性有.day、 .month 、.year等。
3、控件KVDBGrid Class:数据库查询控件。经常使用的属性有.Rows(查询到记录总数)、.Row (记录中指针位置),方法“.Print()”为查询结果打印语句。
4、超级文本显示框控件:将扩展名为.rtf或.txt文件调入到超级文本显示框中,使用组态王控件函数LoadText( )实现调入。要在写字板中编辑RTF或TXT格式文件。主要在制作帮助说明窗口时用到,如果要更改帮助说明文件的内容时,只要在RTF或TXT格式文件中修改就行。
5、报表窗口控件:其操作对象为在变量属性对话框的记录与安全区属性卡片中有记录设定的变量。使用到的控件函数有ReportSetHistData2()(系统会自动弹出报表历史查询对话框)、ReportPrintSetup()(报表打印预览)、ReportPrint2()(打印报表)。
五、实时报警提示制作
1、实时报警和历史报警控件都占用一个变量点数。
2、对于需要报警属性定义的变量,为了在监视系统运行过程中具有实时报警提示功能,可利用系统内部变量 ($新报警)和实时报警控件相结合设计。
①、由于当有报警属性定义的变量产生报警时,$新报警变量会自动附值为1,利用这功能,在事件命令语言窗口中设计程序:条件产生时,打开报警窗口。$新报警变量需要人为用程序复位。
②、在报警窗口中引用实时报警控件。实时报警控件的属性配置中的列属的项目可选定事件类型、报警时间、变量描述、报警类型、界限值等,使得报警提示信息简洁、清晰。
3、为了与上点配合,对于需要报警属性定义的变量,其变量描述栏中的描述语句应该体现报警时的报警内容,报警文本体现报警原因。对于不要求报警属性定义的变量,不需要在变量描述栏中编辑。
六、SQL数据库访问
报警事件通过工程浏览器中报警配置属性页中数据库配置功能存储到数据库可以方便准确地查询到历史报警信息,而模拟变量在属性对话框的记录与安全区属性卡片中设定定时记录参数则很方便历史数据的查询。离散变量报警存储一般不采用在属性对话框的记录和安全区属性卡片中设定,这样以报表方式查询模拟变量历史数据时,报表查询对话框中的变量属性一栏中只显示在记录与安全区属性卡片有记录定义的变量。
记录报警事件到数据库与查询:
1、数据库配置中报警格式配置所选定的项必须在数据库的报警表中有相应的字段与它一一对应,否则组态王不会存储其它所有的报警内容。而报警表可以有字段不包含报警格式配置中所选的项。表中各字段以文本形式储存。
2、数据库中报警表的字段名称,大小写要按组态王规定格式设计。报警格式配置所选的项的顺序与报警表相应字段的顺序可以不一致。
3、组态王的数据库配置和数据库报警表都设计好后,当软件运行时出现报警,则系统自动把报警内容按设定的格式存入数据库中。
注意:数据库配置中数据源设计步骤为:①打开计算机的控制面板中的管理工具文件夹。②双击数据
源ODBC,在管理器的用户DSN或系统DSC中点击添加按钮,选择与自己所选的数据库相应的驱动程序。按“完成”按钮。③在出现的对话框中写上自己定义的数据源名称。并选择与组态王通信的数据库,按“确认”钮。④到此,ODBC数据源设计完成,定义的数据源名称会出现在管理器中。
4、组态王从数据库中查询历史报警数据,可以通过控件KVDBGrid Class,此控件与数据库的通信能比较方便设计。在插入通用控件的对话框中选择KVDBGrid Class控件。窗口中放置好控件后,打开控件属性对话框。在数据源对话框中选择第3点中设定好的数据源名称,再依次选好表名、
需要在KVDBGrid Class中显示的字段、条件查询语句等。还可以在其他属性卡片中设计字体、打印设置、表格格式等。
5、上述第4点只是确定组态王与数据库的连接信息。在程序运行中还需要调用控件方法函数来实现数据查询。显示函数:控件名.FetchData();刷新函数:控件名.RefreshData(),每次调用显示函数后应调用结束函数:控件名.FetchEnd()。打印函数为:控件名.Print()。
6、 KVDBGrid Class控件属性语句,如条件属性语句写法为:控件名.where=“***“,其中字符串只加单引号,这与如Microsoft Access数据库字符串加单引号或双引号都可以不同。
使用SQL访问管理器存储数据:
对于温度的历史数据存储,除了在记录与安全区属性卡片中设定数据记录参数,系统自动按设定进行数据存储外,也可以通过运行命令语言即SQL函数来进行数据存储。方法:
1、首先在控制面板中建立一个ODBC数据源,组态王是通过ODBC数据源与数据库连接的。
2、在SQL访问管理器中建立记录体。目的是通过记录体使数据库表中字段与组态王变量对应起来。所以记录体中字段名称必须与数据库表的字段名称一致,并且记录体中字段顺序也必须与数据库表的字段顺序一致。
3、 1、2点完成后使用指令SQLConnect( DeviceID, "dsn=mine;uid=sa;pwd=")建立和数据库中表格连接,其中DeviceID是用户创建的内存整形变量,用来保存SQLConnec()函数为每个数据库连接分配的一个数值,dsn为ODBC数据源名称,uid为用户名,pwd为密码。每运行一次SQLInsert( DeviceID, "TableName", "BindList" )就在数据库中存储一组新数据,其中TableName为数据库中表名,BindList为记录体名。而SQLDisconnect( DeviceID)指令是执行断开与数据库的连接。
SQL函数执行情况如下:系统运行时只要执行一次SQLConnect( )后就建立了与数据库的连接,此时DeviceID 值不会自动加1,然后定时反复执行SQLInsert( )函数,数据就不断地存储到数据库中。如果在SQLDisconnect执行之前,重复执行SQLConnect将会增加DeviceID,DeviceID超过软件规定值后,可能某些查询数据库的指令无法执行,这时只能重新运行系统。执行SQLDisconnect后,SQLIns
ert( )指令就处于无效状态,只有执行SQLDisconnect后第一次执行SQLConnect( )指令,DeviceID不会增加。在数据库使用完之后,使用SQLDisconnect函数断开和数据库的连接。
4、使用SQLDelete( DeviceID, "TableName", "WhereExpr")指令对数据库中满足要求的过时记录进行自动删除(比如在系统运行或退出时进行一次删除操作),其中WhereExpr为条件语句,书写格式与SQL语言一致。
5、SQL访问管理器中建立表格摸板,通过SQLCreateTable( DeviceID,"TableName","TemplateName" )
指令,可以在数据库中按摸板参数建立新表,其中TableName为新表名称,TemplateName为摸板名称。
6、使用SQL访问管理器存储数据,对于简单的历史数据存储、数据库操作操作,一般使用SQL 函数SQLCreateTable( )、SQLConnect( )、SQLInsert( )、SQLDisconnect()、SQLDelete( )等就可以满足需要。
七、历史趋势曲线查询
1、历史趋势曲线控件占用一个变量点数。其操作对象为在变量属性对话框的记录与安全区属性卡片中
有记录设定的变量。直接引用图库中历史曲线控件,可以省去许多操作的设定与制作。
2、在一个历史趋势曲线控件中最多同时显示8笔变量曲线,可以通过HTSetPenName( HistoryName , PenNum, “TagNameString” )指令调用各变量的历史曲线,其中HistoryName为控件名,PenNum为第几笔曲线,TagNameString为变量名。可以通过HTSetPenName( HistoryName , PenNum, “” )指令删除某笔曲线查询。
3、在文本控件模拟值输出的表达式属性栏中输入GetValueAtScooter( HistoryName, scootNum, PenNum, ContentString) 函数,文本将显示一个样本在指定的指示器位置、趋势和笔号所要求的类型的的值。其中HistoryName历史趋势曲线控件名, scootNum代表左或右指示器的整数,PenNum代表笔号的整型变量或值,ContentString代表返回值类型的字符串。
4、由于历史趋势曲线控件中最多只能同时显示8笔变量曲线,对多于8笔的曲线要在同一个历史趋势曲线控件显示,只能用同一笔号曲线轮流表示多个变量曲线。查询时,当某变量A用某一笔号曲线表示时,应同时执行指令使得其他相关变量不能执行HTSetPenName( )命令,避免混乱。使用复选框控件能很好地设计这些操作。一个复选框控件代表一个变量曲线,有多少个变量就使用多少个复选框控件。当点击某个复选框执行HTSetPenName( )命令时,历史趋势曲线控件中某笔号曲线被占用了,此时与此笔号相关的复选框被执行为无效状态。
八、系统安全管理
1、监控系统一般设置三类用户就可满足需要。组态王软件已经设置好其中两类用户(“系统管理员”和“无”),用户名不可更改,但密码可以修改。①、系统管理员:优先级设为大于900,选取所有安全区,设定较长的登录超时时间。权力:有权进行用户和安全区设置,即可以任意添加或删除其他用户,同时可以对画面的任何对象进行任何操作。②、无:优先级设为0,不选任何安全区,登录超时时间设为0。权力;只能对没有任何权限和安全区设置的对象进行操作。③系统管理员分配的用户:设定适当的优先级、安全区、登录超时时间。权力:对某些特定的操作对象进行操作,如,设备操作、参数设定等,不能对用户和安全区进行设置。
2、任何用户都可对自己的密码进行修改。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论