杰控第26章数据库报表
杰控组态手册25.数据库操作
25.数据库操作序号 内容 页码25.1 数据查询 25-0125.2 曲线查询 25-0425.3 表格显示 25-0525.4 字段列表 25-0725.5 删除数据表内容 25-0825.6 数据库脚本编程 25-0925.7 存储过程脚本编程 25-1025.8 数据库记录平均统计 25-1025.9 把数据库记录导出到Excel中 25-1125.10 使用ADO访问数据库 25-1325.1数据查询提供了通过表格查看数据库内容的方法,用“数据查询”组件实现:增加一个组件对象,在设置对话框中添入数据库的有关信息,如下图所示:执行<ODBC数据源>按钮,通过出现的对话框来选择数据源(如FameView Userdata Source):执行<记录表>按钮,出现下面的对话框,其中列出数据源中所有数据表,从中选择要查询的记录集(如demo):此组件主要根据时间字段进行查询,执行<时间字段>按钮,出现下面的对话框,其中列出记录集中所有的字段,从中选择要使用的时间字段(如F3):如果希望把查询的结果进行打印或浏览,要先根据数据库利用Crystal水晶星建立报表格式,然后执行<报表格式>按钮,选择报表格式文件(*.rpt);用鼠标双击字段列表,会出现选择字段对话框,从中选择需要查询后显示的字段,此时不需要再选择时间字段;能自动的识别字段的类型,但要正确设定字段内容的字符长度;1个数据表中的字段数量要小于100;在查询显示表中,可能不希望直接显示字段的名称,请修改字段描述即可;用“Del”键可以从列表删除选错的字段;画面运行后,执行按钮查询,界面如下:如果不希望执行组件按钮来查询数据,而希望通过其他事件来执行,按照下列步骤来实现:(1)给按钮组件命名:选中组件,点击右键,弹出菜单,选择执行“对象属性”中的“脚本名称”,给对象命名,例如BTNOBJ;(2)隐藏按钮组件:选中组件,点击右键,弹出菜单,选择执行“隐藏对象”,使组件在运行画面显示时不可见:(3)编写脚本,然后被其他事件触发,例如在图标按钮中选择脚本执行,脚本内容如下:UserDbSQLObj.ShowWindow "BTNOBJ"25.2 曲线查询组态系统提供了通过曲线查看数据库内容的方法,用“曲线查询”组件实现:假设要查询的数据表的内容为;F1(罐号)F2(液位) F3(时间)1 10 2006-5-5 1:00:002 10 2006-5-5 1:00:001 100 2006-5-5 2:00:002 200 2006-5-5 2:00:001 110 2006-5-5 3:00:002 220 2006-5-5 3:00:00… … …增加一个组件对象,在设置对话框中添入数据库的有关信息,如下图所示:通过<数据源>按钮弹出对话框,选择ODBC数据源,如fameView userdata Source;通过<记录表>按钮弹出对话框,选择要查询的数据表,如demo;通过<时间字段>按钮弹出对话框,选择进行查询所依据的时间字段,如f3;通过<查询字段>按钮弹出对话框,选择进行分组查询所依据的字段;在<查询对象>中输入分组的方式,例如f1=1表示1#罐, f1=2表示2#罐;通过<曲线字段>按钮弹出对话框,选择并加入到曲线字段表中;画面运行后,执行按钮查询,界面如下:如果不希望执行组件按钮来查询数据,而希望通过其他事件来执行,按照下列步骤来实现:(1)给按钮组件命名:选中组件,点击右键,弹出菜单,选择执行“对象属性”中的“脚本名称”,给对象命名,例如BTNOBJ;(2)隐藏按钮组件:选中组件,点击右键,弹出菜单,选择执行“隐藏对象”,使组件在运行画面显示时不可见:(3)编写脚本,然后被其他事件触发,例如在图标按钮中选择脚本执行,脚本内容如下:SQLCurveObj.ShowWindow "BTNOBJ"25.3 表格显示组态系统提供了在线显示数据库内容的方法,通过“表格显示”组件实现:此组件可以在画面上以列表的方式直接显示某个数据库的内容,还可以与变量相关联;组态对话框如下:为组件命名,否则不能进行脚本操作,如“DBLIST”;执行<数据源>按钮,通过出现的对话框来选择数据库对应的数据源;执行<数据表>按钮,选择要显示的数据表,数据表中的字段数量要小于100:如果希望在列表中只显示数据表中的某部分数据,请<过滤条件>处填写缺省SQL语句,如F1>100;否则显示数据库中的所有记录;用鼠标双击字段列表,会出现选择字段对话框,从中选择需要查询后显示的字段,能自动的识别字段的类型,但要正确设定字段内容的字符长度;在查询显示表中,可能不希望直接显示字段的名称,请修改字段描述即可;用“Del”键可以从列表删除选错的字段;还提供了3组变量:增加变量、读取变量、修改变量;使系统变量(AI/AO/AR/DI/DO/DR/VA/VD /VT)与数据库之间建立联系;画面运行后,数据库列表界面如下:允许编写脚本操作数据库:要把增加变量组追加至数据库,请使用如下脚本:UserDbListObj.AddNewFromVarValue "DBLIST"要从数据库中读取第10个记录至读取变量组,请使用如下脚本:UserDbListObj.SetVarValueFromField "DBLIST",10要通过修改变量组修改数据库中的第10个记录,请使用如下脚本:UserDbListObj.EditFromVarValue "DBLIST",1025.4字段列表组态系统提供了在线选择数据库中某字段内容的方法,通过“字段列表”组件实现:此组件有以下功能:以选择框的方式供用户进行数据选择;选择框内容可以数据库中的某个字段的内容也可以显示手动输入的文本内容;选择的内容能够与变量关联;组态对话框如下:缺省列表,允许在其中手动输入多行文本(用回车换行),作为缺省的列表内容;关联数据库,设定数据源、数据表、使用字段、过滤条件,能够在画面运行时,把数据库某表中的某字段的部分记录显示添入到选择框中;过滤条件的格式为SQL查询语句,例如f3>1000;对应变量,在画面运行后,当使用选择框选择数据时,能够把所选择的内容对应到变量中:(1)索引变量可以是AO/AR/VA变量,对应的是选择框中当前文本的索引号,以0为基数;(2)数值变量可以是AO/AR/VA变量,对应的是把选择框中当前文本转换为浮点数后的数值;(3)文本变量可以是VT变量, 对应的是选择框中的当前文本;字段列表运行时的界面如下:允许用脚本更新选择框中的内容:更新数据选择框的内容DataboxObj.Update ObjName,OdbcName,TableName,FieldName,FieldType,Filter例:DataboxObj.Update "AAA","myODBC","myTable","myField",3,"f1>1000"得到当前数据选择框的文本内容n=DataboxObj.GetCurText(ObjName)例:n=DataboxObj.GetCurText("AAA")25.5 删除数据库内容某个数据库中存储了大量的数据,经过一段时间后,想把某个时间之前的数据删除;本节以例子的方式说明如何通过组态系统删除数据库中的某些数据;假设现有数据库,其ODBC数据源的名称为db1,其中有一个数据表名为T1,其中有一个日期时间字段为F4,根据F4来删除数据;增加2个文本变量(VT):VT1、VT2;在画面中各增加一个日期拾取器和时间拾取器,分别把内容保存在VT1和VT2中;再在画面中增加一个按钮,当执行按钮时,执行脚本来删除选择时间以前的数据;画面的界面如下:如果数据库的类型为Access,则脚本内容如下:'打开DB1,允许通过SQL访问SQLObj.OpenSQLConnect "DB1","",""'得到删除日期、时间s1=RunSys.GetVTtext("VT1",-1)s2=RunSys.GetVTtext("VT2",-1)'组成格式文本"Delete * From T1 Where F1<= #2002-1-1 0:0:0# "s="Delete * From T1 Where F4<= #" : s=s+s1 : s=s+" " : s=s+s2 : s=s+"#"'执行SQL语句,删除数据SQLObj.SQLExecute s'关闭DB1SQLObj.CloseSQLConnect如果数据库的类型为SQL Server,则脚本内容如下:'打开DB1,允许通过SQL访问SQLObj.OpenSQLConnect "DB1","",""'得到删除日期、时间s1=RunSys.GetVTtext("VT1",-1)s2=RunSys.GetVTtext("VT2",-1)'组成格式文本"Delete * From T1 Where F1<= ‘2002-1-1 0:0:0# ’s="Delete * From T1 Where F4<= ‘" : s=s+s1 : s=s+" " : s=s+s2 : s=s+"’"'执行SQL语句,删除数据SQLObj.SQLExecute sSQLObj.CloseSQLConnect往记录集中加入记录;UserDB.OpenConnect "My Database","",""UserDB.OpenRecordset "t1",2,2,2UserDB.AddNewUserDB.SetFieldValue "f1",7, "AAA"UserDB.SetFieldValue "f2",1,1000UserDB.UpdateUserDB.CloseRecordsetUserDB.CloseConnect得到数据库中字段的值;UserDB.OpenConnect "My Database","",""UserDB.OpenRecordset "t1",2,2,2UserDB.MoveFirstUserDB.Move(10)Value=UserDB.GetFieldValue "f2",1,1000UserDB.CloseRecordsetUserDB.CloseConnect执行SQL语句:SQLObj.OpenSQLConnect "TestDB","",""SQLObj.SQLExecute "DELETE FROM demo"SQLObj.CloseSQLConnect数据查询UserDB.OpenConnect "FameView UserData Source","",""UserDB.SetFilter "f1>=1000"UserDB.OpenRecordset "demo",2,2,2If UserDB.IsEmpty()=0 ThenretValue=UserDB.GetFieldValue("f2",4)End IfUserDB.CloseRecordsetUserDB.CloseConnect通过脚本编程可以执行数据库服务器端的存储过程;假设存储过程内容如下:CREATE PROCEDURE [test](@f1 [real], @f2 [real], @f3 [datetime], @f4 [real] output) AS INSERT INTO [UserDatabase].[dbo].[demo] ( [f1],[f2],[f3])VALUES ( @f1,@f2,@f3)if @@error=0set @f4=12.11elseset @f4=0.12GO过程调用如下:n=StoredProc.OpenConnect("FameView UserData Source","","")If n=1 ThenStoredProc.SetCommandText "test"StoredProc.SetInputParamCount 3StoredProc.SetInputParam 1,"f1",4,1.23StoredProc.SetInputParam 2,"f2",4,2.34StoredProc.SetInputParam 3,"f3",7,"2005-12-11 05:00:00"StoredProc.SetOutputParamCount 1StoredProc.SetOutputParam 1,"f4",4StoredProc.Executem=StoredProc.GetOutputValue(1)RunSys.SetVarValue VA,"%VA1",-1,mStoredProc.CloseConnectEnd If25.8 数据库记录平均统计把某个表中某天的数据求平均,存入另一个表中假设t1和t2有相同的结构,分别有3个字段:字段名称 类型F1 RealF2 RealF3 Datetime针对t1中近30天的数据,把每天的数据求平均,存入t2中,并删除t1中的数据;在SQL Server中编写存储过程test如下:CREATE PROCEDURE [test]asDeclare @n intDeclare @ct datetimeset @n=-30while @n<0beginset @ct=DATEADD(DAY,@n, GETDATE())INSERT INTO t1SELECT AVG(f1) AS f11, AVG(f2) AS F12, @ct AS F13FROM demoWHERE (YEAR(f3) = YEAR(@ct) AND (Month(f3) = MONTH(@ct) AND (Day(f3) = DAY(@ct)set @n=@n+1enddelete from demoGO在组态软件中调用过程的脚本如下:n=StoredProc.OpenConnect("FameView UserData Source","","")If n=1 ThenStoredProc.SetCommandText "test"StoredProc.ExecuteStoredProc.CloseConnectEnd If25.9 把数据库数据导出到Excel中'允许输入查询的年/月MyYear = InputBox("请输入查询年份","")MyMonth = InputBox("请输入查询月份","")MyDay = 1'检查时间是否合法If IsDate(MyMonth & "/" & MyDay & "/" & MyYear) = True ThenNOW_DATE = MyYear + "年" + MyMonth + "月"'得到开始时间StartTime = MyMonth & "/" & MyDay & "/" & MyYear & " 00:00:00"'得到结束时间If MyMonth < 12 ThenMyMonth = MyMonth + 1EndTime = MyMonth & "/" & MyDay & "/" & MyYear & " 00:00:00"ElseMyYear = MyYear + 1MyMonth = 1EndTime = MyMonth & "/" & MyDay & "/" & MyYear & " 00:00:00"End If'打开数据库及数据表demo,dt为时间字段UserDB.OpenConnect "FameView UserData Source","",""UserDB.SetFilter "dt>='"+StartTime+"' And dt<'"+EndTime+"'"UserDB.OpenRecordset "demo",2,2,2 '打开记录集;'检查查询内容是否为空If UserDB.IsEmpty()=0 Then'打开Excel文件Set ExcelObj = CreateObject("Excel.Application")ExcelObj.Visible = TrueExcelFile = "C:\组态系统\ExcelFile\test.xls"Intyexcel.Workbooks.Open ExcelFileExcelObj.Sheets("Sheet1").SelectExcelObj.Worksheets(1).SelectExcelObj.Cells(1,3) = NOW_DATE'导出记录到Excel中row=2While UserDB.IsEOF()=0ExcelObj.Cells(row,1).Value=UserDB.GetFieldValue("dt",8)ExcelObj.Cells(row,2).Value=UserDB.GetFieldValue("f1",4)ExcelObj.Cells(row,3).Value=UserDB.GetFieldValue("f2",4)row=row+1UserDB.MoveNextWendExcelObj.ActiveWorkbook.SaveAs "C:\组态系统\ExcelFile\"&NOW_DATE&".xls" ExcelObj.QuitSet ExcelObj=NothingEnd If'关闭数据库UserDB.CloseRecordsetUserDB.CloseConnectEnd If25.10 使用ADO访问数据库'与数据库(tempdb)建立连接Set conn = CreateObject("ADODB.Connection")strConn="Driver={SQL Server};Server=(local);Database=tempdb;Uid=sa;Pwd=;" conn.Open strConn'打开记录集(t1)Set rs= CreateObject("ADODB.Recordset")strSQL="SELECT * FROM t1"rs.Open strSQL,conn,2,2'添加记录rs.AddNewrs("f1")="222"rs("f2")=222rs.Update'得到记录f1=rs("f1")f2=rs("f2")'关闭连接与记录集rs.Closeconn.CloseSet rs=NothingSet conn=Nothing。
杰控组态手册26.数据库报表
26.数据库报表序号 描述 页码26.1 功能描述 26-0126.2 目标数据库 26-0126.3 启动报表设计器 26-0126.4 新建报表格式 26-0226.5 编辑报表格式 26-0426.6 保存报表格式 26-0726.7 组态报表打印按钮 26-0826.8 脚本控制报表打印按钮 26-1026.9 执行报表打印 26-1126.1功能描述通过数据库连接把实时数据经前期处理后,有效的存储到自定义数据库中;用户可以通过系统绑定开发的水晶星(Crystal)报表格式及控件,提供了完善的报表输出功能;水晶星(Crystal)报表的功能非常强大,基于数据库能制作出各种工业报表,本章也很难详细的描述其功能,只能以例子的方式讲述如何实现简单数据报表,起到抛砖引玉的作用;复杂的报表设计可与杰控公司的技术支持联系;26.2目标数据库本例使用的数据库内容如下表:数据库类型:Microsoft Access数据源名称:FameView UserData Source数据表名称:T1字段名称:产量1 产量2 存储时间字段类型:数字[单精度] 数字[单精度] 日期/时间26.3启动报表设计器选择<数据库连接>功能,执行<数据库报表格式文件>任务,来启动或管理报表文件;如下图:26.4新建报表格式报表设计器启动后,出现注册窗口,执行取消按钮,即执行<Cancel>;然后执行<File->New>菜单,出现下面的对话框:选择<Standard>标准报表,出现下面的对话框,选择数据库的来源:必须选择ODBC数据源,即执行<SQL/ODBC>按钮,出现下面对话框:选择数据源,如FameView UserData Source,然后执行<OK>按钮,出现下面对话框选择数据表:从SQL Table列表中选择数据表,如T1,然后执行<Add>按钮和<Done>按钮,然后出现下面的界面:执行“Next>>”按钮,出现下面的界面,选择报表中要使用的字段:从Database Fields列表中选择报表中要使用的字段,并通过<Add>按钮加入到<Report Fields>列表中,或通过<All>按钮加入所有字段;如下图所示:此时便可以用<Preview Report>按钮浏览并结束新建报表的制作,报表浏览把数据表中的全部内容给显示出来,如下图:26.5编辑报表格式此时的报表格式还很简单,需要加以编辑:点击<Design>进入设计模式,此时只显示一行数据,如果报表内容有10000行,也只用设计一行;报表格式中的每部分内容,通过某个对象来体现,通过修改对象的属性来改变报表格式;改变字体:选中某个对象,点击右键,从弹出菜单中选择<Change Font>修改字体;改变标题文本内容:选中某个标题对象,点击右键,从弹出菜单中选择<Edit Text Field>,可以修改文本的内容;给记录加上序号:执行菜单<Insert->Special Field->Record Number Field>命令,允许为记录行添加序号;加入公式字段:如果希望在报表中体现<产量1+产量2>的数值,但数据库中又不存在,您可以选用公式字段,执行菜单<Insert->Formula Field>命令,出现下面对话框:输入中间字段的名称,如“产量12”,执行<OK>按钮,出现下面对话框:在<Formula text>中输入计算脚本内容后,先用<Check>按钮检查脚本是否正确,再用<Accept>按钮把中间字段放入适当的位置;添加表格线:执行菜单<Insert->Line>命令可以为表格添加表格线;增加累加值:如果希望把产量1的所有查询数值进行累加,请选中产量1字段,点击右键,从出现的菜单中选择并执行<Insert Grand Total>命令,出现下面对话框,选择要计算的类型,如累加值、平均值、最大值、最小值..等:增加图片:为了给报表增添效果,通过下面方法为报表增加图片,执行菜单<Insert->Picture>命令,从弹出的对话框中选择需要的图片;增加新字段:在新建报表格式后,有时希望再往报表中添加新的数据库字段,执行菜单<Insert->Database Field>命令,从弹出的字段列表对话框中选择需要增添的字段;刷新数据库:在报表建立后,数据库的结构进行了修改,例如添加了新的字段,要想在报表中体现新的字段,执行菜单<database->Verify Database>命令;刷新报表内容:在制作报表时,数据库的记录内容发生变化,要想在浏览报表时进行刷新,执行菜单<Report->Refresh Report Data>命令;报表排序:如果报表记录希望根据某个字段进行排序,执行菜单<Report->Sort Report>命令,从弹出的字段列表选择字段进行排序;隐藏报表内容:整个报表由Title、Page Header、Details、Grand Total、Page Footer几部分组成,如果希望隐藏某部分内容,只需用鼠标右键点击某部分的前部的灰色部位,从弹出的菜单中,执行菜单命令<Hide Section>即可,如果想还原,再执行一次;设置时间格式:有时日期/时间字段内只显示日期,而不显示时间,请按以下步骤操作:执行菜单<File->Report Options>任务,出现下面的菜单,确信不要选中“ Convert Date-Time to Date”;设置浏览页的格式:为了在系统运行过程中,浏览报表时,浏览页的尺寸与窗口的尺寸匹配,请执行菜单<File->Report Options>任务,出现下面的菜单,选中“ Fit Page”;经编辑后报表的预览结果如下:26.6保存报表格式把编辑好的报表格式,建议存储到系统目录下的ReportFile目录下,例如:d:\组态系统\ReportFile\test.rpt在保存报表格式前,请打开菜单File,确信没有选择“Save Data with Report”,否则在打印/浏览报表时,报表的内容不会更新;26.7组态报表打印按钮打开画面制作程序,建立新画面,从组件箱中选择“报表打印”组件,如下图:组件的属性对话框如下:设置标题:通过<按钮标题>为按钮组件定义按钮显示文本;选择文件:执行<格式文件>按钮,弹出对话框,从中选择制作好的报表文件,如: Test.rpt提供班报表、日报表、周报表、月报表、季度报表、年度报表、自由报表、选择报表等8种类型; 如果选择了班报表,则可以从数据库中查询出某天的某个时间段内的数据进行报表输出,在表格中填写班次名称,并定义每班的时间范围(即开始时间-结束时间),每天最多可以分为24个班;一般情况下,开始时间均早于结束时间;但如果第1班的开始时间晚于结束时间,则默认为此班是从前一天的某时间到今天的某时间,例如:从今天的20:00至明天的6:00为一班,则开始时间为20:00,结束时间为6:00;另外,如果最后一班的结束时间早于开始时间,则默认为此班是从今天的某时间到明天的某时间;班报表的选择对话框界面如下:如果选择了日报表,从数据库中查询某一天的数据进行报表输出,日报表的选择对话框界面如下:如果选择了周报表,从数据库中查询某一周的数据进行报表输出,周报表的选择对话框界面如下:如果选择了月报表,从数据库中查询某一月的数据进行报表输出,月报表的选择对话框界面如下:如果选择了季度报表,则可以从数据库中查询出某一季度的数据进行报表输出,季度报表的选择对话框界面如下:如果选择了年度报表,则可以从数据库中查询出某一年内的数据进行报表输出,年度报表的选择对话框界面如下:如果选择了自由报表,则可以从数据库中查询出任意某一段时间内的数据进行报表输出,自由报表的选择对话框界面如下:如果选择了选择报表,则可以随意选择班报表、日报表、周报表、月报表、季度报表、年度报表、自由报表7种报表格式中的一种,进行报表输出,选择报表对话框界面如下:选择时间字段:一个数据库中必须存在一个日期/时间字段,否则报表控件不能正常工作;如果报表数据库类型为Microsoft Access,则此字段的类型为“日期/时间”;如果报表数据库类型为 SQL Server,则此字段的类型为“datetime”;为避免错误,通过<时间查询字段>按钮,弹出的数据源、数据表、字段表对话框,来选择时间字段;选择报表数据库的类型:为了保障报表的正确查询,必须正确选择报表数据库的类型,Microsoft Access或SQL Server,否则报表将不工作;预设查询条件:在报表浏览/打印时,如果只输出满足某些条件的内容,则可以通过设置查询条件来实现;查询条件可以在浏览/打印时设定,也可以在组态时预设好,在浏览/打印时再进行选择;允许最多预设100个查询条件;用鼠标双击查询表格中的某一行,出现下面的界面,在其中按照SQL语言格式输入查询语句:如果在报表数据库中使用确省了字段:DefaultText、DefaultValue,则在预设查询条件中不用输入字段名, DefaultText为文本字段,DefaultValue为数值字段;例如要想查询DefaultText等于“AAA”的记录,则只用输入“%AAA”即可;例如要想查询DefaultValue等于1000的记录,则只用输入“@=1000”即可;1幅画面中只能有1个报表打印按钮;26.8 脚本控制报表打印按钮可能不希望通过执行此按钮,而希望通过编写脚本来控制执行报表打印,按照下列步骤来实现: 为组态好的报表打印按钮控件命名:选中报表打印按钮控件,点击右键,弹出菜单,选择执行“对象属性->脚本名称”,弹出对话框给对象命名,例如“PRNBTN”;隐藏报表打印按钮:选中报表打印按钮控件,点击右键,弹出菜单,选择执行“对象属性->隐藏”,弹出对话框使组件在运行画面显示时不可见:数据库应用 26.数据库报表 .26-11. 35号画面脚本实现了报表打印按钮的控制:可以改变报表格式文件中的Formula 字段: UserReport.SetFormulaValue "AAAA","AA",11,900如果只是简单的显示报表打印按钮所提供的报表界面,编写的脚本如下: ReportBtnObj.ShowWindow “PRNBTN”如果想把报表打印按钮作为中间控件,利用它实现各种报表,例如要打印日报表,编写的脚本如下:ReportBtnObj .ActiveReport "PRNBTN","test.rpt",1,0,1,"存储时间"26.9执行报表打印以日报表来说明执行过程:在画面中执行报表打印任务后,首先出现下面的对话框:选择日期:通过日期选择器来选择要进行报表输出的日期,缺省为当前日期;过滤条件:希望以一定的条件输出报表,请选择“ 过滤条件”,弹出对话框,在其中输入或选择预设的过滤条件;浏览输出:选择<浏览>并执行<确定>按钮后,会出现下面的窗口,在内显示报表内容:打印输出:如果选择< 打印>并执行<确定>按钮后,会在打印机上直接输出报表内容;。
OracleEBS-报表开发工具之闲碎
function AfterPForm return boolean is
begin
if nvl(:p_batch_id_char,'A')='A' then –通过条件,来进行字符串拼接。
:p_batch_id_temp := 'and 1=1'
;
else
:p_batch_id_temp := 'and to_char(m.fee_batch_id) in ('|| :p_batch_id_char ||')' ;
resp_appl_id =>APPS.FND_GLOBAL.resp_appl_id
);
Author:JarWang (王重东)
QQ:jarwang@ 12
Copyright(R):Jarwang
return (TRUE); end;
Report数据域 Oracle Report引用数据模型的数据源,有二种方式。 1.较常规的做法。直接使用工具栏上的“域”标签,然后设置相应数据源 2.使用“文本”标签,然后用“&”进行引用。 3.在PL/SQL中引用报表域文本的值,只需在PL/SQL直接引用域对应源字段名称即可(无须加 组名)。 Report汇总项 Report的汇总项比较灵活,在不同的组其汇总规则是可以多变的。这也会隐藏一些不易发现的问 题。 比如,下面这个数据源分为三个组。
end if;
return (TRUE);
end;
在数据模型的SQL语句中加入刚才拼接的字符串。
Select * from table_name where &p_batch_id_temp
注:是用“&”,不是PL/SQL中的“||”。
皕杰报表部署指南--v3.5
皕杰商务智能平台报表产品v3.5(部署指南)北京杰汇智科技有限公司 皕目录第一章部署流程 (2)第二章 WEB应用配置 (3)2.1创建新应用 (3)2.2皕拷贝杰报表WEB发布包 (3)2.3修改相关配置文件 (4)2.3.1 web.xml (4)2.3.2 config.xml (4)2.4制作WAR包 (11)第三章各种应用服务器介绍 (12)3.1TOMCAT5.5的部署操作 (12)3.1.1配置数据库连接池 (12)3.1.2发布报表web应用 (13)3.2WEBSPHERE的部署操作 (14)3.2.1配置数据库连接池 (14)3.2.1.1配置变量 (14)3.2.1.2 配置JDBC提供程序 (16)3.2.1.3 配置数据源 (17)3.2.1.4 新建J2C认证别名 (20)3.2.2发布报表web应用 (21)3.3WEBLOGIC的部署操作 (24)3.3.1配置数据库连接池 (24)3.3.1.1 配置Connection Pools (25)3.3.1.2 配置Data Sources (27)3.3.2 发布报表web应用 (30)第四章常见部署问题 (31)4.1应用服务器的差异 (31)4.1.1jndi的前缀 (31)4.1.2jdk的版本 (31)4.1.3中文的支持 (31)4.2操作系统的差异 (32)4.2.1中文安装包 (32)4.2.2图形环境问题 (32)4.2.3中文字体差异问题 (34)4.3其它问题 (34)4.3.1字符集配置问题 (34)4.3.2sql转码问题 (35)第一章部署流程如果和已有应用集成,一般来说已有应用已经配置好了数据库连接池,因此第一、第二步骤可以省略,只需要后面几个步骤。
配置应用服务器的数据库连接池、发布报表应用这两个步骤在不同应用服务器中的操作界面和操作方法是有区别的,举例来说,发布报表应用这个步骤,在weblogic和websphere中一般是发布一个war包或者是ear包,而在tomcat中就是在server.xml中配置,不需要打war包,在tomcat5中则是打好war包直接拷贝到webapps目录下即可唯一不变的步骤是web应用配置,这部分包含四个步骤,在任何一个应用服务器中都是一样的。
杰控组态手册12.实时报表
12.实时报表序号 内容 页码12.1 示例描述 12-112.2 定制实时报表功能 12-112.3 启动实时报表任务 12-212.4 定义实时报表数据 12-212.5 制作实时报表格式 12-312.6 定义自动实时报表打印任务 12-612.7 通过系统功能(FB)执行实时报表 12-712.8 通过画面脚本执行实时报表 12-712.1例子描述有5个模拟输入变量(AI):AI1、AI2、AI3、AI4、AI5,把它们显示在实时报表格式中;每隔30分钟打印1次实时报表;通过画面中的按钮随时打印实时报表;12.2定制实时报表功能如果系统没有支持实时报表功能,需要执行“我的系统->设置->定制系统”任务,出现下面的对话框:选中“ 实时报表”功能;12.3启动实时报表任务为使系统支持实时报表,需启动实时报表任务;需启动“系统设置->启动任务”,出现下面对话框:从中选择“ 实时报表”;12.4 定义实时报表数据实时报表最多支持100个数值变量和10个文本变量;需要从运行数据库中选择要参与实时报表的变量;在组态管理器中,选择“实时报表”功能;执行“1.定义实时报表数据”任务,出现下面对话框:选择“ 数值001”, <对应变量>按钮被激活;执行<对应变量>按钮,从中选择“VA.%VA1”变量;再执行<设定>按钮,使<数值001>=VA.VA1;使用同样的方法使<数值002>=VA.%VA2、<数值003=VA.%VA3>、<数值004=VA.%VA4>;此时的对话框界面为:12.5制作实时报表格式定义了实时报表数据,需要建立报表格式进行输出;用水晶星(Crystal)报表通过以下步骤建立实时报表格式;选择“实时报表”功能,启动“制作实时报表格式(Crystal)”任务:报表设计器启动后,首先出现注册窗口,直接执行取消按钮<Cancel>; 然后执行<File->New>菜单,出现下面的对话框:从“Choose an Expert”中选择<Standard>标准报表格式;出现下面的对话框,选择数据库的来源:必须选择“SQL/ODBC”数据源,即执行<SQL/ODBC>按钮,出现下面对话框:必须从<Server Type>列表中选择数据源“FameView ReportData Source”,(此数据源为系统所提供,在系统首次安装时建立的,对应的Access文件名称为ReportData.mdb, 对应的SQL Server文件名称为ReportData.mdf,所以必须保障此数据源的存在和完整性);执行<OK>按钮,出现下面对话框来选择数据表:FameView ReportData Source数据源中存在有数据表“PrnData”,其为实时报表数据的格式; 必须从SQL Table中选择数据表“PrnData”,如果为SQL Server数据库,数据表为“ReportData.dbo.PrnData”;执行<Add>按钮和<Done>按钮,出现下面的界面:执行“Next>>”按钮,出现下面的界面,选择报表中要使用的字段:其中“nData_1、nData_2、nData_3……nData_100”分别对应100个实时报表的数值数据,即“数值001-数值100”,可以对应AI/AO/AR/DI/DO/DR/VA/VD的变量值;其中“sData_1、sData_2、sData_3……sData_10”分别对应10个实时报表的文本数据,即“文本001-文本010”,可以对应VT变量的内容;另外记录集中还有一些附加的字段:序号 字段名称 描述1 sWeek 数据被采集存储的星期;2 sDate 数据被采集存储的日期3 sTime 数据被采集存储的时间4 nYear 数据被采集存储的年份;5 nMonth 数据被采集存储的月份;6 nDay 数据被采集存储的天;7 nHour 数据被采集存储的小时;8 nMinute 数据被采集存储的分钟;9 nSecond 数据被采集存储的秒;此时便可以用<Preview Report>按钮浏览并完成报表的制作;进行简单的编辑之后,最终的报表格式如下:把编辑好的报表格式,建议存储到组态系统目录下的ReportFile目录下,例如:d:\ 组态系统\ReportFile\test.rpt在保存报表格式前,请打开菜单File,确信没有选择“Save Data with Report”,否则在打印/浏览报表时,报表的内容不会更新;12.6定义自动实时报表打印任务实时报表通常需要自动的打印输出,通过以下步骤定义自动实时报表打印任务:选择“实时报表”功能,执行“实时报表自动打印任务”功能,出现下面对话框:系统最多允许定义7个自动打印任务,即“ 自动打印任务1-- 自动打印任务7”,如果要定义第1个打印任务,请选择“ 自动打印任务1”;通过<报表格式文件>按钮弹出的文件选择对话框,选择一个实时报表格式,例如:d:\ 组态系统\ReportFile\test.rpt假设要在每天的8点钟打印报表,则需要做以下选择:通过“<<设定”按钮,使定义有效,即“ 自动打印任务1”;执行“确定”按钮,完成定义;12.7通过系统功能(FB)执行实时报表系统还提供了28、29号系统功能来分别实现浏览、打印实时报表,如下图所示:12.8通过画面脚本执行实时报表例如要浏览实时报表,脚本编写如下:RunSys.PreviewDataReport"test.rpt",0。
杰控组态手册07.运行数据库
使用,所以系统通过运行数据库提供各种变量,以各种方式来访问设备数据表;
运行数据库是整个控制系统的中心枢纽,运行数据库提供的各种变量,要供其他程序使用,如画面、报
警、报表…等;
运行数据库,是一种面向对象的、结构化的、组态的实时数据库,开发人员进行了巧妙的设计,为了适
CA
计算功能
实现简单的算术、脉冲、计数器、计时器和逻辑运算等功能;
CMP 比较功能
对两个变量进行比较,根据结果去执行 CA/CMP/FB/FG 任务;
.7-3.
基本应用 FB FG TM Fx
系统功能 功能组 时间中断功能 解析函数功能
提供多种对工程项目操作的特殊方法;
7.运行数据库
实现批处理功能,同时执行多个 CA/CMP/FB/FG 任务;
.7-1.
7.运行数据库
页码 7-03 7-04 7-05 7-07 7-12 7-13 7-15 7-16 7-17 7-18 7-21 7-22 7-24 7-25 7-26 7-27 7-27 7-27 7-27 7-28 7-29 7-29 7-29 7-30 7-30 7-31 7-31 7-31 7-32 7-32 7-33 7-33 7-34 7-34 7-34
基本应用
7.运行数据库
序号 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16
内容 运行数据库介绍 定义运行数据库 编辑运行数据库 外部模拟变量(AI/AO/AR) 外部开关变量(DI/DO/DR) 内部模拟变量(VA) 内部开关变量(VD) 文本变量(VT) 存档变量(DOC) 计算功能(CA) 比较功能(CMP) 系统功能(FB) 定时功能(TM) 函数解析功能(FX) 查看运行数据库 应用示例 7.16.1 通过 AI/AR,得到设备中的某数据值 7.16.2 通过 DI/DR,得到设备中的某数据位 7.16.3 快速添加变量 7.16.4 分类显示变量 7.16.5 随机数 7.16.6 自动递增的数 7.16.7 自动递减的数 7.16.8 当前的日期/时间信息 7.16.9 系统启动和运行的时间 7.16.10 当前计算机系统的信息 7.16.11 系统的工作路径 7.16.12 变量累加 7.16.13 脉冲输出 7.16.14 计算变量大于 0 的时间(变量累时器/计时器) 7.16.15 计算变量的变化值 7.16.16 统计变量的变化次数 7.16.17 某变量的分钟统计值 7.16.18 某变量的小时统计值 7.16.19 数学运算
杰控组态指导手册
杰控组态指导手册前提:计算机已安装杰控组态软件(下面按FameView7.6为例)一、新建工程计算机安装好杰控软件后,桌面上会出现如图杰控快捷方式,双击打开软件出现下图窗口:点击窗口左上角如图按钮出现下图输入项目名称等信息,点击“确定”,新建项目成功。
二、画面组态在如图左侧树结构菜单栏选中“显示画面”,右侧出现“画面管理”,“显示属性”,“画面制作”双击“画面制作”即可进入画面编辑环境在弹出窗口中填写新建第一张画面的基本信息举例:画面名称“PIC1”画面尺寸“600*400”点击确认,进入画面菜单和工具说明请参考附件“08.画面制作”右键画面,选择画面属性,可对画面基本信息进行修改下面即可在画面根据提供的PID图进行所需流程图组态。
三、变量组态返回主界面,选择“设备通讯”,双击右侧“安装驱动”根据具体工程要求选择正确的驱动品牌和通讯方式,点击安装双击“启动驱动”,给需要启动的驱动打勾双击“设备数据表”,根据编程师提供的变量地址表预估和合理分配所需变量类型和数目。
返回主界面,选择“运行数据库”,根据要求在右侧不同的变量类型中建立变量以DI为例,双击“DI-开关只读变量”点击“新建”填写变量详细信息即可四、动画组态双击点开属性窗口这边根据你需要做动画连接,比如可见性选择条件a=b,连接变量,写下常数等于1(也就是在1的状态下可见),详情请参考附件“08.画面制作”五、报警组态,在建点的时候有需要报警的在报警一栏打上勾在扩展应用里选择变量报警,进行归档一个个添加归档进去,完成之后回到画面窗口,新建一个报警画面,拖动报警控件在组件箱变量报表,详情请参考附件“10.变量报警”六、趋势曲线,在组件箱,曲线显示里,实时曲线,拖动到曲线画面中,出现下面对话框点击实时曲线定义,把模拟量变量添加进去,详情请参考附件“11.历史数据”七、报表1.新建变量2.存档变量3.企业管理器——(Local)——数据库——新建数据库(宣化数据库名字是UserDateBase)——表——新建表4.实时报表——定义实时报表数据(有多少模拟量就定义多少数值)5.编辑报表格式6.新建报表,启动报表设计器7.下一步直接点DONE8.选择新建报表(直接点白的创建)9.从“Choose an Expert”中选择<Standard>标准报表格式;10.出现下面对话框,选择数据库来源:11.必须选择“SQL/ODBC”数据源,即执行<SQL/ODBC>按钮,出现对话框:12.选择USER Date Source13.执行<OK>按钮,出现下面对话框来选择数据表:14.选择你所建的表名,添加ADD15.添加完之后关闭,直接下一步,将表里的字段添加(ADD)到Report Filds,下一步,点击Preview Report,进入报表编辑模式(Design)设计报表格式,点击(Preview)预览样式16.设计好后保存,在默认路径下,改下文件名,后缀名(rpt)17.确定后,在编辑报表格式里可以看到该报表18.数据库——编辑数据库连接19.新建20.保存时间,触发周期改一下(根据要求),选择数据表(自己新建的表)21.选择字段名称(每个字段都要添加)22.应用数据连接,回到主画画(你可以把子画面往下拖),选择报表打印按钮,23.选择报表打印按钮后在画面上拖动出现下面画面,对象名称改一下格式文件选择你设计的报表选择时间字段,出现下面对话框,选择Fame View User Date Sourse,选择你所建的表里日期字段新建好之后,回到主画面,即页眉,右击选择画面脚本编辑,选择报表按钮,双击Show Window选择你刚刚选择报表按钮时起的对象名称,保存选择在组建箱里选择画面编程,动态菜单,选择一个动态菜单,下面可以选择一个空的添加,右边写上相应的描述,任务选择处理脚本选择报表按钮,SHOW Window双击,选择对象名称,保存报表详情请参考附件“12.实时报表”。
fameview应用
北京杰控科技有限公司
三、设备通讯 – 4.设备数据表
设备数据表是Fameview通讯性能优越的主要原因. 设备数据表的使用,默认支持了批量数据的通讯,通讯速度非常快. 使组态软件与外部设备隔离,简化了运行数据库的组态. 具备了在大型项目中应用的基本条件.如深圳地铁等. 使项目移植能够快速实现. 增强了调试功能.
四、运行数据库 – 9.定制运行数据库
北京杰控科技有限公司
四、运行数据库 – 10.查看运行数据库
实现运行数据库的调试. 制作完变量后,便可直接进行查看其值或状态是否正确. 鼠标双击AO/AR/DO/DR/VA/VD还可修改.
北京杰控科技有限公司
五、画面
内容: 画面管理器. 制作画面 画面显示属性. 画面显示.
二、系统设置 – 2.启动任务
解决如下问题: Windows启动后,如何自动启动组态软件.
启动组态软件时,如何只启动的必要的任务.
启动组态软件时,如何自动启动其他任务,如Word、Excel等.
北京杰控科技有限公司
二、系统设置 – 3.自动登录
Windows启动过程中,如果不希望出现登录界面,而直接进入…
设置是否允许报警信息的存储. 缺省存储到FameView ReportData Source数据源中. 定义报警信息允许存储的天数. 定义自动报警信息打印.
北京杰控科技有限公司
六、变量报警 – 内部系统报警变量
系统提供了以下报警变量: VA.%ALARMNO VA.%报警计数 VD.%报警允许 VD.%新报警 VT.%ALMTEXT 当前最新报警的索引号1-1500
报警 设定
北京杰控科技有限公司
杰控软件基本操作技服人员培训资料
锁定之后组态画面消失 解锁在YSB文件夹-fvwsp图 标双击打开密码 解锁即可
2权限设置
扩展应用-用户管理设置管理员级别
进入画面制作界面如下图所示
在参数设置图标上设置增强属性
如下图所示
Add the author and the accompanying title
生活
图标元素
商务
软件安装顺序
1.先安装kuaizip压缩软件 2.如果是施耐德plc可略过这一步,如果是西门子plc安装西门子200
3.数据库sql server 2008 即express2008 4.上位机软件 杰控:中控监测安装包 5.其它软件后安装,无顺序要求,
软件说明: ADAM400键盘使用,
DEEP.....:win7 32位系统 express2008:数据库
kuaizip:压缩软件 pdfdayin:pdf打印驱动 pdfyueduqi:pdf阅读器 中控监测安装包:上位机软件 杰控 大傻串口调试:串口通讯有问题时使用调试
1:office2003 2:2007兼容包
4 现场案例及分析
2. 打开杰控软件,调入程序,在左侧找到我的系统—设 置—启动任务
▪ 国标协议20前面有√的需要去掉 ▪ 在后面的启动附加程序后点击+,找到我们复制进YSB文件夹
的文件 第一个 ,选中打开,然后确认,如果+下面的框中原本 有联网协议但是不合适的话可以用-删除然后重新,
数采仪串口
1.数采仪默认串口通讯方式,第二个文件中在下图的串口号处更改串口
5
弹出如下对话框,点击备份
6
备份结束后会弹出下面文件
上图中的MyBackupPro,ject文件夹下的YQ_CEMS , .****文件夹的所有内容即为程序备份, ,
皕杰报表入门教程--v3.2
第 1 节: 体验主子格 ...................................................................................................................................... 12 第 2 节: 多层分组 .......................................................................................................................................... 14 第 3 节: 统计与汇总 ...................................................................................................................................... 15
水晶报表讲义
水晶报表讲义[键入文字]水晶报表课程讲义苏州工业园区博思企业管理咨询有限公司1 / 58[键入文字]第一章水晶报表的作用 ..................................................................... ............................... 4 第二章做一个简单的报表 ..................................................................... .............................. 4 第三章报表打印位置与打印机设置 ..................................................................... ................ 6 1、报表打印位置 ..................................................................... ............................................ 6 2、打印机设置 ..................................................................... ................................................ 7 第四章数据库专家 ..................................................................... ............................................ 7 第五章报表中字段 ..................................................................... ............................................ 7 1、数据库字段 ..................................................................... ................................................ 7 2、公式字段 ..................................................................... .................................................... 8 3、sql表达式字段 ..................................................................... .......................................... 8 4、参数字段 ..................................................................... .................................................... 8 5、运行总计字段 ..................................................................... .......................................... 10 6、特殊字段 ..................................................................... .................................................. 11 7、文本字段 ..................................................................... .................................................. 11 8、图片字段 ..................................................................... .................................................. 12 第六章排序、分组、过滤 ..................................................................... .............................. 14 1、排序 ..................................................................... .......................................................... 14 2、分组 ..................................................................... .......................................................... 15 3、过滤 ..................................................................... .......................................................... 16 第七章多节报表 ..................................................................... .............................................. 17 1、防止可变长度的对象相互覆盖 ..................................................................... .............. 17 2、当字段为空时消除空白行 ..................................................................... ...................... 18 3、在特定情况下添加空白行 ..................................................................... ...................... 19 4、使对象延续到后续节 ..................................................................... .............................. 21 第八章图表 ..................................................................... ...................................................... 21 1、图表类型 ..................................................................... .................................................. 21 2、使用数据库中字段绘制图表 ..................................................................... .................. 28 3、使用汇总或小计字段上绘制图表 ..................................................................... .......... 34 4、在交叉表中绘制图表 ..................................................................... .............................. 38 第九章 OLE对象 ..................................................................... .. (38)2 / 58[键入文字]1、插入静态OLE对象 ..................................................................... .................................. 39 2、插入嵌入对象 ..................................................................... .......................................... 39 3、插入链接对象 ..................................................................... .......................................... 40 第十章交叉表 ..................................................................... .................................................. 41 1、交叉表示例 ..................................................................... .............................................. 41 2、在交叉表中插入图表 ..................................................................... .............................. 43 第十一章报表警报 ..................................................................... .......................................... 46 第十二章公式 ..................................................................... .................................................. 47 1、公式的用途 ..................................................................... .............................................. 48 2、公式的创建 ..................................................................... .............................................. 48 第十三章自定义函数 ........................................................................................................... 50 1、自定义函数的使用 ..................................................................... .................................. 50 第十四章子报表 ..................................................................... .............................................. 53 1、子报表与主报表之间的区别 ..................................................................... .................. 53 2、何时使用子报表 ..................................................................... ...................................... 53 3、将不相关的报表组合到单个报表中 ..................................................................... ...... 54 4、一对多查询 ..................................................................... .............................................. 55 5、协调无法链接的数据 ..................................................................... .............................. 57 6、在单个报表中显示相同数据的不同视图 ...................................................................583 / 58[键入文字]第一章水晶报表的作用一、创建所能想象的任何报表Crystal Reports 几乎可以从任何数据源生成您需要的报表。
杰控第25章数据库操作
25.数据库操作序号 内容 页码25.1 数据查询 25-225.2 曲线查询 25-625.3 表格显示 25-1025.4 字段列表 25-1425.5 删除数据表记录 25-1725.6 数据库脚本编程 25-1825.7 存储过程脚本编程 25-1925.8 数据表平均统计 25-2025.9 数据表导出Excel 25-2125.10 ADO访问数据库 25-2225.11 查询数据表最近时间段记录 25-2325.12 获取数据表最近时间段统计值 25-2325.13 获取数据表某时间段字段总和 25-2425.14 分钟数据表生成小时和日数据表 25-2525.15 数据库动态增加数据表 25-2625.16 异步批量删除数据库记录 25-2625.17 异步批量修正数据库记录 25-2725.18 判断数据库文件尺寸,异步批量删除数据库记录 25-2725.19 查询数据表某月日平均值并通过Excel柱状图显示 25-2825.20 以可变时间间隔查询显示数据表记录 25-3025.21 设置数据查询组件查询时间间隔 25-3225.22 数据库增补记录 25-3325.23 通过触发器计算增加值 25-3425.24 脚本使用ADO访问数据库判断是否成功 25-3625.25 执行脚本备份SQL数据库 25-3725.26 脚本使用ADO执行存储过程 25-3725.27 得到数据表时间字段最早及最新日期 25-3825.28 查询月数据表(每月对应1个数据表) 25-3925.29 数据库转发 25-4125.30 使用脚本管理数据库 25-4625.1数据查询画面提供"数据查询"组件:组态对话框:执行<数据源>按钮,选择或定义数据源:[1]."控制面板->管理工具"中定义ODBC数据源;[2].远程数据源须输入用户名称、口令才允许访问;[3].执行<自定义数据源>按钮,定义DSN描述型数据源:[4].或直接输入DSN描述型数据源:数据库 数据源描述SQL Server Driver={SQL Server};Server=(local);Database=UserDatabase;Uid=;Pwd=;Access Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\mydb.mdb;Uid=;Pwd=;Oracle Driver={Microsoft ODBC for Oracle};Server=192.168.1.100;Uid=;Pwd=; 数据表,必选项,选择存储查询记录的数据表或视图:时间字段,必选项,查询数据表所使用的时间字段:报表格式,可选项,预先制作并选择Crystal报表格式,将查询结果打印或浏览; 排序字段,可选项,将查询结果进行特殊排序;例1.根据f3字段升序排列:25.数据库操作数据查询组件脚本函数:1设置弹出式查询窗口显示位置UserDbSQLObj.SetWindowPosition objName,sx,sy 2设置弹出式查询窗口显示尺寸UserDbSQLObj.SetWindowSize objName,cx,cy 3显示弹出式查询窗口UserDbSqlObj.ShowWindow objName 4设置查询缺省时间长度UserDbSQLObj.SetTimeLen objName,len,unit 5设置或追加查询内容,或设置附加过滤条件 serDbSQLObj.SetQueryObject objName,desc 6设置查询窗口的选项UserDbSQLObj.SetWindowOptions objName,options工业自动化-花落忆无声。
杰控脚本合集
杰控脚本合集一、运行数据库1. 打开运行数据库:bValue=RunSys.OpenDatabase(tm)如果仅读取运行数据库内容,可不打开运行数据库;□ tm为超时时间,单位为毫秒,取值范围在1000-5000之间为宜,取值18888时自动根据需求打开运行数据库;□ bValue为返回值,在超时时间内,数据库没被成功打开,返回0,否则返回1;例: n=RunSys.OpenDatabase(3000)If n=1 Then......RunSys.CloseDatabaseEnd If2. 关闭被打开的运行数据库:RunSys.CloseDatabase□与OpenDatabase配合使用;例: n=RunSys.OpenDatabase(1000)If n=1 Then......RunSys.CloseDatabaseEnd If3. 得到运行数据库中某变量的数值或状态:VarValue=RunSys.GetVarValue(VarType,VarName,VarIndex)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue,返回变量值或状态,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;返回值为-1211.1024时,表示函数执行错误;例1: x=RunSys.GetVarValue(AI,"AI1",-1)例2: x=RunSys.GetVarValue(AI,"",10)例3: varIndex=RunSys.GetVarIndexFromVarName(AI,"VAR1")x=RunSys.GetVarValue(AI,"",varIndex)4. 得到某变量最后变化前的数值或状态:VarValue=RunSys.GetVarLastValue(VarType,VarName,VarIndex)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue,返回变量值或状态,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;返回值为-1211.1024时,表示函数执行错误;例: x=RunSys.GetVarLastValue(AI,"AI1",-1)5. 修改某变量的数值或状态:RunSys.SetVarValue VarType,VarName,VarIndex,VarValue□ VarType, 变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue为要修改的数值或状态值,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;例1: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarValue AR,"AR1",-1,100RunSys.CloseDatabaseEnd If例2: n=RunSys.OpenDatabase(1000)If n=1 ThenvarIndex=RunSys.GetVarIndexFromVarName(AR,"AR1")RunSys.SetVarValue AR,"",varIndex,100RunSys.CloseDatabaseEnd If例3: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarValue DR,"DR1",-1,1RunSys.CloseDatabaseEnd If6. 弹出窗口进行数值输入,并修改某变量数值或状态;RunSys.SetVarValueEx VarType,VarName,VarIndex□ VarType, 变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;例: RunSys.SetVarValueEx AR,"AR1",-17. 得到某VT变量的文本内容:VarValue=RunSys.GetVttext(VarName,VarIndex)□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ VarValue为返回文本内容;例: s=RunSys.GetVtText("VT1",-1)8. 修改某VT变量的文本内容:RunSys.SetVTtext VarName,VarIndex,VarValue□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ VarValue为修改文本内容;例1: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVTtext "VT1",-1,"ABC"RunSys.CloseDatabaseEnd If例2: n=RunSys.OpenDatabase(1000)If n=1 ThenvarIndex=RunSys.GetVarIndexFromVarName(VT,"VT1")RunSys.SetVTtext "",varIndex,"ABC"RunSys.CloseDatabaseEnd If例3: n=RunSys.OpenDatabase(1000)If n=1 Thens=RunSys.GetVtText("VT2",-1)RunSys.SetVTtext "VT1",-1,sRunSys.CloseDatabaseEnd If9. 弹出窗口进行文本输入,并修改某VT变量文本内容;RunSys.SetVTtextEx VarName,VarIndex□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;例: RunSys.SetVTtextEx "VT1",-110. 直接从设备数据表中得到数值:x=RunSys.GetValueFromDevTable(DevNo,ElementNo,DataType,DataFmt)□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ DataType, 数据类型:1 = Byte;2 = Word;3 = DWord;4 = DDWord;11 = B2W(x2,x1);12 = B2D(x4,x3,x2,x1);13 = B2W(x1,x2);14 = B2D(x1,x2,x3,x4);15 = W2D(x2,x1);16 = W2D(x1,x2);17 = W2W(xh,xl);18 = B2D(x3,x4,x1,x2);19 = B2D(x2,x1,x4,x3);20 = W2D(x12,x11,x22,x21);21 = W2D(x22,x21,x12,x11);22 = D2D(x(4,3,2,1));23 = D2D(x(3,4,1,2));24 = D2D(x(2,1,4,3));□ DataFmt,数据格式:1 = 整数;2 = 无符号整数;3 = 浮点数;4 = 最高位为符号位的整数;例: x=RunSys.GetValueFromDevTable(2,1,1,1)11. 直接修改设备数据表中数值:RunSys.SetValueToDevTable DevNo,ElementNo,DataType,DataFmt,Value□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ DataType, 数据类型:1 = Byte;2 = Word;3 = DWord;4 = DDWord;11 = B2W(x2,x1);12 = B2D(x4,x3,x2,x1);13 = B2W(x1,x2);14 = B2D(x1,x2,x3,x4);15 = W2D(x2,x1);16 = W2D(x1,x2);17 = W2W(xh,xl);18 = B2D(x3,x4,x1,x2);19 = B2D(x2,x1,x4,x3);20 = W2D(x12,x11,x22,x21);21 = W2D(x22,x21,x12,x11);22 = D2D(x(4,3,2,1));23 = D2D(x(3,4,1,2));24 = D2D(x(2,1,4,3));□ DataFmt,数据格式:1 = 整数;2 = 无符号整数;3 = 浮点数;□ Value,修改值;例: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetValueToDevTable 2,0,1,1,xRunSys.CloseDatabaseEnd If12. 直接从设备数据表中得到某位状态:bValue=RunSys.GetStatusFromDevTable(DevNo,ElementNo,BitNo,DataType) □ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ BitNo, 位号(0-7/15/31);□ DataType, 单元类型(1=Byte,2=Word,3=DWord);□ bValue, 返回状态(0/1);例: x=RunSys.GetStatusFromDevTable(2,1,10,1)13. 直接修改设备数据表某状态位:RunSys.SetStatusToDevTable DevNo,ElementNo,BitNo,DataType,n□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ BitNo, 位号(0-7/15/31);□ DataType, 单元类型(1=Byte/2=Word/3=DWord);□ n, 修改值(0/1/2),n=2时进行取反操作;例: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetStatusToDevTable 2,1,10,1,1RunSys.CloseDatabaseEnd If14. 启动/停止图形对象动态边框颜色变化:ShapeObj.EnableDynBorderColor objName,status□ objName为对象名称;□ status=0时停止动态颜色变化,status=1时启动动态颜色变化;例:ShapeObj.EnableDynBorderColor "AAA",115. 设置图形对象动态边框颜色变化所依据的变量:ShapeObj.SetVarForDynBorderColor objName,varType,varName□ objName为对象名称;□ varType为变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ varName为变量名称;例:ShapeObj.SetVarForDynBorderColor "AAA",AI,"AI1"16. 根据变量类型和名称得到变量索引号:varIndex=Runsys.GetVarIndexFromVarName(VarType,VarName)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,VT=9); □ VarName, 变量名称,最大字符长度20;□ varIndex,变量索引号,错误时返回-1,否则返回大于0的值;例: varIndex=RunSys.GetVarIndexFromVarName(AI,"AI1")17. 激活某变量报警:RunSys.EnableVarAlarm VarType,VarName□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.EnableVarAlarm AI,"AI1"RunSys.CloseDatabaseEnd If18. 屏蔽某变量报警:RunSys.DisableVarAlarm VarType,VarName□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.DisableVarAlarm AI,"AI1"rRunSys.CloseDatabaseEnd If19.设置某变量的报警标志:RunSys.SetVarAlarmId VarType,VarName,AlarmId;□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20,支持*通配符,操作成批变量,*必须为最后字符;□ AlarmId,报警标志,AlarmId=1允许报警,AlarmId=0禁止报警;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarAlarmId AI,"AI1",0RunSys.SetVarAlarmId AI,"AI2",1RunSys.SetVarAlarmId AI,"MT*",0RunSys.CloseDatabaseEnd If20. 激活某变量更新:RunSys.EnableVarScan VarType,VarName□VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,Vt=9,CA=10,DOC=15);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.EnableVarScan AI,"AI1"RunSys.CloseDatabaseEnd If21. 屏蔽某变量更新:RunSys.DisableVarScan VarType,VarName□VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,Vt=9,CA=10,DOC=15);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.DisableVarScan AI,"AI1"RunSys.CloseDatabaseEnd If22. 更改某模拟变量对应设备地址:RunSys.SetAXDevAddress VarType,VarName,VarIndex,DevNo,ElementNo□ VarType, 变量类型(1=AI、2=AQ、3=AR);□ VarName, 变量名称;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde操作变量,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ DevNo,新设备号(1-2000),1=D1、2=D2、...□ ElementNo,新单元号(0-1023);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetAXDevAddress AI,"AI1",-1,2,10RunSys.CloseDatabaseEnd If23. 更改某开关变量对应设备地址:RunSys.SetDXDevAddressVarType,VarName,VarIndex,DevNo,ElementNo,BitNo□ VarType, 变量类型(4=DI、5=DQ、6=DR);□ VarName, 变量名称;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde操作变量,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ DevNo,新设备号(1-2000),1=D1、2=D2、...□ ElementNo,新单元号(0-1023);□ BitNo,新位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDXDevAddress DI,"DI1",-1,2,10,2RunSys.CloseDatabaseEnd If24. 弹出窗口,在线修改某变量报警参数:RunSys.SetVarAlarm VarType,VarName,-1□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,如果VarName为空,则显示对话框选择而得到变量名;例:RunSys.SetVarAlarm AI,"AI1",-1RunSys.SetVarAlarm AI,"",-125. 得到某模拟变量报警设定值:fltValue=RunSys.GetVarAlarmValue(VarType,VarName,VarIndex,ValueType) □ VarType,变量类型(AI=1,AO=2,AR=3);□ VarName,变量名称;□ ValueType=1,返回低限报警值;ValueType=2,返回高限报警值;ValueType=3,返回超低限报警值;ValueType=4,返回超高限报警值;ValueType=5,返回增幅报警值;ValueType=6,返回降幅报警值;ValueType=7,返回报警死区'ValueType=8,返回报警允许状态;例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarAlarmValue(AI,"AI1",-1,2)RunSys.CloseDatabaseEnd If26. 修改某模拟变量报警设定值:RunSys.SetVarAlarm VarType,VarName,VarIndex,ValueType,AlarmValue □ VarType,变量类型(AI=1,AO=2,AR=3);□ VarName,变量名称;□ ValueType=1/11,修改低限报警值;ValueType=2/12,修改高限报警值;ValueType=3/13,修改超低限报警值;ValueType=4/14,修改超高限报警值;ValueType=5/15,修改增幅报警值;ValueType=6/16,修改降幅报警值;ValueType=7/17,修改报警死区'ValueType=8/18,修改报警允许状态;当ValueType>10,可存储到运行数据库中,否则下次启动时恢复到初值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarAlarmValue AI,"AI1",-1,2,100.00RunSys.CloseDatabaseEnd If27. 得到某模拟变量量程设定值:x=RunSys.GetVarRangeValue(VarType,VarName,-1,RangeType)□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7);□ VarName,变量名称;□ RangeType=1,返回变量低限;RangeType=2,返回变量高限;RangeType=3,返回最小实际值;RangeType=4,返回最大实际值;例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarRangeValue(AI,"AI1",-1,2)RunSys.CloseDatabaseEnd If28. 修改模拟变量或存档变量的某量程设定值:RunSys.SetVarRangeValue VarType,VarName,-1,RangeType,RangeValue □ VarType,变量类型(AI=1,AO=2,AR=3,VA=7,DOC=15);□ VarName,变量名称;□ RangeType=1,修改变量低限;RangeType=2,修改变量高限;RangeType=3,修改最小实际值;RangeType=4,修改最大实际值;RunSys.SetVarRangeValue AI,"AI1",-1,2,10029. 弹出窗口,修改模拟变量或存档变量的量程值:RunSys.SetVarRange VarType,VarName,-1□ VarType,变量类型(AI=1,AO=2,AR=3,DOC=15);□ VarName,变量名称,如果VarName为空,通过选择对话框得到变量名;例:RunSys.SetVarRange AI,"AI1",-130. 修改模拟变量或存档变量全部量程值:RunSys.SetVarRangeEx VarType,VarName,Vl,Vh,Vmin,Vmax,ToSave□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7,DOC=15);□ VarName,变量名称;□ Vl,变量低限,Vh变量高限;Vmin,最小实际值,Vmax最大实际值;□ ToSave=1刷新到组态数据库;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarRangeEx AI,"AI1",0,300,0,1000,0RunSys.CloseDatabaseEnd If31. 弹出窗口,显示指定文本内容,维持数秒关闭;RunSys.ShowMsgWnd msgText,n□ msgText,显示提示文本,如文本内容为空,则关闭正显示的窗口;□ n,信息窗口显示停留时间,以秒为单位(36000>n>0),否则缺省为10秒;例:RunSys.ShowMsgWnd "启动设备",532. 弹出窗口,允许输入口令样式文本,并存储到某VT变量:RunSys.ShowPasswordWnd Title,VarName,-1□ Title, 窗口标题文本;□ VarName,VT变量名称;例:RunSys.ShowPasswordWnd "请输入口令:","VT1",-133. 弹出窗口,允许选择日期时间,并保存到某VT变量:RunSys.ShowDateTimeWnd VarName,-1□ VarName,VT变量名称;例:RunSys.ShowDateTimeWnd "VT1",-134. 屏蔽/激活Windows任务切换功能(包括任务栏、Alt+Tab、任务管理器等): RunSys.TaskKeyMgr bValue□ bValue=0屏蔽任务切换,bValue=1激活任务切换;例:RunSys.TaskKeyMgr 135. 开关某变量,即变量值为0则置为1,变量值为1则置为0:RunSys.VarOnOff VarType,VarName,-1□ VarType,变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName,变量名称;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.VarOnOff DR,"DR1",-1RunSys.CloseDatabaseEnd If36. 增加某模拟变量值:RunSys.Var_Add_n VarType,VarName,-1,n□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ n, 增加值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.Var_Add_n AR,"AR1",-1,2RunSys.CloseDatabaseEnd If37. 减少某模拟变量值:RunSys.Var_Sub_n VarType,VarName,VarIndex,n□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ n, 减少值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.Var_Sub_n AR,"AR1",-1,2RunSys.CloseDatabaseEnd If38. 脉冲某变量,即把变量置为1或某值,2-3秒后再复为0:RunSys.VarPulse VarType,VarName,-1RunSys.VarPulseEx VarType,VarName,-1,VarValue□ VarType, 变量类型(AO=2,AR=3,VA=7、DQ=5、DR=7、VD=8);□ VarName, 变量名称;□ VarValue,变量值,适用于AO/AR/VA变量;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.VarPulse DR,"DR1",-1RunSys.VarPulseEx AR,"AR1",-1,100RunSys.CloseDatabaseEnd If39. 把某设备号内容拷贝到其他某设备号:RunSys.CopyDevno n,a,n1,a1,l□把设备号n1(1-2000)中从a1(0-1023)开始的l个字节数据,拷贝到设备号n(1-2000)中从a(0-1023)开始的地方;□通过SetCopyDevnoMode函数可设置设备号拷贝的字节转换方式:RunSys.SetCopyDevnoMode modemode=0,不处理x->x;mode=1,x(1,2) -> x(2,1);mode=2,x(1,2,3,4) -> x(4,3,2,1);mode=3,x(1,2,3,4) -> x(3,4,1,2);mode=4,x(1,2,3,4) -> x(2,1,4,3);mode=5,x(1,2,3,4,5,6,7,8) -> x(2,1,4,3,6,5,8,7); mode=6,x(1,2,3,4,5,6,7,8) -> x(8,7,6,5,4,3,2,1); mode=7,x(1,2,3,4,5,6,7,8) -> x(7,8,5,6,3,4,1,2); mode=8,x(1,2,3,4,5,6,7,8) -> x(5,6,7,8,1,2,3,4); mode=9,x(1,2,3,4,5,6,7,8) -> x(6,5,8,7,2,1,4,3);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetCopyDevnoMode 2RunSys.CopyDevno 2,0,3,0,100RunSys.CloseDatabaseEnd If40. 使脚本延时某段时间:RunSys.Sleep n□ n为延时毫秒数,取值为30-60000;例:RunSys.Sleep 3041. 得到某模拟无符号整形变量中某位状态:bValue=RunSys.GetVarBit(VarType,VarName,BitNo)□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarBit(AR,"AR1",1)RunSys.CloseDatabaseEnd If42. 置位某模拟无符号整形变量中某位状态为1:RunSys.SetVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If43. 复位某模拟无符号整形变量中某位的状态为0:RunSys.ResetVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.ResetVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If44. 取反某模拟无符号整形变量中某位的状态:RunSys.OnoffVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.OnoffVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If45. 设置具有[动态扫描级别]属性设备号的扫描级别:RunSys.SetDevnoScanclass m,n□ m,设备号(2-2000);□ n,扫描级别(1-100),n越小扫描速度越快;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDevnoScanclass 2,1RunSys.CloseDatabaseEnd If46. 向事件信息系统发送信息文本:RunSys.SendDebugInfo s□ s,要发送文本内容;例:RunSys.SendDebugInfo ""47. 得到某变量最近发生变化的时刻,即变化时标:strValue=RunSys.GetVarTimeStamp(VarType,VarName)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName, 变量名称;□ strValue,返回时间串,格式为2008-08-08 12:11:00,错误时返回空字符串;例:n=RunSys.OpenDatabase(1000)If n=1 ThenstrValue=RunSys.GetVarTimeStamp(AI,"AI1")RunSys.CloseDatabaseEnd If48. 得到某变量发生改变的时刻,距当前时间的秒数:lValue=RunSys.GetVarTimeStampEx(VarType,VarName)□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName,变量名称;□ lValue, 整数返回值,错误时返回-1;例:lValue=RunSys.GetVarTimeStampEx(AI,"AI1")49. 得到某变量最近1次改变与上次发生改变之间的秒间隔:lValue=RunSys.GetVarTimeSpan(VarType,VarName)□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName,变量名称;□ lValue, 整数返回值,错误时返回-1;例:lValue=RunSys.GetVarTimeSpan(AI,"AI1")50. 打开表格配方管理窗口;RunSys.OpenTableRecipexpos,ypos,toOpen,toUpload,toDownload,toSave,toSaveas,defaultRecipe □ xpos,ypos, 定位配方窗口的位置,分别为窗口的左上角坐标;□ toOpen=1, 允许打开配方列表;□ toUpload=1, 允许上载配方;□ toDownload=1, 允许下载配方;□ toSave=1, 允许保存配方;□ toSaveas=1, 允许另存配方;□ defaultRecipe,缺省配方名称;例:RunSys.OpenTableRecipe 100,100,1,1,1,1,1,""51. 把设备表中某设备号的某段字节单元,批量设置为指定内容:RunSys.SetDevTableByte devNo,startByte,endByte,setValue□ devNo, 设备号[1-2000];□ startByte,开始字节单元号[0-1023];□ endByte, 结束字节单元号[0-1023];□ setValue, 修改值,有3种数值类型如果setValue为0-255整数,则所有单元修改为相同值;如果setValue为以'STR:'开始的字符串,则把随后的字符串拷贝到连续单元中,如"STR:ABCDefg";如果setValue为以'HEX:'开始的字符串,则把随后的字符串转换为16进制再拷贝到连续单元中,如"HEX:01 03 00 00";例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDevTableByte 1,0,100,2RunSys.SetDevTableByte 2,0,5,"STR:abcdef"RunSys.SetDevTableByte 3,0,7,"HEX:01 03 00 00 00 01 84 0A" RunSys.CloseDatabaseEnd If52. 把设备表中连续的多个设备号的某字节单元,批量设置为指定内容:RunSys.SetBatchDevnoBytestartDevno,endDevno,byteNo,setValue,setMode□ startDevno,开始设备号[1-2000];□ endDevno, 结束设备号[1-2000];□ byteNo, 字节单元号[0-1023];□ setValue, 修改值;□ setMode, 6种修改方式:setMode=0,使字节单元内容等于(=)修改值;setMode=1,使字节单元内容或(Or)修改值;setMode=2,使字节单元内容与(And)修改值;setMode=3,使字节单元内容异或(Xor)修改值;setMode=4,使字节单元内容加(+)修改值;setMode=5,使字节单元内容减(-)修改值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetBatchDevnoByte 2,10,0,1,0RunSys.CloseDatabaseEnd If53. 得到自开机以来经历的毫秒数;longValue=RunSys.GetTickCount()例:x=RunSys.GetTickCount()54. 得到操作系统的版本信息:n=RunSys.GetOSVersion()□ n为4字节长度的整数,4个字节分别代表:b1=主版本号,b2=次版本号,b3=SP主版本号,b4=SP次版本号;[b1=4,b2=0] - Windows NT 4.0[b1=5,b2=0] - Windows 2000[b1=5,b2=1] - Windows XP[b1=5,b2=2] - Windows Server 2003[b1=6,b2=0] - Windows Vista 或 Windows Server 2008[b1=6,b2=1] - Windows 7 或 Windows Server 2008 R2[b1=6,b2=2] - Windows 8 或 Windows Server 2012例:n = RunSys.GetOSVersion()b1= n/&H1000000b2= (n/&H10000) And &HFFb3= (n/&H100) And &HFFb4= n And &HFF55. 得到操作系统的名称:s=RunSys.GetOSName()□返回字符串,内容可能为"Windows 2000","Windows XP","Windows Server 2003","Windows 7","Windows 8","Windows Server 2008"等;56. 通知ADSL数据服务器主动发送变量包数据:RunSys.SendVarPackageFrmAdslSrv n1,n2□ n1为模拟变量数量(0-4096),n2为开关变量字节数(0-512)例(通知发送4个模拟变量,40个开关变量):RunSys.SendVarPackageFrmAdslSrv 4,557. 得到某报警当前状态:m=RunSys.GetAlarmStatus(n)□ n,报警编号(1-30000)□ m,报警状态,0=无报警,1=新报警,2=确认报警,3=恢复报警;例:m=RunSys.GetAlarmStatus(1)58. 得到处于某报警状态下的报警数量:n=RunSys.GetAlarmStatusCount(m)□ m,报警状态,0=无报警,1=新报警,2=确认报警,3=恢复报警;□ n,报警数量(1-30000)例:n=RunSys.GetAlarmStatusCount(1)59. 设置某类型变量中,变量名称符合条件的所有变量:RunSys.SetAllVarValue varType,varName,varValue□ varType, 变量类型(2=AO,3=AR,5=DO,6=DR,7=VA,8=VD,9=VT);□ varName, 变量名称条件,须在开始|中间|结尾包含通配符(*),例如"*_v1"和"P1_*";□ varValue,变量值;例:RunSys.SetAllVarValue VA,"*VA1",100RunSys.SetAllVarValue VA,"P1*",100RunSys.SetAllVarValue VA,"P1*VA1",100RunSys.SetAllVarValue VT,"*_VT1","test"60. 得到运行数据库函数错误代码:n=RunSys.GetErrorCode()n=0(成功),n>0(错误);61. 打开时间段配方管理窗口:RunSys.OpenTimeAreaRecipe fnfn为配方模板文件,具体格式及使用参考技术附件B2006062. 得到组态软件安装路径:path=RunSys.GetInstallPath()二、动态画面1. 打开并动态显示某画面文件:RunSys.OpenPicture FileName□ FileName为画面文件名;例:RunSys.OpenPicture "Draw1.drw"2. 关闭正在运行的某画面文件:RunSys.ClosePicture FileName□ FileName为画面文件名;例:RunSys.ClosePicture "Draw1.drw"3. 打印当前显示画面:RunSys.PrintCurrentPicture4. 浏览当前显示画面:RunSys.PreviewCurrentPicture5. 把当前显示画面存为位图文件,存储到<历史画面>目录下,文件名为计算机当前时间:RunSys.SaveCurrentPictureToBmp6. 允许向某个窗口发送WM_COPYDATA[dwData=10000]画面更新的消息:Picture.EnableSendUpdateMsg WindowTitle□ WindowTitle为接收消息的窗口标题;□不适用于子画面;□消息内容为17个字节,分别为画面窗口编号(1字节0-10)、被更新部分的左、上、右、底屏幕坐标,各为4个字节;例: Picture.EnableSendUpdateMsg "消息窗口标题"三、实时报表1. 实时报表任务被启动情况下,打印实时报表:RunSys.PrintDataReport FileName,0□ FileName指定报表的格式文件;例:RunSys.PrintDataReport "p1.rpt",02. 实时报表任务被启动情况下,浏览实时报表:RunSys.PreviewDataReport FileName,0□ FileName指定报表的格式文件;例:RunSys.PreviewDataReport "p1.rpt",03. 实时报表任务被启动情况下,输出实时报表内容到Excel文件:RunSys.DataReportToExcelFile FileName,0□ FileName指定报表的格式文件;Excel文件名称为当前时间;例:RunSys.DataReportToExcelFile "",0四、变量报警。
仓管总结之数据分析与报表制作
仓管总结之数据分析与报表制作一、绪论近年来,随着公司业务的快速发展,仓库管理工作量不断增加,对于数据的分析与报表制作也日益重要。
本文旨在总结我在数据分析与报表制作方面的工作经验,分享经验与教训,提升工作效率。
二、数据分析1. 数据收集与整理为了进行有效的数据分析,首先需要收集相关的数据。
我在工作中通过与仓储系统对接,及时获得仓库的各项数据指标,包括入库数量、出库数量、库存周转率等。
同时,注意数据的准确性和完整性,及时纠正错误数据,确保分析的结果准确可靠。
2. 数据挖掘与处理在得到原始数据之后,需要进行数据挖掘和处理,以发现其中的规律和趋势。
我通过使用Excel等工具,进行数据筛选、排序、过滤等操作,提取关键信息。
同时,运用数据透视表、图表等功能,直观地呈现数据分析结果,帮助管理层做出决策。
3. 数据分析方法为了更深入地分析数据,我学习了一些常用的数据分析方法,如趋势分析、比较分析、差异分析等。
通过运用这些方法,我能够从不同角度解读数据,找出其中的问题与机遇,为仓库管理提供指导意见。
三、报表制作1. 报表需求分析在制作报表之前,我首先跟业务部门进行沟通,了解他们的需求和关注点。
通过与他们紧密合作,我能够制作出符合实际需要的报表,准确反映仓库管理的情况。
2. 报表设计与优化报表的设计需要考虑的因素很多,如数据清晰、布局合理、风格一致等。
我注重报表的可读性和易用性,并不断进行优化,确保报表信息的准确传达和管理层的方便使用。
3. 报表自动化为了提高工作效率,我尝试使用相关软件工具进行报表的自动化制作。
通过编写宏、公式等,我成功实现了一些报表的自动生成,大大减轻了手工制作报表的工作量和时间。
四、工作总结与改进1. 工作总结通过数据分析与报表制作,我深刻认识到数据的重要性和价值。
有效的数据分析能够帮助公司及时发现和解决问题,提高仓库管理效率。
同时,精心制作的报表能够提供可靠和直观的数据支持,为管理层决策提供科学依据。
杰控组态报表
杰控组态报表杰控组态指导手册前提:计算机已安装杰控组态软件(下面按FameView7.6为例)一、新建工程计算机安装好杰控软件后,桌面上会出现如图杰控快捷方式,双击打开软件出现下图窗口:点击窗口左上角如图按钮出现下图输入项目名称等信息,点击“确定”,新建项目成功。
二、画面组态在如图左侧树结构菜单栏选中“显示画面”,右侧出现“画面管理”,“显示属性”,“画面制作”双击“画面制作”即可进入画面编辑环境在弹出窗口中填写新建第一张画面的基本信息举例:画面名称“PIC1”画面尺寸“600*400”点击确认,进入画面菜单和工具说明请参考附件“08.画面制作”右键画面,选择画面属性,可对画面基本信息进行修改下面即可在画面根据提供的PID图进行所需流程图组态。
三、变量组态返回主界面,选择“设备通讯”,双击右侧“安装驱动”根据具体工程要求选择正确的驱动品牌和通讯方式,点击安装双击“启动驱动”,给需要启动的驱动打勾双击“设备数据表”,根据编程师提供的变量地址表预估和合理分配所需变量类型和数目。
返回主界面,选择“运行数据库”,根据要求在右侧不同的变量类型中建立变量以DI为例,双击“DI-开关只读变量”点击“新建”填写变量详细信息即可四、动画组态双击点开属性窗口这边根据你需要做动画连接,比如可见性选择条件a=b,连接变量,写下常数等于1(也就是在1的状态下可见),详情请参考附件“08.画面制作”五、报警组态,在建点的时候有需要报警的在报警一栏打上勾在扩展应用里选择变量报警,进行归档一个个添加归档进去,完成之后回到画面窗口,新建一个报警画面,拖动报警控件在组件箱变量报表,详情请参考附件“10.变量报警”六、趋势曲线,在组件箱,曲线显示里,实时曲线,拖动到曲线画面中,出现下面对话框点击实时曲线定义,把模拟量变量添加进去,详情请参考附件“11.历史数据”七、报表1.新建变量2.存档变量3.企业管理器——(Local)——数据库——新建数据库(宣化数据库名字是UserDateBase)——表——新建表4.实时报表——定义实时报表数据(有多少模拟量就定义多少数值)5.编辑报表格式6.新建报表,启动报表设计器7.下一步直接点DONE8.选择新建报表(直接点白的创建)9.从“Choose an Expert”中选择<Standard>标准报表格式; 10.出现下面对话框,选择数据库来源:11.必须选择“SQL/ODBC”数据源,即执行<SQL/ODBC>按钮,出现对话框:12.选择USER Date Source13.执行<OK>按钮,出现下面对话框来选择数据表:14.选择你所建的表名,添加ADD15.添加完之后关闭,直接下一步,将表里的字段添加(ADD)到Report Filds,下一步,点击Preview Report,进入报表编辑模式(Design)设计报表格式,点击(Preview)预览样式 16.设计好后保存,在默认路径下,改下文件名,后缀名(rpt)17.确定后,在编辑报表格式里可以看到该报表18.数据库——编辑数据库连接19.新建20.保存时间,触发周期改一下(根据要求),选择数据表(自己新建的表)21.选择字段名称(每个字段都要添加)22.应用数据连接,回到主画画(你可以把子画面往下拖),选择报表打印按钮,23.选择报表打印按钮后在画面上拖动出现下面画面,对象名称改一下格式文件选择你设计的报表选择时间字段,出现下面对话框,选择Fame View User Date Sourse,选择你所建的表里日期字段新建好之后,回到主画面,即页眉,右击选择画面脚本编辑,选择报表按钮,双击Show Window选择你刚刚选择报表按钮时起的对象名称,保存选择在组建箱里选择画面编程,动态菜单,选择一个动态菜单,下面可以选择一个空的添加,右边写上相应的描述,任务选择处理脚本选择报表按钮,SHOW Window双击,选择对象名称,保存报表详情请参考附件“12.实时报表”。
杰控脚本合集
杰控脚本合集一、运行数据库1. 打开运行数据库:bValue=RunSys.OpenDatabase(tm)如果仅读取运行数据库内容,可不打开运行数据库;□ tm为超时时间,单位为毫秒,取值范围在1000-5000之间为宜,取值18888时自动根据需求打开运行数据库;□ bValue为返回值,在超时时间内,数据库没被成功打开,返回0,否则返回1;例: n=RunSys.OpenDatabase(3000)If n=1 Then......RunSys.CloseDatabaseEnd If2. 关闭被打开的运行数据库:RunSys.CloseDatabase□与OpenDatabase配合使用;例: n=RunSys.OpenDatabase(1000)If n=1 Then......RunSys.CloseDatabaseEnd If3. 得到运行数据库中某变量的数值或状态:VarValue=RunSys.GetVarValue(VarType,VarName,VarIndex)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue,返回变量值或状态,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;返回值为-1211.1024时,表示函数执行错误;例1: x=RunSys.GetVarValue(AI,"AI1",-1)例2: x=RunSys.GetVarValue(AI,"",10)例3: varIndex=RunSys.GetVarIndexFromVarName(AI,"VAR1")x=RunSys.GetVarValue(AI,"",varIndex)4. 得到某变量最后变化前的数值或状态:VarValue=RunSys.GetVarLastValue(VarType,VarName,VarIndex)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue,返回变量值或状态,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;返回值为-1211.1024时,表示函数执行错误;例: x=RunSys.GetVarLastValue(AI,"AI1",-1)5. 修改某变量的数值或状态:RunSys.SetVarValue VarType,VarName,VarIndex,VarValue□ VarType, 变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,则通过变量名称进行操作;□ VarValue为要修改的数值或状态值,当VarTye为AO/AR/VA时为浮点数值,当VarTye为DO/DR/VD时为0/1状态值;例1: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarValue AR,"AR1",-1,100RunSys.CloseDatabaseEnd If例2: n=RunSys.OpenDatabase(1000)If n=1 ThenvarIndex=RunSys.GetVarIndexFromVarName(AR,"AR1")RunSys.SetVarValue AR,"",varIndex,100RunSys.CloseDatabaseEnd If例3: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarValue DR,"DR1",-1,1RunSys.CloseDatabaseEnd If6. 弹出窗口进行数值输入,并修改某变量数值或状态;RunSys.SetVarValueEx VarType,VarName,VarIndex□ VarType, 变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;例: RunSys.SetVarValueEx AR,"AR1",-17. 得到某VT变量的文本内容:VarValue=RunSys.GetVttext(VarName,VarIndex)□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde得到变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ VarValue为返回文本内容;例: s=RunSys.GetVtText("VT1",-1)8. 修改某VT变量的文本内容:RunSys.SetVTtext VarName,VarIndex,VarValue□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ VarValue为修改文本内容;例1: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVTtext "VT1",-1,"ABC"RunSys.CloseDatabaseEnd If例2: n=RunSys.OpenDatabase(1000)If n=1 ThenvarIndex=RunSys.GetVarIndexFromVarName(VT,"VT1")RunSys.SetVTtext "",varIndex,"ABC"RunSys.CloseDatabaseEnd If例3: n=RunSys.OpenDatabase(1000)If n=1 Thens=RunSys.GetVtText("VT2",-1)RunSys.SetVTtext "VT1",-1,sRunSys.CloseDatabaseEnd If9. 弹出窗口进行文本输入,并修改某VT变量文本内容;RunSys.SetVTtextEx VarName,VarIndex□ VarName, 变量名称,最大字符长度20;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarIndex修改变量值,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;例: RunSys.SetVTtextEx "VT1",-110. 直接从设备数据表中得到数值:x=RunSys.GetValueFromDevTable(DevNo,ElementNo,DataType,DataFmt)□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ DataType, 数据类型:1 = Byte;2 = Word;3 = DWord;4 = DDWord;11 = B2W(x2,x1);12 = B2D(x4,x3,x2,x1);13 = B2W(x1,x2);14 = B2D(x1,x2,x3,x4);15 = W2D(x2,x1);16 = W2D(x1,x2);17 = W2W(xh,xl);18 = B2D(x3,x4,x1,x2);19 = B2D(x2,x1,x4,x3);20 = W2D(x12,x11,x22,x21);21 = W2D(x22,x21,x12,x11);22 = D2D(x(4,3,2,1));23 = D2D(x(3,4,1,2));24 = D2D(x(2,1,4,3));□ DataFmt,数据格式:1 = 整数;2 = 无符号整数;3 = 浮点数;4 = 最高位为符号位的整数;例: x=RunSys.GetValueFromDevTable(2,1,1,1)11. 直接修改设备数据表中数值:RunSys.SetValueToDevTable DevNo,ElementNo,DataType,DataFmt,Value□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ DataType, 数据类型:1 = Byte;2 = Word;3 = DWord;4 = DDWord;11 = B2W(x2,x1);12 = B2D(x4,x3,x2,x1);13 = B2W(x1,x2);14 = B2D(x1,x2,x3,x4);15 = W2D(x2,x1);16 = W2D(x1,x2);17 = W2W(xh,xl);18 = B2D(x3,x4,x1,x2);19 = B2D(x2,x1,x4,x3);20 = W2D(x12,x11,x22,x21);21 = W2D(x22,x21,x12,x11);22 = D2D(x(4,3,2,1));23 = D2D(x(3,4,1,2));24 = D2D(x(2,1,4,3));□ DataFmt,数据格式:1 = 整数;2 = 无符号整数;3 = 浮点数;□ Value,修改值;例: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetValueToDevTable 2,0,1,1,xRunSys.CloseDatabaseEnd If12. 直接从设备数据表中得到某位状态:bValue=RunSys.GetStatusFromDevTable(DevNo,ElementNo,BitNo,DataType) □ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ BitNo, 位号(0-7/15/31);□ DataType, 单元类型(1=Byte,2=Word,3=DWord);□ bValue, 返回状态(0/1);例: x=RunSys.GetStatusFromDevTable(2,1,10,1)13. 直接修改设备数据表某状态位:RunSys.SetStatusToDevTable DevNo,ElementNo,BitNo,DataType,n□ DevNo, 设备号(1-2000);□ ElementNo,单元号(0-255/511/1023);□ BitNo, 位号(0-7/15/31);□ DataType, 单元类型(1=Byte/2=Word/3=DWord);□ n, 修改值(0/1/2),n=2时进行取反操作;例: n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetStatusToDevTable 2,1,10,1,1RunSys.CloseDatabaseEnd If14. 启动/停止图形对象动态边框颜色变化:ShapeObj.EnableDynBorderColor objName,status□ objName为对象名称;□ status=0时停止动态颜色变化,status=1时启动动态颜色变化;例:ShapeObj.EnableDynBorderColor "AAA",115. 设置图形对象动态边框颜色变化所依据的变量:ShapeObj.SetVarForDynBorderColor objName,varType,varName□ objName为对象名称;□ varType为变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ varName为变量名称;例:ShapeObj.SetVarForDynBorderColor "AAA",AI,"AI1"16. 根据变量类型和名称得到变量索引号:varIndex=Runsys.GetVarIndexFromVarName(VarType,VarName)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,VT=9); □ VarName, 变量名称,最大字符长度20;□ varIndex,变量索引号,错误时返回-1,否则返回大于0的值;例: varIndex=RunSys.GetVarIndexFromVarName(AI,"AI1")17. 激活某变量报警:RunSys.EnableVarAlarm VarType,VarName□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.EnableVarAlarm AI,"AI1"RunSys.CloseDatabaseEnd If18. 屏蔽某变量报警:RunSys.DisableVarAlarm VarType,VarName□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.DisableVarAlarm AI,"AI1"rRunSys.CloseDatabaseEnd If19.设置某变量的报警标志:RunSys.SetVarAlarmId VarType,VarName,AlarmId;□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,最大字符长度20,支持*通配符,操作成批变量,*必须为最后字符;□ AlarmId,报警标志,AlarmId=1允许报警,AlarmId=0禁止报警;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarAlarmId AI,"AI1",0RunSys.SetVarAlarmId AI,"AI2",1RunSys.SetVarAlarmId AI,"MT*",0RunSys.CloseDatabaseEnd If20. 激活某变量更新:RunSys.EnableVarScan VarType,VarName□VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,Vt=9,CA=10,DOC=15);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.EnableVarScan AI,"AI1"RunSys.CloseDatabaseEnd If21. 屏蔽某变量更新:RunSys.DisableVarScan VarType,VarName□VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6,VA=7,VD=8,Vt=9,CA=10,DOC=15);□ VarName,变量名称,最大字符长度20;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.DisableVarScan AI,"AI1"RunSys.CloseDatabaseEnd If22. 更改某模拟变量对应设备地址:RunSys.SetAXDevAddress VarType,VarName,VarIndex,DevNo,ElementNo□ VarType, 变量类型(1=AI、2=AQ、3=AR);□ VarName, 变量名称;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde操作变量,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ DevNo,新设备号(1-2000),1=D1、2=D2、...□ ElementNo,新单元号(0-1023);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetAXDevAddress AI,"AI1",-1,2,10RunSys.CloseDatabaseEnd If23. 更改某开关变量对应设备地址:RunSys.SetDXDevAddressVarType,VarName,VarIndex,DevNo,ElementNo,BitNo□ VarType, 变量类型(4=DI、5=DQ、6=DR);□ VarName, 变量名称;□ VarIndex,变量索引号,如果VarIndex>=0,则VarName不起作用,直接通过VarInde操作变量,可加快访问速度;通过函数GetVarIndexFromVarName可得到变量索引号,也可通过查看运行数据库而得到变量索引号;当VarIndex<0时,为无效变量索引号,通过变量名称进行操作;□ DevNo,新设备号(1-2000),1=D1、2=D2、...□ ElementNo,新单元号(0-1023);□ BitNo,新位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDXDevAddress DI,"DI1",-1,2,10,2RunSys.CloseDatabaseEnd If24. 弹出窗口,在线修改某变量报警参数:RunSys.SetVarAlarm VarType,VarName,-1□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DQ=5,DR=6);□ VarName,变量名称,如果VarName为空,则显示对话框选择而得到变量名;例:RunSys.SetVarAlarm AI,"AI1",-1RunSys.SetVarAlarm AI,"",-125. 得到某模拟变量报警设定值:fltValue=RunSys.GetVarAlarmValue(VarType,VarName,VarIndex,ValueType) □ VarType,变量类型(AI=1,AO=2,AR=3);□ VarName,变量名称;□ ValueType=1,返回低限报警值;ValueType=2,返回高限报警值;ValueType=3,返回超低限报警值;ValueType=4,返回超高限报警值;ValueType=5,返回增幅报警值;ValueType=6,返回降幅报警值;ValueType=7,返回报警死区'ValueType=8,返回报警允许状态;例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarAlarmValue(AI,"AI1",-1,2)RunSys.CloseDatabaseEnd If26. 修改某模拟变量报警设定值:RunSys.SetVarAlarm VarType,VarName,VarIndex,ValueType,AlarmValue □ VarType,变量类型(AI=1,AO=2,AR=3);□ VarName,变量名称;□ ValueType=1/11,修改低限报警值;ValueType=2/12,修改高限报警值;ValueType=3/13,修改超低限报警值;ValueType=4/14,修改超高限报警值;ValueType=5/15,修改增幅报警值;ValueType=6/16,修改降幅报警值;ValueType=7/17,修改报警死区'ValueType=8/18,修改报警允许状态;当ValueType>10,可存储到运行数据库中,否则下次启动时恢复到初值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarAlarmValue AI,"AI1",-1,2,100.00RunSys.CloseDatabaseEnd If27. 得到某模拟变量量程设定值:x=RunSys.GetVarRangeValue(VarType,VarName,-1,RangeType)□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7);□ VarName,变量名称;□ RangeType=1,返回变量低限;RangeType=2,返回变量高限;RangeType=3,返回最小实际值;RangeType=4,返回最大实际值;例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarRangeValue(AI,"AI1",-1,2)RunSys.CloseDatabaseEnd If28. 修改模拟变量或存档变量的某量程设定值:RunSys.SetVarRangeValue VarType,VarName,-1,RangeType,RangeValue □ VarType,变量类型(AI=1,AO=2,AR=3,VA=7,DOC=15);□ VarName,变量名称;□ RangeType=1,修改变量低限;RangeType=2,修改变量高限;RangeType=3,修改最小实际值;RangeType=4,修改最大实际值;RunSys.SetVarRangeValue AI,"AI1",-1,2,10029. 弹出窗口,修改模拟变量或存档变量的量程值:RunSys.SetVarRange VarType,VarName,-1□ VarType,变量类型(AI=1,AO=2,AR=3,DOC=15);□ VarName,变量名称,如果VarName为空,通过选择对话框得到变量名;例:RunSys.SetVarRange AI,"AI1",-130. 修改模拟变量或存档变量全部量程值:RunSys.SetVarRangeEx VarType,VarName,Vl,Vh,Vmin,Vmax,ToSave□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7,DOC=15);□ VarName,变量名称;□ Vl,变量低限,Vh变量高限;Vmin,最小实际值,Vmax最大实际值;□ ToSave=1刷新到组态数据库;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarRangeEx AI,"AI1",0,300,0,1000,0RunSys.CloseDatabaseEnd If31. 弹出窗口,显示指定文本内容,维持数秒关闭;RunSys.ShowMsgWnd msgText,n□ msgText,显示提示文本,如文本内容为空,则关闭正显示的窗口;□ n,信息窗口显示停留时间,以秒为单位(36000>n>0),否则缺省为10秒;例:RunSys.ShowMsgWnd "启动设备",532. 弹出窗口,允许输入口令样式文本,并存储到某VT变量:RunSys.ShowPasswordWnd Title,VarName,-1□ Title, 窗口标题文本;□ VarName,VT变量名称;例:RunSys.ShowPasswordWnd "请输入口令:","VT1",-133. 弹出窗口,允许选择日期时间,并保存到某VT变量:RunSys.ShowDateTimeWnd VarName,-1□ VarName,VT变量名称;例:RunSys.ShowDateTimeWnd "VT1",-134. 屏蔽/激活Windows任务切换功能(包括任务栏、Alt+Tab、任务管理器等): RunSys.TaskKeyMgr bValue□ bValue=0屏蔽任务切换,bValue=1激活任务切换;例:RunSys.TaskKeyMgr 135. 开关某变量,即变量值为0则置为1,变量值为1则置为0:RunSys.VarOnOff VarType,VarName,-1□ VarType,变量类型(AO=2,AR=3,DQ=5,DR=6,VA=7,VD=8);□ VarName,变量名称;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.VarOnOff DR,"DR1",-1RunSys.CloseDatabaseEnd If36. 增加某模拟变量值:RunSys.Var_Add_n VarType,VarName,-1,n□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ n, 增加值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.Var_Add_n AR,"AR1",-1,2RunSys.CloseDatabaseEnd If37. 减少某模拟变量值:RunSys.Var_Sub_n VarType,VarName,VarIndex,n□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ n, 减少值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.Var_Sub_n AR,"AR1",-1,2RunSys.CloseDatabaseEnd If38. 脉冲某变量,即把变量置为1或某值,2-3秒后再复为0:RunSys.VarPulse VarType,VarName,-1RunSys.VarPulseEx VarType,VarName,-1,VarValue□ VarType, 变量类型(AO=2,AR=3,VA=7、DQ=5、DR=7、VD=8);□ VarName, 变量名称;□ VarValue,变量值,适用于AO/AR/VA变量;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.VarPulse DR,"DR1",-1RunSys.VarPulseEx AR,"AR1",-1,100RunSys.CloseDatabaseEnd If39. 把某设备号内容拷贝到其他某设备号:RunSys.CopyDevno n,a,n1,a1,l□把设备号n1(1-2000)中从a1(0-1023)开始的l个字节数据,拷贝到设备号n(1-2000)中从a(0-1023)开始的地方;□通过SetCopyDevnoMode函数可设置设备号拷贝的字节转换方式:RunSys.SetCopyDevnoMode modemode=0,不处理x->x;mode=1,x(1,2) -> x(2,1);mode=2,x(1,2,3,4) -> x(4,3,2,1);mode=3,x(1,2,3,4) -> x(3,4,1,2);mode=4,x(1,2,3,4) -> x(2,1,4,3);mode=5,x(1,2,3,4,5,6,7,8) -> x(2,1,4,3,6,5,8,7); mode=6,x(1,2,3,4,5,6,7,8) -> x(8,7,6,5,4,3,2,1); mode=7,x(1,2,3,4,5,6,7,8) -> x(7,8,5,6,3,4,1,2); mode=8,x(1,2,3,4,5,6,7,8) -> x(5,6,7,8,1,2,3,4); mode=9,x(1,2,3,4,5,6,7,8) -> x(6,5,8,7,2,1,4,3);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetCopyDevnoMode 2RunSys.CopyDevno 2,0,3,0,100RunSys.CloseDatabaseEnd If40. 使脚本延时某段时间:RunSys.Sleep n□ n为延时毫秒数,取值为30-60000;例:RunSys.Sleep 3041. 得到某模拟无符号整形变量中某位状态:bValue=RunSys.GetVarBit(VarType,VarName,BitNo)□ VarType,变量类型(AI=1,AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 Thenx=RunSys.GetVarBit(AR,"AR1",1)RunSys.CloseDatabaseEnd If42. 置位某模拟无符号整形变量中某位状态为1:RunSys.SetVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If43. 复位某模拟无符号整形变量中某位的状态为0:RunSys.ResetVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.ResetVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If44. 取反某模拟无符号整形变量中某位的状态:RunSys.OnoffVarBit VarType,VarName,BitNo□ VarType,变量类型(AO=2,AR=3,VA=7);□ VarName,变量名称;□ BitNo, 位号(0-31);例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.OnoffVarBit AR,"AR1",1RunSys.CloseDatabaseEnd If45. 设置具有[动态扫描级别]属性设备号的扫描级别:RunSys.SetDevnoScanclass m,n□ m,设备号(2-2000);□ n,扫描级别(1-100),n越小扫描速度越快;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDevnoScanclass 2,1RunSys.CloseDatabaseEnd If46. 向事件信息系统发送信息文本:RunSys.SendDebugInfo s□ s,要发送文本内容;例:RunSys.SendDebugInfo ""47. 得到某变量最近发生变化的时刻,即变化时标:strValue=RunSys.GetVarTimeStamp(VarType,VarName)□ VarType, 变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName, 变量名称;□ strValue,返回时间串,格式为2008-08-08 12:11:00,错误时返回空字符串;例:n=RunSys.OpenDatabase(1000)If n=1 ThenstrValue=RunSys.GetVarTimeStamp(AI,"AI1")RunSys.CloseDatabaseEnd If48. 得到某变量发生改变的时刻,距当前时间的秒数:lValue=RunSys.GetVarTimeStampEx(VarType,VarName)□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName,变量名称;□ lValue, 整数返回值,错误时返回-1;例:lValue=RunSys.GetVarTimeStampEx(AI,"AI1")49. 得到某变量最近1次改变与上次发生改变之间的秒间隔:lValue=RunSys.GetVarTimeSpan(VarType,VarName)□ VarType,变量类型(AI=1,AO=2,AR=3,DI=4,DO=5,DR=6,VA=7,VD=8);□ VarName,变量名称;□ lValue, 整数返回值,错误时返回-1;例:lValue=RunSys.GetVarTimeSpan(AI,"AI1")50. 打开表格配方管理窗口;RunSys.OpenTableRecipexpos,ypos,toOpen,toUpload,toDownload,toSave,toSaveas,defaultRecipe □ xpos,ypos, 定位配方窗口的位置,分别为窗口的左上角坐标;□ toOpen=1, 允许打开配方列表;□ toUpload=1, 允许上载配方;□ toDownload=1, 允许下载配方;□ toSave=1, 允许保存配方;□ toSaveas=1, 允许另存配方;□ defaultRecipe,缺省配方名称;例:RunSys.OpenTableRecipe 100,100,1,1,1,1,1,""51. 把设备表中某设备号的某段字节单元,批量设置为指定内容:RunSys.SetDevTableByte devNo,startByte,endByte,setValue□ devNo, 设备号[1-2000];□ startByte,开始字节单元号[0-1023];□ endByte, 结束字节单元号[0-1023];□ setValue, 修改值,有3种数值类型如果setValue为0-255整数,则所有单元修改为相同值;如果setValue为以'STR:'开始的字符串,则把随后的字符串拷贝到连续单元中,如"STR:ABCDefg";如果setValue为以'HEX:'开始的字符串,则把随后的字符串转换为16进制再拷贝到连续单元中,如"HEX:01 03 00 00";例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetDevTableByte 1,0,100,2RunSys.SetDevTableByte 2,0,5,"STR:abcdef"RunSys.SetDevTableByte 3,0,7,"HEX:01 03 00 00 00 01 84 0A" RunSys.CloseDatabaseEnd If52. 把设备表中连续的多个设备号的某字节单元,批量设置为指定内容:RunSys.SetBatchDevnoBytestartDevno,endDevno,byteNo,setValue,setMode□ startDevno,开始设备号[1-2000];□ endDevno, 结束设备号[1-2000];□ byteNo, 字节单元号[0-1023];□ setValue, 修改值;□ setMode, 6种修改方式:setMode=0,使字节单元内容等于(=)修改值;setMode=1,使字节单元内容或(Or)修改值;setMode=2,使字节单元内容与(And)修改值;setMode=3,使字节单元内容异或(Xor)修改值;setMode=4,使字节单元内容加(+)修改值;setMode=5,使字节单元内容减(-)修改值;例:n=RunSys.OpenDatabase(1000)If n=1 ThenRunSys.SetBatchDevnoByte 2,10,0,1,0RunSys.CloseDatabaseEnd If53. 得到自开机以来经历的毫秒数;longValue=RunSys.GetTickCount()例:x=RunSys.GetTickCount()54. 得到操作系统的版本信息:n=RunSys.GetOSVersion()□ n为4字节长度的整数,4个字节分别代表:b1=主版本号,b2=次版本号,b3=SP主版本号,b4=SP次版本号;[b1=4,b2=0] - Windows NT 4.0[b1=5,b2=0] - Windows 2000[b1=5,b2=1] - Windows XP[b1=5,b2=2] - Windows Server 2003[b1=6,b2=0] - Windows Vista 或 Windows Server 2008[b1=6,b2=1] - Windows 7 或 Windows Server 2008 R2[b1=6,b2=2] - Windows 8 或 Windows Server 2012例:n = RunSys.GetOSVersion()b1= n/&H1000000b2= (n/&H10000) And &HFFb3= (n/&H100) And &HFFb4= n And &HFF55. 得到操作系统的名称:s=RunSys.GetOSName()□返回字符串,内容可能为"Windows 2000","Windows XP","Windows Server 2003","Windows 7","Windows 8","Windows Server 2008"等;56. 通知ADSL数据服务器主动发送变量包数据:RunSys.SendVarPackageFrmAdslSrv n1,n2□ n1为模拟变量数量(0-4096),n2为开关变量字节数(0-512)例(通知发送4个模拟变量,40个开关变量):RunSys.SendVarPackageFrmAdslSrv 4,557. 得到某报警当前状态:m=RunSys.GetAlarmStatus(n)□ n,报警编号(1-30000)□ m,报警状态,0=无报警,1=新报警,2=确认报警,3=恢复报警;例:m=RunSys.GetAlarmStatus(1)58. 得到处于某报警状态下的报警数量:n=RunSys.GetAlarmStatusCount(m)□ m,报警状态,0=无报警,1=新报警,2=确认报警,3=恢复报警;□ n,报警数量(1-30000)例:n=RunSys.GetAlarmStatusCount(1)59. 设置某类型变量中,变量名称符合条件的所有变量:RunSys.SetAllVarValue varType,varName,varValue□ varType, 变量类型(2=AO,3=AR,5=DO,6=DR,7=VA,8=VD,9=VT);□ varName, 变量名称条件,须在开始|中间|结尾包含通配符(*),例如"*_v1"和"P1_*";□ varValue,变量值;例:RunSys.SetAllVarValue VA,"*VA1",100RunSys.SetAllVarValue VA,"P1*",100RunSys.SetAllVarValue VA,"P1*VA1",100RunSys.SetAllVarValue VT,"*_VT1","test"60. 得到运行数据库函数错误代码:n=RunSys.GetErrorCode()n=0(成功),n>0(错误);61. 打开时间段配方管理窗口:RunSys.OpenTimeAreaRecipe fnfn为配方模板文件,具体格式及使用参考技术附件B2006062. 得到组态软件安装路径:path=RunSys.GetInstallPath()二、动态画面1. 打开并动态显示某画面文件:RunSys.OpenPicture FileName□ FileName为画面文件名;例:RunSys.OpenPicture "Draw1.drw"2. 关闭正在运行的某画面文件:RunSys.ClosePicture FileName□ FileName为画面文件名;例:RunSys.ClosePicture "Draw1.drw"3. 打印当前显示画面:RunSys.PrintCurrentPicture4. 浏览当前显示画面:RunSys.PreviewCurrentPicture5. 把当前显示画面存为位图文件,存储到<历史画面>目录下,文件名为计算机当前时间:RunSys.SaveCurrentPictureToBmp6. 允许向某个窗口发送WM_COPYDATA[dwData=10000]画面更新的消息:Picture.EnableSendUpdateMsg WindowTitle□ WindowTitle为接收消息的窗口标题;□不适用于子画面;□消息内容为17个字节,分别为画面窗口编号(1字节0-10)、被更新部分的左、上、右、底屏幕坐标,各为4个字节;例: Picture.EnableSendUpdateMsg "消息窗口标题"三、实时报表1. 实时报表任务被启动情况下,打印实时报表:RunSys.PrintDataReport FileName,0□ FileName指定报表的格式文件;例:RunSys.PrintDataReport "p1.rpt",02. 实时报表任务被启动情况下,浏览实时报表:RunSys.PreviewDataReport FileName,0□ FileName指定报表的格式文件;例:RunSys.PreviewDataReport "p1.rpt",03. 实时报表任务被启动情况下,输出实时报表内容到Excel文件:RunSys.DataReportToExcelFile FileName,0□ FileName指定报表的格式文件;Excel文件名称为当前时间;例:RunSys.DataReportToExcelFile "",0四、变量报警。
通用数据质量控制系统数据库表设计
总参第六十三研究所“通用数据质量控制系统数据库详细设计”技术文件编号:2015-ZC63SKY-242015 年 8 月 26 日目录1 概述 (1)1.1 项目名称 (1)1.2 项目建设单位 (1)1.3 建设原则 (1)1.4 建设原则 (2)1.5 系统建设依据 (3)1.5.1 法律法规标准 (3)1.5.2 标准与规范 (4)2 数据库设计 (5)2.1 数据生命周期定义(4个表) (5)2.2 项目周期定义 (7)2.3 数据活动定义 (9)2.4 数据活动 (12)2.4.1 自定义活动 (12)2.4.2 数据活动管理 (14)2.4.2.1 数据采集(操作类) (14)2.4.2.2 数据清洗 (17)2.4.2.3 数据建模 (18)2.4.2.4 数据稽核(根据稽核规则接口传输相应参数) (19)2.4.2.5 数据迁移(sql条件查询注意) (20)2.4.2.6 数据导出 (21)2.4.2.7 数据入库 (21)2.4.2.8 数据拷贝信息录入 (22)2.4.2.9 数据归档 (22)2.4.2.10 数据销毁信息录入 (23)2.4.2.11 实施维护用例(产品维护类) (24)2.4.2.12 制定维护计划 (25)2.4.2.13 编写维护用例 (27)2.4.2.14 发布维护报告 (28)2.4.2.15 制定数据应用计划(应用类) (29)2.4.2.16 实施数据应用 (30)2.4.2.17 发布数据应用结果 (31)2.4.2.18 制定归档计划发布(归档管理类) (32)2.4.2.19 实施归档计划 (33)2.4.2.20 发布归档结果 (34)2.4.2.21 项目立项(项目类) (35)2.4.2.22 项目计划 (35)2.4.2.23 详细设计 (36)2.4.2.24 需求管理 (37)2.4.2.25 风险管理 (38)2.4.2.26 项目监控 (39)2.4.2.27 质量保证 (40)2.4.2.28 结项管理 (41)2.4.2.29 实施计划 (42)2.4.2.30 数据过滤(自定义类) (43)2.5 任务书评审 (44)2.6 我的待办 (45)2.7 元数据管理 (46)2.8 安全管理 (46)2.9 数据生命周期定义各个实例关系 ......................................... 错误!未定义书签。
杰控FameView入门之历史数据
11.历史数据编号 内容 页号11.1 设置历史数据库 11-111.2 存储历史数据 11-311.3 定义历史曲线查询方案 11-311.4 查询历史曲线 11-411.5 查询历史数据 11-811.1设置历史数据库历史数据存储在数据库中,对应的数据源为FameView DocData Source;系统可使用的数据源类型为Access、SQL Serve;¾Access数据库文件为DocData.mdb, SQL Server数据库文件为DocData.mdf;¾数据表的名称必须为DocData;¾数据库文件缺省存放于系统的根目录下,也可以通过修改数据源,把数据库文件存放于本地或远程计算机的任何地方;如果历史数据存储量较小,可以使用Access数据库,不需要另外安装其他软件;建议使用SQL Server作为历史数据库,但必须在本地计算机上安装SQL Server或MSDE/Express; 缺省历史数据库类型根据本地计算机安装环境决定:¾在安装组态系统时,将优先检测是否安装有SQL Server数据库;¾如果检测到SQL Server或MSDE/Express存在,则将数据源类型设置为SQL Server;¾如果检测SQL Server或MSDE/Express不存在,则将数据源类型设置为Microsoft Access; 可以手动修改数据源类型:¾选择“我的系统->设置”功能;¾执行<4.存储数据库类型>任务,出现下面的对话框:¾可以在Access和SQL Server数据库类型之间进行切换;¾如果选择SQL Server数据库,要设定其占用的最大内存,缺省值为128MB;因为Access数据库不支持自动收缩,所以选择Access作为历史数据库类型时,为防止数据库空间膨胀,应把数据库设置为定长数据库,即选择“历史数据”功能,执行<1.历史数据库属性>任务,出现下面对话框:¾计算需要存储的历史数据最大记录数n,选择“限定数据库记录数量”,并使最大记录数量=n;¾定长数据库的空间不会发生变化,最大记录数为n,存储数据时,先从开始记录存储,当存够n 条记录时,再回到开始记录;¾定长数据库的内容不能被删除;¾定长数据库也适用于SQL Server数据库;选用MSDE作为数据库,但数据库的文件尺寸不能超出1800M; 选用SQL Server作为数据库,但数据库的文件尺寸最好不要超出15000M;为防止数据库达到危险边界,应设定数据库的文件尺寸,即选择“历史数据”功能,执行<1.历史数据库属性>任务,出现下面对话框:¾如果使用MSDE数据库,建议的最大文件容量为1500MB,即1.5GB;¾如果使用SQL Server数据库,建议的最大文件容量为15000MB,即15GB;¾经测试,MSDE/SQL Server数据库,1M文件尺寸可存储8000条记录;¾如果文件尺寸达到设定值,即使存档没有到期,也会提前删除某些记录,来保障文件尺寸;如果没有选择定长数据库,则系统会每隔15分钟,检查并删除历史数据库中过时数据;经验证明,历史记录数量小于1000万条,能保障系统的正常运行;11.2 存储历史数据选择<运行数据库>功能,执行<DOC-存档变量>任务,新建存档变量TEST1,假设每隔1分钟保存1次,保存10天,保存的内容为VA.%RAND变量的数值,组态界面如下:系统启动后,TEST1存档变量把VA.%RAND的数值每隔1分钟存储到数据源FameView DocData Source 定义的数据库中;存档变量工作机制如下:¾通过起始时间和保存间隔,决定变量存储的时刻;¾如果不选择起始时间,则把系统启动的时间作为起始时间;¾保存间隔为0,则检测到变量值变化时进行存储,否则按照时间间隔进行存储;¾变量值超出最大最小值指示的范围时,不进行存储;¾由于通讯失败等原因导致变量值无效时,不进行存储;¾在历史数据参数界面中可以设定优化存储间隔(t):t取值范围为0-180秒,缺省设定为120秒;¾通过<存档差值>可以设定变量值的变化幅度(n),如果没有选择存档差值,则默认n=0;¾如果保存间隔大于优化存储间隔(t),保存间隔内,无论变量值是否变化,都进行存储;¾如果保存间隔不大于优化存储间隔(t),保存间隔内,变量值变化幅度小于n,不进行存储,变量值变化幅度不小于n,进行存储;¾但在优化存储间隔(t)内,因未满足变化条件一直未保存,则在此时刻会插入当前值;11.3 定义历史曲线查询方案通过定义查询方案可以把多个存档变量进行分组查询;选择“历史数据”功能,执行<2.历史数据查询方案>任务,出现下面对话框:通过以上界面进行组态,可以把存档数据进行分组;11.4 查询历史曲线在画面添加“曲线查询”按钮组件:通过组态对话框定义可查询曲线:¾为了查询方便,可预先设定好10条查询曲线变量;¾用鼠标双击表格某行,可以出现变量选择对话框,来选择存档变量(DOC);¾选中某行,按“Del”键,可以删除设定的存档变量;运行时执行按钮即可查询:¾执行<选择>按钮,能够出现选择菜单:¾缺省查询范围为30分钟;¾选择<10分钟查询>,以10分钟为范围进行查询;¾选择<30分钟查询>,以30分钟为范围进行查询;¾选择<1小时查询>,以1小时为范围进行查询;¾选择<24小时查询>,以24小时为范围进行查询;¾选择<自定义查询>,出现下面对话框;(1)通过<起始时间>、<长度>设置曲线的查询范围;(2)通过<分辨率>设置曲线的显示精度;(3)通过<参考曲线>可以显示某变量在不同时间段的2条比较曲线;(4)如果在<超时时间>规定的时间范围内没有查询到曲线,则返回;¾选择<刷新曲线>,手动更新曲线一次;¾选择<自动更新>,曲线每隔30秒更新一次;¾选择<百分比显示>,曲线的数值以百分比的方式显示,否则以实际值显示;¾选择<方波显示>,曲线以方波方式显示,否则以斜波显示;¾选择<背景颜色>,可修改曲线缺省的背景颜色;¾选择<曲线变量>, 出现对话框,选择需要显示的变量:¾选择<查询方案>, 出现下面对话框,通过查询方案,选择需要显示的变量:¾可以通过翻页按钮,进行前移、后移曲线,移动的时间间距为设定曲线的长度;通过脚本函数可预设查询变量:¾设定要查询的存档变量:SetDocVar ObjName,Var1,Var2,Var3,Var4,Var5,Var6,Var7,Var8,Var9,Var10 ¾ObjName为按钮组件名称,Var1-10为要查询的10个变量;¾例:DocCurveBtnXObj.SetDocVar "AAA","1#温度","","","","","","","","",""通过脚本函数可预查询参数:¾设置存档曲线查询窗口的缺省值,SetWindow ObjName,r,g,b,时间长度,分辨率,b1,b2,b3;¾ObjName为按钮组件的名称,r、g、b为窗口的背景颜色,时间长度以分钟为单位,分辨率以秒为单位,b1控制是否方波显示(0/1),b2控制是否显示网格(0/1),b3中的低4位控制是否使用<曲线定义、打印曲线、数据浏览、数据分析>按钮;¾例:DocCurveBtnXObj.SetWindow "AAA",192,192,192,10,10,1,1,&H0F通过脚本函数可预曲线颜色:¾改变某条曲线的颜色,SetCurveColor ObjName,n,r,g,b;¾ObjName为组件的名称,n为曲线的序号,取值1-10,101-110,分别代表曲线和附加曲线颜色,(r,g,b)为曲线颜色;¾例:DocCurveBtnObj.SetCurveColor "AAA",1,255,0,0通过脚本函数可设定曲线量程:¾强制曲线的量程范围,SetCurveRange ObjName,MinValue,MaxValue;¾ObjName为组件的名称,MinValue,MaxValue分别为最大最小值;¾例:DocCurveBtnObj.SetCurveRange "AAA",-100,1000通过脚本函数可设定曲线量程方式:¾设置y轴显示为百分比,SetPercentDisplay ObjName,n;¾ObjName为组件的名称,n=1显示为百分比,n=0显示为绝对值;¾例:DocCurveBtnObj.SetPercentDisplay "AAA",1如不希望通过执行按钮来查询数据曲线,而希望通过其他事件来执行查询;按照下列步骤来实现:(1)给数据曲线查询按钮组件命名:选中组件,点击右键,弹出菜单,选择执行“对象属性”中的“脚本名称”,给对象命名,例如BTNOBJ;(2)隐藏数据曲线查询按钮组件:选中组件,点击右键,弹出菜单,选择执行“隐藏对象”,使组件在运行画面显示时不可见:(3)编写脚本,然后被其他事件触发,例如在图标按钮中选择脚本执行,脚本内容如下:DocCurveBtnXObj.ShowWindow "BTNOBJ"可以通过脚本直接进行数据查询:Picture.ShowDocCurveWnd -1,-1,"","","","","","","","","",""11.5 查询历史数据通过历史数据组件,在画面中添加“数据查询”按钮组件:组态对话框如下:组件被运行后,会出现下面的查询界面:¾通过起始时间和时间长度选择时间段;¾如果查询成功,则查询到的数据被显示在表格中;您可以滚动表格来查看数据;¾通过翻页按钮,进行前翻、后翻数据,翻动的时间间距为设定时间长度;¾通过“浏览/打印”按钮,把已查询的数据输出到报表浏览窗口中;如果不希望执行组件按钮来查询存档数据,而希望通过其他事件来执行,按照下列步骤来实现:(1)给存档数据查询按钮组件命名:选中组件,点击右键,弹出菜单,选择执行“对象属性”中的“脚本名称”,给对象命名,例如BTNOBJ;(2)隐藏存档数据查询按钮组件:选中组件,点击右键,弹出菜单,选择执行“隐藏对象”,使组件在运行画面显示时不可见:(3)编写脚本,然后被其他事件触发,例如在图标按钮中选择脚本执行,脚本内容如下:DocDataBtnXObj.ShowWindow "BTNOBJ"可以通过脚本直接进行数据查询:Picture.ShowDocDataWnd -1,-1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26.数据库报表26.数据库报表
26.1水晶报表
选择数据库连接或批量数据库连接:
执行<制作报表格式>:
执行<新建>按钮,选择Crystal(水晶星)报表格式:
执行Cancel,直接取消;
执行菜单File->New:
执行<Standard>按钮:
执行<SQL/ODBC>按钮,选择ODBC数据源:
执行<Ok>按钮,继续选择报表使用的数据表或视图:
执行<Add>按钮,再执行<Done>按钮:
执行<Next>按钮,选择参与报表字段:
执行<Preview Report>按钮,完成报表初始化参数设置;
执行<Design>选项,继续设计基本报表格式:
[1].设计模式,即使报表内容有多条记录,也只设计一行;
[2].报表格式内容,通过对象表示,通过修改对象属性改变报表格式;
[3].改变字体,选中某对象,点击右键,执行弹出菜单<Change Font>;
[4].改变标题及文本内容,选中某标题对象,点击右键,执行从弹出菜单<Edit Text Field>;
[5].记录序号,执行菜单<Insert->Special Field->Record Number Field>命令;
[6].画表格线,执行菜单<Insert->Line>;
[7].添加图片,执行菜单<Insert->Picture>;
[8].添加字段,执行菜单<Insert->Database Field>;
[9].刷新数据库结构, 执行菜单<database->Verify Database>;
报表建立后,数据表结构发生变化,需通知报表格式;
[A].多选字段,执行菜单<Edit->Select Fields>,再选择字段并编辑;
[B].刷新报表内容,执行菜单<Report->Refresh Report Data>;
制作报表时,数据表记录内容发生变化,为浏览正常需通知报表格式;
基本报表格式设计完成:。