CitectHistorian报表制作_第1页
CitectHistorian报表制作_第2页
CitectHistorian报表制作_第3页
CitectHistorian报表制作_第4页
CitectHistorian报表制作_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一. 前言2二. Reporting Manager安装51.存储过程和函数52.安装过程6三. Reporting Manager配置9. Historian Reports部署管理92.数据库存储过程和函数21四.报表制作与发布28.报表开发28.报表发布51CitectHistorian报表制作一. 前言CitectHistorian具有二种数据存储机制1. 逢变则存:当数据变化超过设定的死区时,将数据存入到Historian的数据库中(默认)2. 定时上传:按照用户设定的时间,将数据存入到用户自定义的数据库中二种方式都有各自的优缺点逢变则存方式可以节省用户组态时间,数据结构高效合理

2、,缺点就是没有提供丰富的数据接口,方便用户提取数据制作报表。如用户想获取一组变量,无论这些数据点是否发生了变化,或者变化了多少次,按照用户设定的起始终止时间,时间间隔等输入条件,返回指定的记录集等。需要独立安装citect提供的报表工具,安装和修改一些SQL函数,才能完成定时上传需要用户根据报表的需求先预先定义好数据表的字段,设定定时时间,查询简单,方便报表的制作。缺点是报表需要的数据点多时,数据库创建和组态配置,调试运行麻烦。数据变化缓慢时浪费硬盘空间。所以,这篇文档最主要是侧重于citectHistorian逢变则存方式下,按照设定的时间间隔在指定的时间范围内搜索数据。方便用户制作最常见的

3、日,月,年等报表。以Citect安装程序自带的Example为例,将5个回路的SP,PV值共10个点为例,存入到Hisotiran的实时数据库中,然后制作日报表。如图1.1,将回路运行在自动模式下,手动修改SP值,则PV的值经过一段时间后稳定。图1.1将5个回路的SP,PV变量值分别存入Historian的Loop_SP,loop_PV文件夹中,如图1.2图1.2通过Historian的属性,可以获知绑定的SQL数据库,如下图1.3定义的为ExamleHisDB,图1.3在以后的报表示例,关联的数据则需要通过SLQ语句直接从上图的ExampleHisDB数据库中查询。在Historian数据库

4、中,如ExampleHisDB,最重要的3张数据表,如下图红色框Tags:用于存储用户选择的变量信息,并且为每一个变量分配一个ID.NumericSamples:所有模拟量变量的变量ID,实时值,时间戳,质量戳全部存储在该表中DigitalSamples: 所有开关量变量的变量ID,实时值,时间戳,质量戳全部存储在该表中所有报表数据的查询分析最本质还是基于这些关系表,如图1.4&1.5图1.4图1.5二. Reporting Manager安装1.存储过程和函数 打开开始菜单->程序->Microsoft SQLserver2008 R2->SQLserver Man

5、agement Studio 连接后找到Historian所对应的运行数据库,如ExampleHisDB,Citect在创建该数据库的同时,也创建了citect为客户提供的方便查询和分析的存储过程和函数 如上图,最重要的函数为dbo.ToDate以及dbo.ToBigInt,由于Historian 存储的时间戳是以纳秒级为单位的时间值,用户必须通过该函数的转换才能获取常规显示的YYYY-MM-DD HH:SS:TT格式,但是这些函数对于报表的制作显然还不够简洁和友好,需要大量的代码编程,所以需要安装工具-Report Manager2.安装过程打开Historian的安装文件目录,找到Extr

6、asReporting Manager,双击SetUp.exe 点击Accept,选择接受协议许可 等待安装文件就绪,就绪后进行下图2.2.3安装 点击Next,默认选择程序安装, 点击Next,继续安装 点击Next,继续安装点击Close,完成了Report Manager工具的全部安装三. Reporting Manager配置. Historian Reports部署管理打开配置工具,如下图进入Historian Reports 部署管理工具选择Historian Database,,右键选择功能菜单Register,如下图弹出数据库连接设置,手动输入需要部署的数据库信息 如上图3.1

7、.5:sqlserver:输入ip地址实例名默认采用集成的windows验证,也可以采用SQL的验证,那么则需要手动输入SQL里账户名和密码Database:从下拉框中选择需要部署的数据库,一次只能部署一个,如果想要部署多个数据库,则需要重复register的步骤然后点击OK按钮,则显示需要部署的数据库列表清单,如下图选择部署的数据库,然后点击右键,选择功能菜单Install Pakage弹出Value pack intalllation 设置,左键选择Histoiran standard Report pack 点击 Install 按钮,进行value Pack的安装安装成功后,如上图,会

8、显示 安装成功的提示信息。点击Close,关闭当前窗口,回到配置窗口选择 Report Packs->Historian Standard Report Pack,右键选择功能菜单 Deploy Reports,如下图弹出报表配置画面,如下图Report server:SQLserver报表服务配置里的机器名或者IP地址Reporting services URL:SQLserver报表服务配置里设置的web 服务器虚拟目录Data Source:需要部署发布的Historian数据库Reports Folder:该数据库部署在web服务器虚拟目录下的子目录名称(没有则自动创建)填写发布

9、部署信息,先参考SQLserver 数据库的报表服务配置,如下图弹出reporting service配置连接,服务器名称默认为本计算机名,点击连接连接成功后,弹出reporting service配置管理器选择web服务器URL,配置虚拟目录名称为CitHisReport,默认虚拟目录名称为:reportserver_实例名如Reportserver_VijeoHistorian(名字太长,不利于用户记忆)修改后,如红色部分,URL:http:/计算机名:端口号/web服务器虚拟目录点击应用,成功后则自动在SQL报表服务器中生成web网址选择数据库,配置SQL报表服务器存储的数据库点击更改数

10、据,弹出报表服务器数据库配置向导选择创建新的报表服务器数据库,点击下一步点击下一步点击下一步点击”下一步”点击”下一步”点击”完成”,然后退出SQLserver报表服务配置,回到Historian reports 部署工具Data Source 下拉框中选择New,弹出的对话框在Database Connection 下拉框中选择需要部署的Historian数据库ExampleHisDB然后点击Create,创建数据库部署的名称,回到Depoly report,点击按钮”Deploy”如上图3.1.36,信息提示部署成功,点击Close按钮,关闭部署工具然后关闭Reporting Manage

11、r,至此则完成了Reporting Manager的部署配置2.数据库存储过程和函数打开SQLserver 管理器,进入数据库配置 进入数据库后,打开Historian的数据库,如例:ExampleHisDB依次查看数据库->可编程性->存储过程 或者 函数,可以发现相对于图1.4&1.5安装reporting manager工具之前,数据库增加了很多存储过程以及函数,而这些都是通过reporting manager的安装,在该数据中增加了易于用户数据分析和查询的函数和存储过程,其中4个函数尤为重要。N1:函数->标量函数->ToDate将类型为bigint的时

12、间戳值转换为对应的可读时间Historian的NumericSamples图3.2.1则执行以下SQL语句,则可以获得采样值的采用时间SELECT TagID,dbo.ToDate(SampleDateTime)as SampleTime,SampleValue ,QualityID FROM NumericSamplesN2:函数->标量函数-> ToBigInt将用户指定的时间转换为bigint类型的时间戳,如用于查询某一段时间的值,需要将数据库的数据与指定的时间区域值进行比较,由于用户输入的时间一般都是字符串值,如果将数据库的时间戳转换为时间的字符串比较,则效率非常低下。而应

13、该是将用户输入的时间字符串转换为bigint类型后与数据库的时间戳字段比较,则提升效率。例如用户查询2013月2月24日这天的所有变量的值,则执行如下脚本declare StartTime bigintdeclare EndTime bigintset StartTime=dbo.ToBigInt('2013-02-24 00:00:00')set EndTime=dbo.ToBigInt('2013-02-24 23:59:59')SELECT TagID,dbo.ToDate(SampleDateTime)as SampleTime,SampleValue

14、,QualityIDFROM NumericSampleswhere SampleDateTime>StartTime and StartTime<EndTimeN3:函数->标量函数-> ConvertTagnamesToTagIDs将指定的一组变量标签名转换为变量ID选择该函数,右键,选择功能菜单”修改”打开后,将里面的逗号 , 全部转换为分号 ;,然后执行SQL修改语句,点击菜单上!执行,如图3.2.6红色框部分执行成功后,关闭SQL编辑窗口,弹出的对话框中选择不保存如图3.2.6,函数包含了2个参数:TagNames: 为用户导入的变量标签名称,包含集群名,如图

15、1.2中的变量名,Cluster1.LOOP_1_SPDataSourceName:变量对应的数据源名称,如图1.2中的datasource名称为LocalExample则如果一次性查询多个变量的ID,如LOOP_1_SP;LOOP_1_PV(分号分隔)则需要执行以下SQL语句declare Tagids varchar(MAX )set Tagids= dbo.ConvertTagnamesToTagIDs('Cluster1.LOOP_1_SP;Cluster1.LOOP_1_PV','LocalExample')print Tagids,返回了2个变量的I

16、D值,以分号 ; 分隔N4:函数-表值函数-> ConvertTagnamesToTagIDs其包含5个参数:Tagids:要查询的一组变量ID(与ConvertTagnamesToTagIDs函数组合实现变量名称查询)Period_Start,查询的起始时间(bigint类型的时间,组合ToBigint函数使用,实现用户时间输入)Period_End,查询的结束时间(bigint类型的时间,组合ToBigint函数使用,实现用户时间输入)add_lagging_samples,标志位0或1(0:在每一个时间间隔中返回1条记录 1:每个时间间隔返回2条记录)interval,bigint

17、,时间间隔(组合标量函数IntervalToBigInt使用)其参数intervalASString允许以下格式:'s' seconds /'m' minutes /'h' hours /'d' - days如2小时,则为2h,7天为7d如用户想查询LOOP_1_SP;LOOP_1_PV在2013-02-22这天的日报表,查询时间间隔为1小时则执行一下SQL脚本use ExampleHisDBdeclare Tagids varchar(MAX )declare StartTime bigintDeclare EndTime bi

18、gintDeclare TimeInterval bigintset Tagids= dbo.ConvertTagnamesToTagIDs('Cluster1.LOOP_1_SP;Cluster1.LOOP_1_PV','LocalExample')Set StartTime=dbo.ToBigInt('2013-02-22 00:00:00')Set EndTime=dbo.ToBigInt('2013-02-22 23:00:00')set TimeInterval=dbo.IntervalToBigInt('1h&

19、#39;)select TagID,dbo.ToDate(SampleDateTime)as SampleTime, SampleValue from dbo.fn_get_samples_matrix_byinterval(Tagids,StartTime,EndTime,0,TimeInterval)四.报表制作与发布前面的步骤是说明怎样在Hisotiran数据库中增加函数和存储过程后面的步骤是说明怎样在SQL提供的报表服务中利用这些函数和存储过程.报表开发SQLsever2008提供了商业智能项目开发平台,可以借助该平台开发用户自己的报表, 如图4.1.1,打开SQL Serve Bus

20、iness Intelligence Development Studio图4.1.1 图4.1.2点击红色框中的创建项目,或者通过菜单“文件-新建->项目”选择已安装的模版->报表服务器项目,如上图,命名项目为citDemoReport,并选择项目文件夹创建位置,然后点击确定,进入项目开发平台,如下图4.1.4所示.如上图红色框,选择”共享数据源”->右键菜单,选择”添加新数据源”图4.1.5如上图红色框,为共享数据源命名,如ExampleHisDB(可以为制作报表的数据库名称)然后点击”编辑“,进入SQL数据库连接设置如上图红色部分,服务器名输入SQL服务器IP实例名选择

21、需要报表发布的数据库,如ExampleHisDB,然后点击“确定”如上图,点击”确定”按钮,完成了共享数据库的设置。 图4.1.8则可以看到共享数据源中增加了一个对象ExampeHisDB.rds访问该对象即本质就是访问了其关联的真实数据库ExampleHisDB从数据库中查询的返回结果为数据集,每个报表的数据必须要关联数据集所以,每个报表可以拥有各自定义的数据集,该数据集是私有的,只能在该报表中使用,不能被其它报表引用。如果该数据集需要能其它报表共有,必须将其定义为共享数据集如我们多个报表中需要列出所有变量供用户选择查询,那么就可以新建一个共享数据集右键点击“共享数据集”,选择菜单->

22、“添加新数据集”,弹出如图4.1.9对话框如上图紫色框,输入共享数据集的名称,如TagsName_ID,选择查询的数据源,在红色框中输入SQL查询脚本,点击蓝色框按钮”查询设计器”点击红色框的”!”,可以在查询设计器下端看到数据集返回的结果,点击“确定”关闭查询设计界,再点击图4.1.9的确定按钮,关闭共享数据集,可以看到共享数据集中添加了一个对象接下来,就是需要定义用户报表,设计报表的查询界面如图4.1.12,设置如下生成LOOP_PV的日报表,则最基本的必须提供用户时间选择或者能够手动输入日期,然后自动计算查询起始时间为该日期的零点,结束时间为开始时间加24小时,时间间隔可以设定为1小时,

23、灵活的话也可以让用户选择(10分钟,30分钟,60分钟,120分钟等等诸多选项或者用户手动输入),另查询的LOOP_PV的变量可以是全部的,也可以让用户选择其中一些Loop_PV变量,以日报表为例,年月报表可以类似选择报表,点击右键,选择功能菜单->”添加新报表”,弹出”欢迎使用报表向导”,点击”下一步”默认选择共享数据源,点击下一步,进入报表查询设计器(进入SQL查询语句编辑器,将查询的结果返回的数据集做成报表),如图所示,我们在报表查询时,需要用户输入3个条件:查询日期(查询日期),选择查询的PV变量(PVNames)以及查询的时间间隔(时间间隔),故我们需要在SQL查询代码中无需声

24、明(Declare)变量,直接引用,则在报表查询时会自动生产这些变量让用户输入或选择。declare TagNames varchar(Max)declare TagIDs varchar(500)declare StartTime datetimedeclare EndTime datetimedeclare TimeStart bigintDeclare TimeEnd bigintdeclare TimeInterval bigintset TagNames=PVNames -等待可以选择PV变量set TagIDs=dbo.ConvertTagnamesToTagIDs(TagName

25、s,'LocalExample') -将变量名转换为IDset StartTime=查询日期 -等待用户选择查询日期set EndTime =DATEADD(HOUR,23,StartTime) -查询的结束时间为查询日期+23小时set TimeStart=dbo.ToBigInt(StartTime) -将查询起始时间转换为bigintset TimeEnd=dbo.ToBigInt(EndTime) -将查询结束时间转换为bigintset TimeInterval=dbo.IntervalToBigInt(时间间隔) -等待用户输入查询时间间隔并转换为bigintSEL

26、ECT Tags.TagName ,dbo.ToDate(SampleDateTime) as SampleTime,SampleValue FROM dbo.fn_get_samples_matrix_byinterval(TagIDs,TimeStart,TimeEnd,0,TimeInterval) tinner join Tags on t.TagID=Tags.ID-将用户输入的条件从数据库中查询结果返回,并将相应的字段转换,如将TagID转换为用户能够识别的TagName, bigint的时间转换为能识别的日期时间然后点击下一步,弹出定义查询参数对话框,等待用户输入变量的值,由于制

27、作的是日报表,不是直接按照字段将数据集的数据显示出来,而是需要我们按照同时间排序和归纳,将同一时间的不同变量值为一行显示,即纵向显示时间日期,横向选择的变量,以时间*变量的矩阵。故如上图选择矩阵表,点击”下一步”可用字段中显示了查询结果数据集中所有的字段,然后我们需要将字段进行分配SampleTime:时间字段,为报表的行字段TagName:变量标签名,用于标识报表列图4.1.17点击下一步,选择报表样式,可以选择不同的样式,如图4.1.18选择默认的石板样式点击红色框部分”预览”手动输入参数PVNames,查询日期,时间间隔,然后点击”查看报表”按钮,得到如上图的结果则在该界面中,需要进行一

28、些微调,如可以让用户弹出日历控件,进行日期选择而无需手动输入,同理,PV变量的能够选择,选择项中只有PV值有关的变量,并且能够多项选择查询的时间间隔可以让用户选择5分钟,10分钟,30分钟等等多样选择项但是只能单选所以需要对这些参数的属性进行修改和定义,点击”在报表左侧参数中,可以看到数据集中定义的参数,依次进行修改。名称为用户定义的参数名称,提示即在画面上让用户输入参数时,在文本框前面显示的信息提示用户输入和选择数据类型:日期/时间(该类型的变量预览界面会自动弹出日期时间控件)设置该参数为文本值,但是允许多个值,点击”可用值”标签为用户在下拉选择框中看到的选择项,值为用户选择该选择项是自动将

29、该参数赋值为选择项对应的值,如用户选择1小时,则时间间隔=1h点击”默认值”在上图中,时间间隔的默认为1小时,点击确定,设定参数时间间隔的属性。最后,对PV变量标签进行设定,由于变量标签需要从数据库中搜索,并且过滤含PV关键字的变量,并且能够让用户进行多项选择,更重要的事,需要将用户选择的多个变量要合并为以分号(;)为分隔符的一个字符串,而多值变量返回的是数组,但是SQLserver查询中不支持数组。弹出如图4.1.29对话框中,设置数据寄名称为TagNameID,选择”使用共享数据集”,然后选择预先定义的共享数据集”TagsNameID”(由于该数据集返回了所有定义的变量名称和ID,还需要对

30、其进行过滤),故需要设置”筛选器”,即过滤变量名称中包含LOOP和PV,则在筛选器中添加如下条件 :“TagName”点击确定,增加新的数据集TagNameID第二:需要手动添加一个参数,如PV变量,用于提供用户选择变量并存储用户选择的多个PV变量点击参数,右键->“添加参数”,如图4.1.30,弹出图4.1.31对话框图4.1.30图4.1.31设置变量名称为PV变量,类型为文本,允许选择多值。点击”可用值”如上图,设定PV变量多项选择值为TagNameID数据集中的TagName字段的所有值第三:双击参数PVNames,该参数将用户从PV变量多选择的多项值合并为一个字符串,如用户选择了”Cluster.LOOP_1_PV“,”Cluster.LOOP_3_V“,”Cluster.LOOP_4_PV“则需合并为”Cluster.LOOP_1_PV;Cluster.LOOP_3_V;Cluster.LOOP_4_PV;“传递给SQL函数ConvertTagnamesToTagIDs(),如图,由于该参数的值PV变量多选项中返回,无需再报表页面上让用户再次输入,故设定其可见性为隐藏,其值也应该为指定值,点击“点击添加,然后点击”fx“输入表达式为:=Join(Parameters!PV变量.Value,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论