文档库 最新最全的文档下载
当前位置:文档库 › IFIX报表

IFIX报表

IFIX报表
IFIX报表

IFIX报表

IFIX报表常规的做法是采用IFIX内嵌的VBA语言,借助于OFFICE自带的ACCESS 和EXCEL来做的。

例如我们要在IFIX画面上通过点击一按钮来察看某一天的数据,假如这有三个模拟量如tag1,tag2,tag3,数据间隔一小时归一次档,它主要分为四步:

一、创建一个ACCESS数据库如ReportDataBase.mdb,用来存放报表所需的数据。然后

就在这个数据库中建立一个表如ReporData,这样IFIX就能以一定的时间间隔将数据写入此数据库刚才创建的表中。

ReportData的结构如下:

字段名类型

日期日期/时间

tag1数值

tag2数值

tag3数值

二、创建ODBC数据源,用于IFIX与上步已建立的数据库和表进行联系。方法:控制面

板->管理工具->ODBC数据源,打开ODBC数据源管理器,建立一个“系统DSN”,点击“添加”,双击“Microsoft Access Drivers(*.mdb)”,出现“ODBC Microsoft Access安装”对话框。

数据源名:MyReport注:此名是任意的字符组合,但不能与数据库重名。

数据库:ReportDataBase.mdb,点击‘选择‘按钮选择第一步创建的Access数据库。

点击“完成”,退出控制面板

三、在IFIX中创建一个“基于时间的调度”,如图

名称:任意合法的字符组合

触发信息:连续

间隔:1小时

详细代码如下:

点击“VB编辑器“进入VB编辑器

在“工具”菜单-〉引用“Microsoft ActiveX Data Objects x.x Library”

Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long)

Dim cn As ADODB.Connection

Dim res As ADODB.Recordset

Dim StrSQL As String

Set cn=New ADODB.Connection

Set res=New ADODB.Recordset

cn.ConnectionString="DSN=MyReport;UID=;PWD=;"

//MyReport是数据源名称//

cn.Open

StrSQL="select*from ReportData where日期=#"&Date&"#"

//ReportData是建立数据库中的表名//

res.Open StrSQL,cn,adOpenKeyset,adLockOptimistic

res.AddNew

res.Fields(0)=Date

res.Fields(1)=Fix32.Fix.tag1.f_cv

res.Fields(2)=Fix32.Fix.tag2.f_cv

res.Fields(3)=Fix32.Fix.tag3.f_cv

res.Update

res.Close

Set res=Nothing

Set cn=Nothing

End Sub

另外,如果定义了主键,如上图,选择了,则res.Fields(0)不可用。

四、在IFIX画面上插入一个按钮。

按钮名称:Cmdreport

Private Sub Cmdreport_Click()

UserForm2.show

End Sub

再在”VB编辑器环境“下,插入一用户窗体。并且在工具-〉附加工具中选择日历控件11.0

在“工具”菜单-〉引用“Microsoft ActiveX Data Objects2.7Library”

“Microsoft Excel9.0Library”

“取消”按钮的代码

Private Sub Cmdcancel_Click()

Unload Me

End Sub

“确定”按钮的代码如下:

Private Sub CmdOK_Click()

'On Error Resume Next

Dim cn As ADODB.Connection

Dim res As ADODB.Recordset

Dim xlBook As Excel.Workbook

Dim xlsheet As Excel.Worksheet

Dim strFileName As String

Dim StrSQL As String

Dim i As Integer

Dim row As Integer

strFileName="c:\report.xls"‘预先设计的报表显示模板文件

StrSQL="select*from ReportData where日期=#"&Calendar1.Value&"#"

If Dir(strFileName)=""Then'判断文件是否存在,不存在则退出

MsgBox"报表模版文件不存在"

Exit Sub

End If

Set cn=New ADODB.Connection

cn.ConnectionString="DSN=MyReport;UID=;PWD=;"

cn.Open

Set res=New ADODB.Recordset

res.Open StrSQL,cn,adOpenKeyset,adLockOptimistic

If res.RecordCount<=0Then

MsgBox"你要查询的数据不存在,可能已被删除",vbInformation+vbOKOnly,"系统提示"

res.Close

Set res=Nothing

cn.Close

Set cn=Nothing

Exit Sub

Else

res.MoveFirst

Set xlBook=GetObject(strFileName)

Set xlsheet=xlBook.Worksheets(1)

xlBook.Application.Visible=True

xlsheet.Cells(2,"n")=CDate(res.Fields(0))

i=0

While i

Row=i+4

xlsheet.Cells(row,"a")=res.Fields(1)

xlsheet.Cells(row,"b")=res.Fields(2)

xlsheet.Cells(row,"c")=res.Fields(3)

i=i+1

res.MoveNext

Wend

xlsheet.PrintPreview True

xlBook.Application.DisplayAlerts=False

xlBook.Application.Quit

End If

End Sub

基于ADO技术的iFix历史报表的设计与实现

康为水泥阀

1引言

iFIX是全球最领先的HMI/SCADA自动化监控组态软件。,已有超过300,000套以上的软件在全球运行。世界上许多最成功的制造商都依靠GE Fanuc的iFIX软件来全面监控和分布管理全厂范围的生产数据。iFIX软件内置功能强大的VBA脚本编译器,能实现复杂工程对软件的要求。但是,因不同项目对历史数据报表要求不尽相同,而iFIX软件又没有提供针对历史数据报表的通用组件,通常实现报表的方法是使用第三方提供的组件(如:水晶报表),因其封装功能较多,编程不够灵活,对于比较复杂的报表功能实现起来比较麻烦,而且需要在进行报表组态时单独购买。ADO组件集成在Visual Basic6.0中,对于复杂的报表功能,采用ADO技术访问iFIX历史数据库实现报表非常灵活。

2ADO技术与iFIX历史数据库

2.1ADO技术

ADO(ActiveX DataObjects)是一个用于存取数据源的COM组件。它是Microsoft新数据库访问技术,是建立在OLEDB之上的高层数据库访问技术。ADO易于使用、高速度和较低的内存占有率的优点使得编程效率更高。

ADO常用的组件对象有:ADODB.Connection和ADODB.Recordset。通过ADO组件对象访问数据库,基本操作流程是:用Connection对象连接数据库,利用建立好的连接通过Connection、Command对象执行SQL命令,或利用Recordset对象取得结果记录集进行查询、处理。

2.2iFIX历史数据库

在iFIX安装时,iFIX安装程序会自动在工作站上建立两个系统数据源“FIXDynamics Historical Data”和“FIX Dynamics Real Time Data”。“FIXDynamics Real Time Data”数据源连接的是iFIX实时数据库;“FIX Dynamics HistoricalData”数据源连接的是iFIX历史数据库。

实时数据库和历史数据库都可通过ODBC进行访问。

在进行iFIX工程组态时,可以在iFIX工作台系统树下的“历史定义”定义要查询的历史数据。当iFIX运行时,iFIX会按照组态好的要进行记录历史数据的标签的实时值以历史文件的形式保存。例如:工程节点名为“FIX”,并且组态生成24小时的历史文件,则这些历史文件以xxxx.H24(其中xxxx为记录时间)保存到工程目录下的“…\HTRDATA\FIX\”。iFIX历史数据库主要有以下字段:

NODE为工程的逻辑节点名;TAG为数据库标签名;FIELD为数据库标签的域名;VALUE为数据库标签数值;DATETIME为记录日期和时间;INTERVAL为查询时间间隔。

3历史报表软件的设计与实现

3.1功能介绍

本软件可实现与iFIX工程应用软件的无缝连接,满足查询iFIX历史数据并以报表形式显示。

1)可以任意选择要查询的变量,变量在报表中的显示顺序只跟选择要查询变量的顺序有关。

2)查询变量时,按照日期查询,用户只需设置要查询的变量,输入“起始时间”、“结束时间”、“时间间隔”即可进行查询。

3)查询结果可导出。

3.2设计与实现

软件设计主要包括利用ADO组件对象通过“FIXDynamics Historical Data”数据源查询iFIX历史数据库和将查询的结果显示出来。

1)建立数据库标签名描述文件

因iFIX历史数据库是按照TAG(数据库标签名)进行数据存储的,而标签名通常为字母以及编号组成,不便记忆,为了使报表更能直观显示,我们建立数据库标签名描述文件。该文件是一个文本文件,将每个标签名

(与iFIX数据库管理器标签名相同)与该标签的描述对应起来,如图1所示:

图1:数据库标签描述文件

2)配置软件开发环境,添加ActiveX控件及引用ADO对象库

本软件开发环境需要安装VisualBasic6.0和MicrosoftOffice组件。进行报表查询需要在VB工程中插入时间控件(DTPicker)。进行报表显示需要显示控件(SpreadSheet)。要在VB工程中添加ActiveX控件,步骤如下:打开工程→在“工程”菜单→选择“部件”→在“部件”对话框找到“Microsoft Office XP Web Components”和“Microsoft WindowsCommon Controls-2.6.0”,选中选中相应复选框→点击确定。这样就把ActiveX控件添加到了VB工具箱了。

在使用ADO对象之前,必须先将对象库引入当前工程中。使用VB集成开发环境“工程”菜单中的“引用”对话框,将其中的“MicrosoftActiveX Data Objects2.6Library”选中即可。

3)“添加查询变量”窗口设计

该窗口设计如图2所示:

图2:“添加查询变量”窗口

通过该窗口可以任意添加要查询的变量,设计思路如下:

①在窗口初始化程序中,读取数据库标签名描述文件,并将其显示在“所有点列表”列表框中。

Private SubUserForm_Activate()

……

IfDir(VaribleFilePath)<>""Then

OpenVaribleFilePath For Input As1

Do While NotEOF(1)

Input#1,int1,str1,str2

ListBox1.AddItemstr1

Loop

Close

……

End Sub

其中VaribleFilePath为数据库标签名描述文件所在的路径。

②点击“>”按钮,将从“所有点列表”列表框中所选的查询变量移到右边“已选点列表”列表框中。

Private SubCommandButton1_Click()

Dim strtemp AsInteger

IfListBox1.ListIndex<>-1Then

ListBox2.AddItemListBox1.Text

strtemp=ListBox1.ListIndex

ListBox1.RemoveItemstrtemp

……

End Sub

③点击“<”按钮,将从“已选点列表”列表框中所选的查询变量移到左边“所有点列表”列表框中。代码与②类似,不再赘述。

④点击“确定”按钮,将“已选点列表”列表框中的查询变量逐一在数据库标签名描述文件中检索出相应的iFIX数据库管理器标签名。

Private SubCommandButton4_Click()

……

Dim VaribleTemp()As String

Dim DecTemp()AsString

ReDim PreserveVaribleTemp(ListBox2.ListCount)

ReDim PreserveDecTemp(ListBox2.ListCount)

IfDir(VaribleFilePath)<>""Then

i1=0

For i=1ToListBox2.ListCount

OpenVaribleFilePath For Input As1

LabelTemp=ListBox2.List(i-1)

Do While i1=0

Input#1,str1,str2,str3

If str2=LabelTempThen

DecTemp(i)=str2

VaribleTemp(i)=str3

i1=1

End If

Loop

i1=0

Close#1

Form1.ListBox1.AddItemVaribleTemp(i)

Form1.ListBox2.AddItemDecTemp(i)

Next

End Sub

在这段程序代码中,定义了两个字符串数组,字符串数组VaribleTemp()用于存放要进行历史数据查询的iFIX数据标签名,并赋值给主窗口Form1的列表框ListBox1;字符串数组DecTemp()用于存放要进行历史数据查询的数据库标签名描述,并赋值给主窗口Form1的列表框ListBox2。

4)主窗体的设计

“历史数据查询”主窗体完成设置查询起始时间、结束时间、查询时间间隔和进行iFIX历史数据库的查询功能。该窗口设计如图3所示:

①向该窗体加入日期时间控件DTPicker和表格控件SpreadSheet。

②点击查询按钮,软件将按照指定的已选择的查询变量进行数据查询。在此按钮下编写的代码是报表程序的核心,包括以下部分:

I.对时间日期控件转换成格式化字符串。

……

strStartTime=Format(Me.DTStartTime,"yyyy-MM-dd HH:mm:ss")‘格式化起始时间

strEndTime=Format(Me.DTEndTime,"yyyy-MM-dd HH:mm:ss")‘格式化结束时间

strInterval=Format(Me.Interval1.Value,"HH:MM:SS")‘格式化时间间隔

图3:历史数据查询窗口

II.与iFIX历史数据库连接.

…..

Dim conADO AsADODB.Connection‘定义Connection类型的变量

Set conADO=NewADODB.Connection‘创建新的Connection对象赋值给该变量

conADO.ConnectionString="Provider=Microsoft OLE DB Provider for ODBC Drivers;"+ _"DSN=FIX Dynamics Historical Data;UID=;PWD=;"‘指定连接字符串

conADO.Open‘使用Open方法打开连接

……

III.创建并返回记录集,在表格控件SpreadSheet显示结果。

Dim TagGroup()AsString‘定义字符串数组,用于存放iFIX标签名

ReDim PreserveTagGroup(ListBox1.ListCount)

For i1=1ToListBox1.ListCount

TagGroup(i1)=Me.ListBox1.List(i1-1)

strQuery="SELECTVALUE,DATETIME"+_‘选择要查询的字段

"FROM FIX"+_‘历史数据库节点名为Fix

"WHERE TAG=‘"+TagGroup(i1)+"‘"+_‘选择要查询的iFIX标签

"AND INTERVAL=‘"+strInterval+"‘"+_‘选择要查询时间间隔

"AND(DATETIME>={ts‘"+strStartTime+"‘}AND"+_‘查询时间不小于起始时间

"DATETIME<={ts‘"+strEndTime+"‘})"‘查询时间不大于结束时间

Dim rsADO AsRecordset‘定义Recordset类型的变量

Set rsADO=NewADODB.Recordset‘创建新的Recordset对象赋值给该变量

rsADO.CursorLocation=adUseClient

rsADO.OpenstrQuery,conADO,adOpenDynamic,adLockUnspecified,-1

‘打开记录集

IfrsADO.RecordCount<=0Then

MsgBox"该时间范围无数据"

Set cnADO=Nothing

Set rsADO=Nothing

Exit Sub

End If

Me.Spreadsheet2.Range(Chr(Asc("B")+(i1-1))&"1")=Me.ListBox2.List(i1-1)

‘在表格控件第1行,第2列开始显示要查询变量的iFIX标签名描述

For i=1TorsADO.RecordCount

Me.Spreadsheet2.Range("A"&(i+1))=rsADO!DateTime&""

‘在表格控件第2行起,第1列显示要查询变量的日期时间。

If rsADO!Value&""=""Then

Me.Spreadsheet2.Range(Chr(Asc("B")+(i1-1))&(i+1))="无数据"

Else

Me.Spreadsheet2.Range(Chr(Asc("B")+(i1-1))&(i+1))=rsADO!Value&""

‘在表格控件第2行起,第2列起显示该标签查询出的数据。

End If

rsADO.MoveNext

Next i

Set rsADO=Nothing‘释放Recordset对象

Next i1

Set conADO=Nothing‘释放Connection对象

IV.数据导出

点击“导出”按钮,将查询到的数据导出成XML文件,可在Excel中打开。

Me.Spreadsheet2.Export

3.3在iFIX软件中调用该程序

将编写好的软件在VisualBasic6.0中生成.EXE文件(例如iFix历史数据查询.exe),然后在iFIX 中调用该程序。

Dim MyAppID

Dim appPath AsString

appPath=System.ProjectPath&"\APP\iFix历史数据查询.exe"

MyAppID=Shell(appPath,0)

4结束语

本文探讨了ADO技术在iFIX历史报表中的应用,也可采用ADO技术设计实时报表,编程人员只需具备一定VB知识即可实现。采用本文介绍的方法设计程序只需经过简单修改,就可移植到其它工程中。该方法优于采用SQD和SQT连接数据库,因为采用后者连接数据库不仅需要在SQLLIB数据表中进行预先定义SQL语言,而且还需要在SCU配置文件中配置SQL帐户。编程效率和程序执行效率比较低。康为水泥阀

iFix中采用ODBC制作报表

在iFix中采用ODBC制作历史报表 具体步骤如下: Step 1: 打开SCU中的Task Configuration,增加HTC.EXE和WSQLODC.EXE两个任务,并将它们设置成为后台运行状态; Step 2: 启动iFix,点击工具栏上的按钮打开Historical Assign,添加所需监控的数据点,并设置历史数据的采样速度。 Step 3: 打开任务控制,查看是否已经启动HTC。

Step 4: 在Globals\User 下面添加三个字符型(vtString )变量,分别命名为strStartTime, strEndTime 和 Interval 。新建一幅画面,如图如示,在画面上布置3个DATALINK 分别指向strStartTime, strEndTime 和 Interval ,并设置成In place (即允许修改)。 Step 5: 为画面上的各个按钮写代码,最好先将各按钮注册——即将鼠标移到按钮上方, 按右键弹出菜单,选择Edit Script 。在VB Editor 的工具菜单中的Reference(引用) 中选中Microsoft Excel 9.0 Object Library 和Microsoft ActiveX Data Objects ,如下 图所示。然后在各按钮的处理程序中添加相应代码。内容如下(可将下列代码直 接COPY 到你的VB 编辑器中,覆盖因为注册产生的空代码):

‘运行状态画面初始化 Private Sub CFixPicture_Initialize() CommandButton1_Click CommandButton2_Click user.Interval.CurrentValue = "00:00:30" End Sub ‘组态状态画面初始化 Private Sub CFixPicture_InitializeConfigure() user.strEndTime.CurrentV alue = "报表结束时间" user.strStartTime.CurrentValue = "报表开始时间" End Sub '设当前时间为报表开始时间 Private Sub CommandButton1_Click() Dim curTime As String curTime = Now Dim curmonth, curday, curhour, curminute, cursecond As String curmonth = IIf(Month(curTime) < 10, "0" & Month(curTime), Month(curTime)) curday = IIf(Day(curTime) < 10, "0" & Day(curTime), Day(curTime)) curhour = IIf(Hour(curTime) < 10, "0" & Hour(curTime), Hour(curTime)) curminute = IIf(Minute(curTime) < 10, "0" & Minute(curTime), Minute(curTime)) cursecond = IIf(Second(curTime) < 10, "0" & Second(curTime), Second(curTime)) user.strStartTime.CurrentValue = Year(curTime) & "-" & curmonth & "-" & curday _ & " " & curhour & ":" & curminute & ":" & cursecond End Sub

iFix中如何实现EXCEL报表

?iFix中如何实现EXCEL报表 ? 2007-01-31 16:59:58 作者:ifixonline来源: ?文字大小:【大】【中】【小】评分等级:3 在VBA中引用Microsoft Excel 11.0 Object Library和 Microsoft ADO 6.0 Library。在画面中添加个按钮。复制以下代码: ‘----------开始复制(不包括此行)--------------Option Explicit Dim rsADO As ADODB.Recordset Dim cnADO As ADODB.Connection Private Sub Command1_Click() Dim StrDir As String StrDir = "E:\" Dim i As Long Dim Sql As String Sql = "SELECT * FROM THISNODE" Set cnADO = New ADODB.Connection Set rsADO = New ADODB.Recordset cnADO.ConnectionString = "Provider = Microsoft OLE DB Provide r for ODBC Drivers;DSN=FIX Dynamics Real Time Data;UID=;PWD =" cnADO.Open rsADO.CursorLocation = adUseClient rsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1 If rsADO.RecordCount <= 0 Then MsgBox "无数据!", vbOKOnly + vbInformation, "信息..." Set cnADO = Nothing Set rsADO = Nothing Exit Sub End If Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = New Excel.Application xlApp.DisplayAlerts = False xlApp.Visible = False Set xlBook = xlApp.Workbooks.Open(StrDir & "\报表.xls")'需要文件(E:\报表.xls) Set xlSheet = xlBook.Worksheets(1)

IFIX报表

IFIX报表 IFIX报表常规的做法是采用IFIX内嵌的VBA语言,借助于OFFICE自带的ACCESS 和EXCEL 来做的。 例如我们要在IFIX画面上通过点击一按钮来察看某一天的数据,假如这有三个模拟量如tag1,tag2,tag3,数据间隔一小时归一次档,它主要分为四步: 一、创建一个ACCESS数据库如ReportDataBase.mdb,用来存放报表所需的数据。然 后就在这个数据库中建立一个表如ReporData,这样IFIX 就能以一定的时间间隔将数据写入此数据库刚才创建的表中。 ReportData的结构如下: 字段名类型 日期日期/时间 tag1 数值 tag2 数值 tag3 数值 二、创建ODBC数据源,用于IFIX与上步已建立的数据库和表进行联系。方法:控制面 板->管理工具->ODBC数据源,打开ODBC数据源管理器,建立一个“系统DSN”,点击“添加”,双击“Microsoft Access Drivers (*.mdb)”,出现“ODBC Microsoft Access 安装”对话框。 数据源名:MyReport 注:此名是任意的字符组合,但不能与数据库重名。 数据库:ReportDataBase.mdb,点击‘选择‘按钮选择第一步创建的Access数据库。 点击“完成”,退出控制面板

三、在IFIX 中创建一个“基于时间的调度”,如图 名称:任意合法的字符组合 触发信息:连续 间隔:1小时 详细代码如下: 点击“VB编辑器“进入VB编辑器 在“工具”菜单-〉引用“Microsoft ActiveX Data Objects x.x Library” Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long) Dim cn As ADODB.Connection Dim res As ADODB.Recordset Dim StrSQL As String

基于ADO的IFIX历史数据报表

基于ADO的IFIX历史数据报表 黄重庆 (福建工程学院电子信息与电气工程系福州) 摘要:本次所使用的报表是基于ADO的IFIX历史数据报表,上位机采用组态软件iFix4.5,通过Visual Basic 6.0作为开发工具,运用模块化的方式,采集“智能仓储系统”和“冷却系统”所产生的数据,对各数据进行实时的监控和有效管理,同时可通过对不同信号的读取,采用本文介绍的方法设计的报表应用程序具有普遍性,通过简单修改可移植到其它工程中。 关键词:ADO;IFIX; 历史报表;VBA Based on the historical data report IFIX ADO HuangChongQing (FuJian University of Technology,Electronic information and electrical engineering,fuzhou) Abstract:This time uses the report form is based on the ADO IFIX historical data report form, the superior machine uses configuration software iFix4.5, 6.0 takes the development kit through Visual Basic, the utilization modulation way, the data which gathering “the intelligence warehousing system”and “the cooling system”produces, carries on the real-time monitoring and the effective management to various data, simultaneously may through to the different signal read, use the methods design report form application procedure which this article introduced to have the universality, may transplant through the simple revision to other projects. Key words:ADO;IFIX; HIM ;VBA

IFIX报表

Private Sub CFixPicture_Initialize() dtpTime.Value = Now End Sub Private Sub CFixPicture_KeyDown(ByVal KeyCode As Long, ByVal Shift As Long, ContinueProcessing As Boolean) End Sub Private Sub CommandButton1_Click() Dim strDate As String Dim strMonth As String strDate = Format(dtpTime, "yyyy-MM-dd") strMonth = Format(dtpTime, "yyyy-MM") '日报 If Me.optMonth.Value = False Then If Me.optDay.Value = True Then WebReport.Navigate "D:\REPORT\日报表\日报表" & strDate & ".htm" '显示 Else WebReport.Navigate "D:\REPORT\日报表\空白报表" & strDate & ".htm" '显示 End If End If '月报 If Me.optDay.Value = False Then If Me.optMonth.Value = True Then WebReport.Navigate "D:\REPORT\月报表\月报表" & strMonth & ".htm" '显示 Else WebReport.Navigate "D:\REPORT\月报表\空白报表" & strMonth & ".htm" '显示 End If End If End Sub

IFIX连接SQL读写数据和制作excel报表图文教程

IFIX连接SQL读写数据和制作excel报表图文教程IFIX连接SQL数据库、制作excel报表详细教程 一、 IFIX连接SQL数据库读写数据 IFIX连接SQL数据库有多种方法,其中最为方便的两种方法是: (1)使用IFIX本身为SQL数据库提供的接口SQT和SQD; (2)VB+ADO。 下面分别介绍着两种方法的实现步骤。 1、使用SQT和SQD读写SQL数据库 1.1 安装SQL2008 (只列出关键步骤,其余直接点击“下一步”或“安装”) 打开SQL安装中心,点击“安装”; SQL2008简体中文版安装包下载链接: 点击“全新SQL Server独立安装或向现有安装添加功能”; 点击“输入产品密匙”,点击“下一步”:(根据版本选择) sql server2008密钥 Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB Enterprise: JD8Y6-HQG69-P9H84-XDTPG-34MBB Microsoft SQL Server 2008 R2序列号密钥 开发版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM 开发版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8 工组版:XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q WEB版:FP4P7-YKG22-WGRVK-MKGMX-V9MTM 数据中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB

数据中心版64位:DDT3B-8W62X-P9JD6-8MX7M-HWK38 企业版32位:R88PF-GMCFT-KM2KR-4R7GB-43K4B 企业版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB 标准版32位:CXTFT-74V4Y-9D48T-2DMFW-TX7CY 标准版64位:B68Q6-KK2R7-89WGB-6Q9KR-QHFDW 功能选择界面,选择安装全部功能,点击“下一步”; 进入实例配置界面,选择默认实例,点击“下一步”; 进入服务器配置界面,启动类型均选为“自动”;点击“对所有SQL Server服务使用相同的账户”,在弹出的界面中选择第一个账户,密码不用填;返回服务器配置界面点击下一步; 进入数据库引擎配置界面,选择混合模式,输入自己设定的密码,点击“添加当前用户”,点击下一步,直至安装完成,关闭安装中心。 1.2 进入SQL server新建SQL登录名和数据库 打开SQL,以Windows身份验证登录; 连接完后,点击“安全性”-“登录名”,右击选择“新建登录名”: 在弹出的界面中,点击左上角的“常规” ,输入登录名、密码,不要勾选强制密码过期,之后点 击左上角“服务器角色”; 在弹出的界面中,根据需要勾选所需权限,这里全部勾选,再点击“用户映射”; 在弹出的界面中,“映射到此登录名的用户”内勾选所有数据库,并在每个数据库的“数据库角色成员身份”中勾选db_owner和public,而后点击“确定”,完成新建登录名。

有关iFIX软件报表生成的说明

有关iFIX软件报表生成的说明 iFIX软件可以通过内置的VBA借助EXCEL,ACCESS,Crystal Roport等软件生成报表。本文通过 VBA+ADO+EXCEL 做一个具体的介绍。 1.V BA(Visual Basic for Application) VBA是iFIX完全内置的一个强有力的编程工具,可以使用户快速方便的生成自动的操作任务和过程自动化的解决方案。 IFIX的VBA工具包括以下特性: 可操作所有列出的iFIX对象的属性,方法和事件 支持多种数据源,包括iFIX过程数据库,任何OPC服务器,任何对象的属性和SQL数据库 ODBC支持 ActiveX控件支持 VBA脚本生成向导及IFIX命令可以帮助你为常用任务自动生成程序代码 第三方控件的安全容器 下面的程序代码就是在iFIX中建立一个新的EXCEL应用程序 并打开报表模版。 Dim msexcel As Excel.Application Set msexcel = CreateObject("Excel.Application") With msexcel .Visible = True .Workbooks.Open "e:\histdemo\FixReports.xls", , False

.ActiveWorkbook.ActiveSheet.Select .DisplayAlerts = False .Wait (Now() + 0.00002) End With 2.A DO (ActiveX Data Object) ADO 是微软推出的最新的数据库访问方式。它综合了微软早期推出的DAO及RDO的特性并取代了DAO及RDO。ADO可以访问更多类型的数据库,并且可以通过ODBC(Open DataBase Connectivity)访问数据,但它的结构是建立在OLE DB Providers上。 IFIX软件安装完毕以后,在控制面板的ODBC数据源中会增加两个系统DSN: FIX Dynamics Historical Data iFIX历史数据源 FIX Dynamics Real Time Data iFIX实时数据源 ADO可以通过访问这两个数据源来直接操作iFIX历史数据库和实时数据库。 ADO类介绍: Connection 创建和维护到数据库或其他数据库的连接,管理数 据传输,其OPEN方法建立实际的连接。 Recordset 提供存取表或其他记录集的能力,一个记录集对象 在某一时刻只能查看一条记录。提供移动记录的方 法,本类中的OPEN方法通过指定的表名,SQL语法, 命令以及连接对象获得存取的记录。

报表控件应用-iFix

第一部分数据存储 [1] 运行iFix演示程序,添加数字量输出块(DO)DataLogTrig、DataLogEnable。 [2] 工作台开发环境中新建画面DataLog,右键点击选择编辑脚本添加程序:Fix32.Fix.DataLogEnabled.F_CV = 1 [3] 菜单中选择插入〉OLE对象,对象类型列表中选择hmiReportDataLog.CtrlX插入到换面中,点击控件右键菜单中选择动画〉配置〉杂项,将控件的属性DataLogEnabled链接数据块 DATALOGENABLED ,属性DataLogTrig 链接数据块 DATALOGTRIG,数据转换选择”对象”。可将控件参数TagValue001- TagValue120链接模拟量数据块的实时值(Fix32.FIX.IFIX1_BATCH_BULKFLOW.F_CV)作为采样点,控件参数TagDesc001- TagDesc120链接模拟量数据块的描述信息(Fix32.FIX.IFIX1_BATCH_BULKFLOW.A_DESC),数据块的描述信息不能为空,不能以数字开头,不能包含运算符号。

[4] 点击控件右键菜单中选择属性,将控件属性DataLogInterval设为1-7的整数值将控制控件的采样周期为5秒钟至1小时,设为8时停止自动采样。画面中添加一个按钮[触发手动存储]按钮,按下时将数据块DATALOGTRIG 置1,释放时置0。 [5] 保存画面并切换至运行状态,选中[显示数据]可见设置的数据点名称和iFix传入的变量数据,按控件中[创建数据表]按钮,再按[存储数据]按钮,可在数据库中建立一个名为hmiDataLog的数据表并存储一行数据。 自动状态下控件按照选定的采样周期存储数据。画面中按[触发手动存储]按钮触发一次数据存储,可实现由外部状态控制数据存储。 [6] 报表软件程序组中打开“数据检索”工具,选择数据表名hmiDataLog,可选字段中选择时标字段TSTAMP 和其它的数据点字段,按[数据检索]按钮可从数据库查询出已存入的历史数据。在数据检索界面中可对历史数据进行修改、删除等操作,检索出的数据可导出为CSV文件。

iFIX使用脚本生成EXCEL报表

作者: lostCity 复制收藏 iFIX使用脚本生成EXCEL报表2006-07-23 重新修改过的报表脚本注意中文单引号要换成英文的(因为网页支持有问题,故替换处理)附录文件为时间调度报表代码:下载附件另存为.rar文件 ‘注释: 1。该程序需要安装ADO 2.0目标库并在本机注册 ‘2。Microsoft ActiveX Data Objects 2.1 Library 必须被引用(Office 2000) ‘3。Microsoft Excel 9.0 object libraries 必须被引用(Office 2000) ‘4。划===处可根据具体报表修改 Dim strQueryAvg As String Dim c As Integer Dim r As Integer Dim Intyexcel As Excel.Application Dim MyDate, MyMonth, MyDay, MyHour, MyMinute, MySecond Dim StartTime, EndTime, Duration, DisplayDay, DisplayMonth As String ‘++===================================================================‘报表中的TAG Dim Tag1, Tag2, Tag3, Tag4, Tag5, Tag6, Tag7, Tag8 As String Dim Items As Integer Tag1 = "LV001" Tag2 = " " Tag3 = " " Tag4 = " " Tag5 = " " Tag6 = " " Tag7 = " " Tag8 = " " ‘从历史库中取得域项,2 - DATA TIME, V ALUE, TAG 共三项 Items = 2 ‘--==================================================================== MyDate = Now()

ifix报表制作文档

Ifix报表的实现 本文档主要介绍Ifix 通过调度将报表数据按照一定要求存储到Access数据库中,并根据要求从其中提取数据,结合EXCELL的制表功能实现报表。 数据存入 1.数据库的建立和数据关联 方法:(1)直接在Microsoft office中建立Access文件。 (2)在控制面板里ODBC数据源管理器里关联数据库时创建Access数据库。 1.1数据库的建立 (1)打开新建的Access文件,点击。 (2)创建一个,名字为ReportData的表。在表名处右键鼠标点击,将字段名称,数据类型,字段属性更改为下图所示: Ifix时间调度触 发调度中的VB 脚本 Access 数据库 报表显示 创建表 设计视图

1.2数据库的关联 用关联定义画面如下图。 在其中选择点击 择Microsoft Access Driver[*.mdb]

在其中的数据源名(N)后的输入区中填写一个名字, DSN(数据源名)名,不使用数据名。 2.时间调度的建立 2.1在ifix里新建基于时间的调度,在Schedules新建一个调度文件,在Time Based Entries中创建一个调度,具体设置如下图: 注意:iFIX 不支持使用与本地节点名相同名称的调度。因此,不能创建与本地节点名相同的调度。

触发信息设置为continuous,间隔为1个小时,启动时间为第2分钟。点击Vb Editor 将以下脚本写入 Private Sub RW2REPORT_OnTimeOut(ByVal lTimerId As Long) Dim cn As ADODB.Connection '定义一个ADO方式的数据库连接 Dim res As ADODB.Recordset '定义一个ADO方式的数据库记录集 Dim StrSQL As String Set cn = New ADODB.Connection '定义cn为新的ADO数据库连接 为新的ADO数据库连接集 'On Error Resume Next 定义cn的连接数据源为ReportSource 即ODBC中建立的ACCESS的数据源名 cn.Open StrSQL = "select * from ReportData Where 日期=#" & Date & "#" '使用SQL语句查找ReportData表中日期为Date的数据 res.Open StrSQL, cn, adOpenKeyset, adLockOptimistic res.AddNew '添加一个新的记录 res.Fields(0) = Date '在0列加入日期 res.Fields(1) = Hour(Time) '在1列加入时间 res.Fields(2) = Fix32.RW2.RW_Y0GBN11AP001_ZS.f_cv '在2列加入标签1 res.Fields(3) = Fix32.RW2.RW_Y0GBN11AP002_ZS.f_cv '在3列加入标签2 res.Update '保存记录Update(当Edit或AddNew方法完成后保存记录集) res.Close '关闭记录集 cn.Close Set res = Nothing Set cn = Nothing End Sub

IFIX如何制作水晶报表

IFIX如何制作水晶报表 IFIX制作报表条件如下: 1. 安装水晶报表EXCEL; XP系统安装SQLserver2005; WIN7系统安装SQLserver2008; IFIX (必须全部安装,才能执行下面的步骤) 2.恢复数据库history(详见history恢复说明):注意,如果还原时候提示已经有该文件名的数据库,则先找到其路径手动删除,重新建立。 3.把IFIX报表中的AAP,PDB,PIC三个文件夹拷入到相应的文件夹(Dynamics)下替代原有同名文件。 4.数据库的配置:见软件说明书。 5.注册REGSVR32 C:\MSCOMCT2.OCX文件,首先要把IFIX报表中的MSCOMCT2.OCX文件拷入到所对应的文件夹下。注册方法:运行此文件点击确定即可。(注册此项是在不安装VB,VC的情况下进行)如图: 6.运行IFIX软件,在C:\Dynamics\APP下打开iFix1_Action.rpt文件,然后点击菜单:数据库——设置数据源位置,找到FIX Dynamics Historical Data 并点击WKH (如图):

如图选择(替换为),选中创建新连接__ODBC (RDO) ____双击 FIX Dynamics Historical Data, 点完成,然后点击FIX Dynamics Historical Data下的节点,最后点<更新>,关闭保存.

(如果IFIX ODBC打不开请在IFIX的任务配置中添加 C:\DYNAMICS\WSQLODC.EXE和C:\DYNAMICS\HTC.EXE,启动历史数据采集) 7.Report_Time设置为后台启动,将Report_Time的(调度属性)改为后台运行。打开Intellution Dynamics WorkSpace后点击左侧(调度)找到Report_Time 选项双击如图: 反键单击Report_Time的菜单选择(调度程序属性),如图: 点击则弹出选择项将(前台运行)改成(后台运行)如图:

IFIX报表(ODBC)

IFIX报表ODBC制作 IFIX报表常规做法是采用IFIX内嵌的VBA语言,借助于OFFICE自带的ACCESS和EXCEL 来实现的。 例如,在IFIX画面上通过点击一按钮来察看某一天的数据,假如这有N个模拟量如: Y0GCK14CP101, Y0GCK13CP101, Y0GCQ11CF101,Y0GCC10CP101等数据间隔一小时归一次档。 一 Access数据库(表)简介 创建一个ACCESS数据库如ReportDataBase.mdb,用来存放报表所需的数据。IFIX 以一定的时间间隔将数据写入此数据库预先创建的表中如ReportData。 ReportData的结构如下: 字段名数据类型 日期日期/时间数值(整小时,此时间用来排序) 时间数值 Y0GCK14CP101 数值 Y0GCK13CP101 数值 Y0GCQ11CF101 数值 ………………数值 注意: 1 修改字段名时,在设计视图里将原来的字段ID做修改后,日期字段名的索引必须设置成无,否则IFIX将报错:[Microsoft][ODBC Microsoft Access Driver] 由于将在索引,主关键字,或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值可防止以上错误发生; 2 打开Access表Reportdata,右键单击,选择设计视图,弹出的下拉选项中选择字段大小或数据类型,日期选择:短日期,时间选择:长整型,用户自定义的标签类型选择:双精度。如下图示 二建立ODBC数据源 创建ODBC数据源。控制面板->管理工具->ODBC数据源,打开ODBC数据源管理器,建立一个“系统DSN”,点击“添加”,双击“Microsoft Access Drivers (*.mdb)”,出现“ODBC Microsoft Access 安装” 对话框。 数据源名:ReportSource注意:数据源名字后面会用到

iFix如何制作EXCEL报表

iFix如何制作EXCEL报表 在VBA中引用Microsoft Excel 11.0 Object Library和Microsoft ADO 6.0 Library。在画面中添加个按钮。复制以下代码: ‘----------开始复制(不包括此行)-------------- [hide] Option Explicit Dim rsADO As ADODB.Recordset Dim cnADO As ADODB.Connection Private Sub Command1_Click() Dim StrDir As String StrDir = "E:\" Dim i As Long Dim Sql As String Sql = "SELECT * FROM THISNODE" Set cnADO = New ADODB.Connection Set rsADO = New ADODB.Recordset cnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Driv ers;DSN=FIX Dynamics Real Time Data;UID=;PWD=" cnADO.Open rsADO.CursorLocation = adUseClient rsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1 If rsADO.RecordCount <= 0 Then MsgBox "无数据!", vbOKOnly + vbInformation, "信息..." Set cnADO = Nothing Set rsADO = Nothing Exit Sub End If Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = New Excel.Application xlApp.DisplayAlerts = False xlApp.Visible = False Set xlBook = xlApp.Workbooks.Open(StrDir & "\报表.xls")'需要文件(E:\报表.xls) Set xlSheet = xlBook.Worksheets(1) For i = 1 To rsADO.RecordCount

IFIX制作水晶报表教程

IFIX制作报表条件如下: 1.安装EXCEL软件;电脑如果是XP系统,则可以安装SQLserver2005数据库软件; 如果是WIN7系统则安装SQLserver2008;组态软件IFIX必须全部安装,才能执行下面的步骤; 2.恢复数据库history(详见history恢复说明):注意,如果还原时候提示已经有该文件名的数据库,则先找到其路径手动删除,重新建立。 3.把IFIX报表中的AAP,PDB,PIC三个文件夹拷入到相应的文件夹(Dynamics)下替代原有同名文件。 4.数据库的配置:见软件说明书。 5.注册REGSVR32 C:\MSCOMCT2.OCX文件,首先要把IFIX报表中的MSCOMCT2.OCX 文件拷入到所对应的文件夹下。注册方法:运行此文件点击确定即可。(注册此项是在不安装VB,VC的情况下进行)如图: 6.运行IFIX软件,在C:\Dynamics\APP下打开iFix1_Action.rpt文件,然后点击菜单:数据库——设置数据源位置,找到FIX Dynamics Historical Data 并点击WKH (如图): 如图选择(替换为),选中创建新连接__ODBC (RDO) ____双击FIX Dynamics Historical Data,点完成,然后点击FIX Dynamics Historical Data下的节点,最后点<更新>,关闭保存.

(如果IFIX ODBC打不开请在IFIX的任务配置中添加C:\DYNAMICS\WSQLODC.EXE和C:\DYNAMICS\HTC.EXE,启动历史数据采集) 7.Report_Time设置为后台启动,将Report_Time的(调度属性)改为后台运行。打开Intellution Dynamics WorkSpace后点击左侧(调度)找到Report_Time选项双击如图: 反键单击Report_Time的菜单选择(调度程序属性),如图: 点击则弹出选择项将(前台运行)改成(后台运行)如图:

iFix中实现EXCEL报表

iFix中如何实现EXCEL报表 在VBA中引用Microsoft Excel 11.0 Object Library和Microsoft ADO 6.0 Library。在画面中添加个按钮。复制以下代码: ‘----------开始复制(不包括此行)-------------- [hide] Option Explicit Dim rsADO As ADODB.Recordset Dim cnADO As ADODB.Connection Private Sub Command1_Click() Dim StrDir As String StrDir = "E:\" Dim i As Long Dim Sql As String Sql = "SELECT * FROM THISNODE" Set cnADO = New ADODB.Connection Set rsADO = New ADODB.Recordset cnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Driv ers;DSN=FIX Dynamics Real Time Data;UID=;PWD=" cnADO.Open rsADO.CursorLocation = adUseClient rsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1 If rsADO.RecordCount <= 0 Then MsgBox "无数据!", vbOKOnly + vbInformation, "信息..." Set cnADO = Nothing Set rsADO = Nothing Exit Sub End If Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = New Excel.Application xlApp.DisplayAlerts = False xlApp.Visible = False Set xlBook = xlApp.Workbooks.Open(StrDir & "\报表.xls")'需要文件(E:\报表.xls) Set xlSheet = xlBook.Worksheets(1) For i = 1 To rsADO.RecordCount

在iFix中采用ODBC制作历史报表

在iFix中采用ODBC制作历史报表 1.生成历史数据库 打开系统配置 点击,添加HTC.EXE ,启动方式选择后台方式

启动历史定义 定义历史数据库

启动任务控制器,启动HTC 2.ifix历史数据库介绍 打开ODBC数据源管理器,大家可以看到IFIX实时和历史数据库,历史数据库一般存放在HTRDATA文件夹中

3.配置调度 定义引用

引用:Microsoft Excel 5.0 Object Library和Microsoft ActiveX Data Objects 2.7 编辑脚本 Dim ReportArray(15) As String '定义变量数组 Dim curTime As String '定义当前时间 Dim strStartTime As String '报表查询的时间范围 Dim strEndTime As String '报表查询的时间范围 Dim Interval As String '报表查询的间隔时间 Dim msexcel As Excel.Application '定义引用 Dim rsADO As New ADODB.Recordset Dim cnADO As New ADODB.Connection Dim SQL0, SQL1 As String Dim reportfile As String '存储文件名 Private Sub FixTimer4_OnTimeOut(ByVal lTimerId As Long) curTime = Now '取得当前时间 Dim curmonth, curday, curhour, curminute, cursecond As String curmonth = IIf(Month(curTime) < 10, "0" & Month(curTime), Month(curTime)) curday = IIf(Day(curTime) < 10, "0" & Day(curTime), Day(curTime)) strStartTime = Year(curTime) & "-" & curmonth & "-" & curday _ & " " & "00:00:00" strEndTime = Year(curTime) & "-" & curmonth & "-" & curday _ & " " & "23:59:59" Interval = "01:00:00" '时间间隔 reportfile = Year(curTime) & "-" & curmonth & "-" & curday reportfile = "e:\" & reportfile & ".xls" ReportArray(0) = "O0ERB01CTO01" '定义报表变量

IFIX连接SQL读写数据和制作excel报表图文教程

IFIX连接SQL数据库、制作excel报表详细教程一、I FIX连接SQL数据库读写数据 IFIX连接SQL数据库有多种方法,其中最为方便的两种方法是: (1)使用IFIX本身为SQL数据库提供的接口SQT和SQD; (2)VB+ADO。 下面分别介绍着两种方法的实现步骤。 1、使用SQT和SQD读写SQL数据库 1.1 安装SQL2008 (只列出关键步骤,其余直接点击“下一步”或“安装”) 打开SQL安装中心,点击“安装”; SQL2008简体中文版安装包下载链接:

点击“全新SQL Server独立安装或向现有安装添加功能”; 点击“输入产品密匙”,点击“下一步”:(根据版本选择) sql server2008密钥 Developer: PTTFM-X467G-P7RH2-3Q6CG-4DMYB Enterprise: JD8Y6-HQG69-P9H84-XDTPG-34MBB Microsoft SQL Server 2008 R2序列号密钥 开发版32位:MC46H-JQR3C-2JRHY-XYRKY-QWPVM 开发版64位:FTMGC-B2J97-PJ4QG-V84YB-MTXX8 工组版:XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q WEB版:FP4P7-YKG22-WGRVK-MKGMX-V9MTM 数据中心版32位:PTTFM-X467G-P7RH2-3Q6CG-4DMYB 数据中心版64位:DDT3B-8W62X-P9JD6-8MX7M-HWK38 企业版32位:R88PF-GMCFT-KM2KR-4R7GB-43K4B 企业版64位:GYF3T-H2V88-GRPPH-HWRJP-QRTYB

相关文档