基于ADO的IFIX历史数据报表

基于ADO的IFIX历史数据报表
基于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

1 引言

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

2 .ADO技术与iFIX历史数据库

2.1 ADO概述

ADO (ActiveX Data Objec t) 对象是DAO /RDO 的后继产物, 很多开发工具都支持这个对象, 比如Visual Basic 和ASP。它是Microsoft公司专门为适应网络数据库开发和客户端需求而推出的一种跨平台远程数据库访问技术。ADO 扩展了DAO和RDO所使用的对象模型, 它包含较少的对象、更多的属性、方法和事件, 这使得ADO 对象更容易使用。ADO 通过OLEDB 所提供的高性能数据访问方法, 可以方便快速地对各种数据源进行访问和操作。ADO 可访问的数据源包括关系或非关系型数据库、电子邮件和文件系统、文本和图形、自定义业务对象, 比如SQL - Server、Access、Orac le 数据库, exce l、word文档等。[2]

2.2 ADO 技术

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

ADO常用的组件对象有:ADODB.Connection和ADODB.Recordset。通过ADO 组件对象访问数据库,基本操作流程是:用Connection对象连接数据库,利用建立好的连接通过Connection、Command对象执行SQL命令,或利用Recordset

对象取得结果记录集进行查询、处理。

2.3 iFIX历史数据库

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

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

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

3.1 报表功能介绍

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

1)可以选择不同方式产生的报表,用户可选择诸如“冷却系统报表”“客户资料报表”“货物状态日报表”“库位状态日报表”等多种方式报表,并可根据发展需要和各用户之间的不同特点而随时变化

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

3)查询结果可导出,打印,对数据进行维护和修正

4)添加了权限管理,不同用户所能使用的功能依权限的高低而不同。图10所示

图10

图1

3.2设计过程及功能实现

在VB中, 使用ADO访问数据库主要有两种方式, 一种是使用ADO Data控件, 通过对控件的绑定来访问数据库中数据, 即非编程访问方式; 另一种是使

用ADO对象模型, 通过定义对象和编写代码来实现对数据的访问, 即编程访问

方式。本次报表功能实现主要利用ADO对象模型,使用ADO组件对象通过“FIX Dynamics Historical Data”数据源查询iFIX历史数据库和将查询的结果显示出来。[3]

1) 新建IFIX工程

在WINDOWS开始/运行中输入BackupRestore.exe /FactoryDefault,按步骤提示新建工程,如果使用系统默认工程,即安装软件时的工程,运行报表程序时,将出现错误,NO HISTORICAL DATA FOUND,刚开始误以为需要配置ODBC数据源,在这里耗费了许多时间,后来无意中在其他工程中发现可以实现这个功能,经过对文献资料的阅读,确定了读取历史数据时需要使程序在新建工程中。

2) 定义所需报表变量集

Ⅰ.在过程数据库中定义变量,建立相应的变量值。如G1.G2等,这部分变

量是在上位机中将用到的变量名,具体可参照IFIX电子书。

Ⅱ.在历史定义中选择所需记录的历史数据。选定节点的一组标签名,用来

标识含趋势分析所需过程数据的数据库块。最多可以定义255个采集组,每个采集组中包含80个不同的标签。这些标签是用户所需要记录的重要数据的数据名。在这里我们可以定义产生一个子文件的时间和要写入文件的数据的类型和大小。如图

图2

如需选用多个节点,可在SCU配置中,本地启动项选择“启动本地节点别

名”。如图3所示

图3

Ⅲ启动后台历史数据库数据采集,在进程中查看是否启动。

在SCU\配置\任务配置中,选择HTC ,如图4所示

图4

选择HTC完成后,可通过重启软件或者任务控制中HTC管理项启动,如图5所示

图5

小结:通过以上操作,我们可以看到在IFIX的HTRDATA文件夹下生成一个以你所定义的节点名为名称的文件夹,里面将产生在一段时间里用户所定义的标签所产生的数据,如图6所示

图6

FIX文件夹中的文件为*.H24或*.H08或*.H04,*代表历史数据库所定义的标签在各时间段所产生的数据,报表中要读取的数据就是从这些标签所记录的数据生成的文件中读取的。如图7所示

图7

3)在EXCEL中制作模板,

按照实际工程所需要记录的数据,如时间,数值,标签名等在excel中作出适合的表格。在设计模板的过程中,我们可以充分利用EXCEL自带的强大的函数功能,这样可以简化程序,将所需的数据进行更全面和准确的统计和分析,以求更加满足用户的需求。如图8所示

图8

将模板另存为网页htm格式,保存在当前目录的PIC文件夹下,以htm后缀可以保证操作和查看人员只能阅读而不能对里面的数据进行修改,以防止现场误操作。如图9所示

图9

4)在IFIX中新建画面及布置画面

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

Ⅰ在画面中选择ComboBox控件,DPTicker控件,WebBrower控件,Timer控件和菜单编辑控件PopupMenu控件等各项需要的控件。如果部分控件在IFIX中无法找到,可在VB中查询该控件名称,一般这些控件在C:\WINDOWS\system32中可以找到。

Ⅱ部分控件的命名和使用

在程序中将DTPiker控件命名为DTPstart和DTPend,配置如图所示

将ComboBox分别命名为ComboBox5,ComboBox6等,将WebBrower命名为WebBrower1,将Timer命名为aaa和ddd。

①在使用ADO对象之前,必须先将对象库引入当前工程中。使用VB集成开发环

境“工程”菜单中的“引用”对话框,将其中的“Microsoft ActiveX Data Objects 2.6 Library”和“IE Popup Menu”选中即可。下图为基本的引用,具体工程中可根据需要添加引用。

②对画面进行优化和布置。

用户可将各控件以自己的方式进行排列,美化画面,也可将相似的控件成组,方便管理画面。

5).使用外部数据库

如果需要读取外部数据如ACCESS数据库,可以建立一个*.mdb文件,并通过程序调用。

3.3.IFIX历史报表流程图

本次所使用的报表是基于ADO的IFIX历史数据报表,采用Mircrosoft新数据库访问技术,这是建立在OLEDB之上的高层数据访问。运用模块化的方式,采集“智能仓储系统”和“冷却系统”所产生的数据,如“智能仓储系统”中库位的状态位的变化和出库量,入库量的统计,对“冷却系统”中的水压,温度等变化值进行了实时的监控和有效管理,同时可通过对不同信号的读取:Ⅰ.射频卡信号的读取,连接ACCESS数据库,对其进行访问,了解客户的资料和产品的要求,智能实现对货物进行出入库的控制。Ⅱ对货物入库的信号的读取,访问FIX历史数据库,在EXCEL中显示历史数据

3.4程序设计思路:

本次所制作的报表使用一张共用的EXCEl工作簿,在这张工作簿可以添加所需的工作表如sheet1代表仓库库位状态日报表,sheet2代表仓库货物日报表,sheet3代表仓库货物月报表等等,使用这种方法能做到对报表的有效管理,只需在同一张工作簿中就可添加实际工程中所需要的各种报表,在面对比较庞大的系统的数据记录尤其显出了它的优越性。同时我们只需使用少量的常用控件就可实现对时间,报表类型的选择,我们还提供报表的打印,删除,导出等一系列的辅助功能,在开发新项目时具有较强的移植性。下面我们就如何实现该报表功能进行详细的介绍。

1)初始化和定义变量

定义报表系统中所需的各种变量,本次程序使用较多的子程序,我们定义了全局变量,实现对各个子程序的联系和控制。

'定义全局变量

Public X As Integer Public ExcelApp As excel.Application Public t As Integer Public ExcelBook As excel.Workbook Public r As Integer Public ExcelSheet As excel.Worksheet Public i As Integer Public rsADO As ADODB.Recordset Public j As Integer Public cnADO As ADODB.Connection Public m As Integer Public Sql As String

‘对其进行初始化,在Combobox控件中添加各种项目和各种相应的执行动作。Private Sub CFixPicture_Activated() ‘在combobox中添加各项目

ComboBox5.AddItem "货物情况日报表"

ComboBox5.AddItem "货物情况月报表"

ComboBox6.AddItem "客户资料报表"

………..

End Sub

选择combobox中项目时对应的执行动作

Private Sub Combobox5_change()

If ComboBox6.Text <> "" Then

ComboBox6.Text = ""

End If

If ComboBox5.Text = "库位状态日报表" Then

X = 1

Call CommandButton1_Click

ElseIf ComboBox5.Text = "货物情况日报表" Then

X = 2

Call Choice

Call CommandButton1_Click

……………..

End sub

2)初始化时间和下拉菜单

使运行状态下结束时间总是为当前系统时间,开始时间总是退后一个小时,方便得到最新的数据。

Private Sub CFixPicture_Initialize()

'初始化时间

Me.DTPstart = DateAdd("h", -1, Now)

Me.DTPend = Now

'初始化下拉菜单

IEPOP1.AddItem "&打开", 1

IEPOP1.AddItem "&关闭", 2

IEPOP1.AddItem "&保存", 3

……………

End Sub

3)主程序的设计

Ⅰ向该窗体加入日期时间控件DTPicker和浏览器控件WebBrower。

Ⅱ选择各报表类型,软件将按照指定的已选择的查询变量进行数据查询。Private Sub CommandButton1_Click()

On Error GoTo exect ‘发生错误跳转,执行相应的动作。

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

'处理开始时间StartDate = Format(Me.DTPstart, "yyyy-MM-dd HH:mm:ss") '处理结束时间DtmMonth = DateAdd("m", 1, Format(Me.DTPstart, "yyyy-mm") & "-01")

DtmMonth = Format(Me.DTPend, "yyyy-MM-dd HH:mm:ss")

'设置时间间隔strInterVal = Format(Me.DTPinterval1.Value, "HH:mm:ss") '查询语句

If X = 6 Then ‘表示当X=6时从THISNODE读取其中符合时间限制的VALUE,DATETIME,TAG 。

Sql = "SELECT VALUE,DATETIME,TAG FROM THISNODE" & _

" WHERE (DATETIME>={ts '" & StartDate & "'} AND" & _

" DATETIME<={ts '" & DtmMonth & "'})" & _

" AND InterVal='" + strInterVal + "'"

End If

Ⅳ '连接并读取数据库[8]

Set cnADO = New ADODB.Connection ‘创建新的Connection对象赋值给该变量Set rsADO = New ADODB.Recordset ‘创建新的记录

集.Recordset对象赋值给该变量

If X = 7 Then ‘指定连接字符串,将access数据库建立好后可以放置在当前工程的APP目录下,方便管理,这里使用共享数据库

SqlString1 = "Select *"

SqlString2 = " From 客户信息 "

SqlString3 = " Where 公司ID=" & "'" & Goal & "' and 卡片属性='提货' "

SqlString4 = "or 编号=" & "'" & Goal & "'"

Sql = SqlString1 & SqlString2 & SqlString3 & SqlString4 cnADO.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = \\GE25\SharedDocs\公司信息.mdb;Persist"

Else

cnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Drivers;" & _

"DSN=FIX Dynamics Historical Data;UID=;PWD=;"

End If

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

rsADO.CursorLocation = adUseClient

rsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1

Ⅴ‘判断有无数据,当rsADO.RecordCount即要查询的数据对应的行数<=0时跳出对话框。

If rsADO.RecordCount <= 0 Then

MsgBox "该时间范围内无数据"

Exit Sub

End If

Ⅵ 'Excel报表制作,创建符合需求的Excel模板。[4]

‘X代表同一张工作簿中不同的工作表,如X=1代表sheet1,X=2代表sheet2。。。Set ExcelApp = CreateObject("Excel.application") ‘创建新的Excel 进程

Set ExcelBook = ExcelApp.Workbooks.Open(System.ProjectPath & "\app\报表.htm")

Set ExcelSheet = ExcelBook.Worksheets(X)

ExcelApp.Selection.ClearContents

ExcelBook.Worksheets(X).Select

rsADO.MoveFirst

Ⅶ '不同报表中选择不同数据处理方式

Select Case X

Case 1

Call DO1

。。。。。。。

End Select

’保存关闭Excel进程

ExcelBook.Save

ExcelBook.Close

'将处理后的报表在浏览器中显示出来

With Me.WebBrowser1

.Navigate System.ProjectPath & " \app\报表.htm"

.AddressBar = False

End With

释放变量

Set ExcelApp = Nothing

Set ExcelBook = Nothing

Set ExcelSheet = Nothing

Set cnADO = Nothing

Set rsADO = Nothing

Q = 1

ThisWorkbook.Close savechanges:=False

exect: ‘发生错误跳转位置。

If Q <> 1 Then

ExcelApp.Quit

MsgBox CStr(Err.Number) + Err.Description

End If

Set cnADO = Nothing

Set rsADO = Nothing

Set ExcelApp = Nothing

Set ExcelBook = Nothing

Set ExcelSheet = Nothing

End Sub

4)子程序

在报表使用过程中,子程序的功能为处理在Excel显示出来的数据和读取各类数据库中的数据,模块化的方式,方便不同的用户根据实际需要进行调整,在保证主程序的同时,只需分块修改子程序,就可达到相应的功能。

Ⅰ '选择库位状态日报表时的数据处理方式

Sub DO1()

Dim rr =0 As Integer

Dim n=0 As Integer

Dim m=1 As Integer

For i = 5 To rsADO.RecordCount + 54 ‘rsADO.RecordCount 为每次调用的数据的的总个数

If m >= 0 And m <= 6 Then

Do While i = Int((rsADO.RecordCount) * (m) / 18) + 5 ‘将数据平均分成18份,写入18个库位对应的表格中

n = n + 3 ‘一个库位写完,换3行,再次写入

rr = rr + rsADO.RecordCount / 18

m = m + 1

If m = 7 Then Exit Do

Loop

If m = 7 Then

i = i + rsADO.RecordCount / 18 + 4

n = n - 18

End If

。。。。。。。。。

End If

With ExcelSheet ‘将数据写入Excel中

Range(Chr(Asc("b") + (n)) & (i - rr + 1)) = rsADO!Datetime & "" If rsADO!Value & "" = "" Then

Range(Chr(Asc("b") + (n + 1)) & (i - rr + 1)) = "无数据"

Else

Range(Chr(Asc("b") + (n + 1)) & (i - rr + 1)) = rsADO!Value & "" End If

Range(Chr(Asc("b") + (n + 2)) & (i - rr + 1)) = rsADO!Tag & "" End With

rsADO.MoveNext

Next i

End Sub

Ⅱ '选择客户报表时的数据处理方式,从ACCESS数据库中读取相应的数据。Sub DO5()

For j = 1 To rsADO.RecordCount

ExcelSheet.Cells((j + 5), 1) = rsADO.Fields(0).Value & "" ExcelSheet.Cells((j + 5), 2) = rsADO.Fields(1).Value & "" ExcelSheet.Cells((j + 5), 3) = rsADO.Fields(2).Value & "" ExcelSheet.Cells((j + 5), 4) = rsADO.Fields(3).Value & "" ExcelSheet.Cells((j + 5), 9) = rsADO.Fields(4).Value & ""

rsADO.MoveNext

Next j

End Sub

Ⅲ '打印报表子程序

Sub AA()

Dim Msg, Style, Title, Help, Ctxt, Response, MyString

Dim bPrinted As Boolean

Msg = "您真的要打印此报表吗 ?" '定义消息文本

Style = vbYesNo + vbDefaultButton2 ' 定义按钮

Title = "打印窗口" ' 定义标题文本

Help = "DEMO.HLP" ' 定义帮助文件

Ctxt = 1200 ' 定义帮助主题

Response = MsgBox(Msg, Style, Title, Help, Ctxt)

If Response = vbYes Then ' 用户按下“是”

bPrinted = Application.ActiveDocument.PrintOut ' 完成打印操作ExcelApp.ActiveSheet.PageSetup.Orientation = xlPortrait

ExcelApp.ActiveSheet.PageSetup.PageSize = xlPaperA4

ExcelApp.ActiveSheet.PrintOut

Else

End ' 用户按下“否”,返回原报表

End If

End Sub

Ⅳ '调用打印机的声明和子函数

Private Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" _

(pPrintdlg As PrintDlg) As Long

Private Type PrintDlg

lStructSize As Long

hwndOwner As Long

hDevMode As Long

hDevNames As Long

hdc As Long

flags As Long

nFromPage As Integer

nToPage As Integer

nMinPage As Integer

nMaxPage As Integer

nCopies As Integer

hInstance As Long

lCustData As Long

lpfnPrintHook As Long

lpfnSetupHook As Long

lpPrintTemplateName As String

lpSetupTemplateName As String

hPrintTemplate As Long

hSetupTemplate As Long

End Type

‘其他子程序可以上述方式依次添加,这里不再赘述。

3.5具体调试实现过程:

比如我们在客户资料报表这个对话框中选择“库位状态日报表”,此时X=1,将从工作簿中选择出代表“库位状态日报表”的sheet1进行数据处理和显示,同时可以在时间选择的对话框选择我们所需要的时间段的数据,选择开始时间、结束时间和显示在EXCEL表格中的数据的时间间隔,选择完成后,系统将跳过其他不满足条件的程序,运行cnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Drivers;" &” DSN=FIX Dynamics Historical Data;UID=;PWD=;",从历史数据库中读取满足上述条件的数据,此时,将调用子程序DO1,对读取出来的数据经过处理,按照EXCEL模板的要求依次填入表格中,最后显示在sheet1中。自此,我们完成了一次对报表的操作,如果需要查看客户资料,也将执行与上述相似的动作,调用子程序DO5,区别只是数据读取的位置不同,客户资料这一项数据是从ACCESS数据库中直接读取,另外,我们还提供了对报表的打印,删除,导出等辅助功能,当然这些功能需只能由通过权限认证的相应人员进行操作。

4.总结:

此次项目采用ADO技术为核心,以GE-IFIX为载体,对报表的基本功能进行开发。该报表具有很强的移植性,完成了目前工程应用中对报表功能的主体需求。在IFIX报表程序的开发中,遇到了许多未知的问题,最后都一一的突破了。但是,此报表还存在一些缺点,比如在选择报表的过程中,由于使用的的是同一个Excel进程,在进行快速,多次的操作时会出现错误,这时就需要使用任务管理器关闭Excel进程后才能继续使用报表。在今后的修正过程中,添加判断关闭Excel进程的程序,使报表能满足用户各种类型报表的查看。在实际操作过程中,将遇到更多的问题,不过我相信通过努力,可以将遇到的问题解决,在这个解决问题的过程中,也是我们成长进步的过程。

5.感谢语:

感谢福建工程学院GE FANUC 实验室的大力支持。

6.参考文献资料:

[1] IFIX报表备忘录

https://www.360docs.net/doc/3312195564.html,/lin-feng23/blog/static/288911272010323111279 71/

[2] 耿小芬《VB中的ADO数据库访问技术》晋城职业技术学院, 山西晋

城048000

[3] GE -Fanuc公司.IFIX电子书.水晶报表

[4]韩小良编著《.Excel VBA整合数据库应用》电子工业出版社

[5] [美] Guy Hart-Davis 《VBA从入门到精通》

[6]李林, 申时凯, 王卫星等. Visual Basic程序设计[M ]. 北京: 中国地质

出版社, 2007

[7]成怀丹徐青钟希钧《基于ADO技术的Cimplicity_HMI报表系统开发》国

网电力科学研究院/南京南瑞集团公司江苏省南京市 2I0003

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中各种数据块

首页?iFIX技术文章? iFIX技术文章:各类型数据块的典型应用 iFIX技术文章:各类型数据块的典型应用 您可以在以下应用场景下使用对应的数据块: AA 模拟量报警(模拟报警块) ?以设定的时间间隔从I/O 地址(如PLC 寄存器)读写模拟值。 ?执行平滑、信号条件和报警限值检查。 ?为每个类型的报警定义报警值和优先级。 ?当报警发生时关闭数字块。 ?只要该数据块仍处于有效的报警状态或“重新报警时间”未禁用,即可在“重新报警时间”字段中定义的时间内重新发出报警。 ?根据过程条件暂停此块内或多个块内的报警处理,提供智能报警。 ?从远程站点确认报警。 ?当链接到PID 或开关控制块时,帮助诸如直接数字控制等控制情况。 ?通过“下一个块”一栏把值传递给其它块。 AI 模拟量输入(模拟输入块) ?以设定的时间间隔或基于例外事件从I/O 地址(如PLC 寄存器)读写模拟值。?执行平滑、信号条件和报警限值检查。 ?当链接到PID 或开关控制块时,帮助诸如直接数字控制等控制情况。 ?通过“下一个块”一栏启动其它块的处理。 AO 模拟量输出(模拟输出块) ?把值发送到I/O 地址。 ?连接到调制的控制阀门和电机速度控制器。 ?从操作员显示屏、多数初级、二级和控制块接收值,包括PID 和梯度变化块。?通过“下一个块”一栏把值传递给其它块。 ?AR 模拟寄存器(模拟寄存器块) ?对多个I/O 位置进行读写,只要那些位置共用相同的工程单位限制和信号条件。?当无需报警和背景监视时,减少系统内存要求。 ?从PLC 内存上传和下载不常查看的或半静态的值。

BB 开关控制(开关块) ?为诸如加热器或泵之类的项提供实际控制。 ?提供特别的报警处理。 ?通过“下一个块”一栏处理其它块。 BL 布尔(布尔块) ?执行二进制操作和计算。 ?计算复合的报警条件。 ?监视多个I/O 点以获得大设备的状态。 ?为同步和控制批处理程序创建状态环。 ?通过“下一个块”一栏处理其它块。 CA 计算(计算块) ?通过把一个计算块与另一个计算块或扇出块链接,执行复杂的或多等式计算。?通过对尺寸进行计算,确认已制造零件的有效性。您可以使用此特性对有缺陷的零件计数。 ?当大量传感器(模拟输入块)监视同一参数时,找到平均读数。例如,模拟输入块可以在需要保持相同温度的管道的多个点上测量流的温度。 DA 数字量报警(数字报警块) ?检测数字状态的条件(液位或转变)。 ?代表诸如限值开关、阀门、报警触点或电机辅助触点的项。 ?通过打开(标签)和关闭(标签)字段把描述性标签指派给数字值,使它们对操作员更有意义。 ?为块定义报警值和优先级。 ?当报警条件发生时关闭数字块。 ?只要该块仍处于有效的报警状态或“重新报警时间”未禁用,即可在“重新报警时间”字段中定义的时间内重新发出报警。 ?根据过程条件暂停此块内或多个块内的报警处理。 ?从远程站点确认报警。 ?当链接到PID 或开关控制块时,帮助诸如直接数字控制等控制情况。 ?通过“下一个块”一栏把值传递给其它块。

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的概述及结构 →系统配置 →I/O驱动器 →工作台及画面介绍 →过程数据库及数据库编辑器 →画面对象及动画 →历史数据及趋势图 →报警及安全 一. iFix的概述及结构 1.iFix软件介绍 ●iFix 是一套工业自动化软件,为用户提供一个过程化窗口 ●为操作人员和应用程序提供实时数据 2.iFix 的基本功能 ●数据采集 ---与工厂I/O设备直接通讯 ---通过I/O驱动程序,与I/O设备接口 ●数据管理 --- 处理、使用所取数据 --- 数据管理 包括过程监视(图形显示),监视控制,报警,报表,数据存档3.iFix的概述及结构(续) 1)节点类型 概念:一台运行iFix软件的计算机称为一个节点 类型: ▲按功能划分: SCADA服务器 iClient客户端(VIEW或HMI节点) HMI Pak ▲按区域划分: ●独立节点 ---与网络中其他节点不进行通讯的节点 ●本地节点 ---描述了本地正在工作的节点 ●远程节点 ---在一个分布式系统中,不同于本地节点的节点 2)网络节点图 ●iFix用于连接工厂中的过程硬件

3)I/O驱动器 ▲过程数据 ●iFix用于连接工厂中的过程硬件 ●传感器和控制器数据送入过程硬件中的寄存器(过程硬件一般包括 PLC、DCS、I/O设备) ●iFix软件从过程硬件中获取数据 ▲I/O驱动器 ●iFix与PLC之间的接口称为I/O驱动器 ●每一个I/O驱动器支持指定的硬件 ●I/O驱动器的功能 --从I/O设备中读(写)数据 --将数据传/输至驱动镜像表(DIT)中的地址中 ▲iFix数据流 ●I/O驱动器读取过程硬件 --- I/O驱动器从过程硬件的寄存器中读取数据 ---该数据传入DIT ---驱动器读取数据的速率称为轮询时间(poll) ●SAC扫描DIT ---SAC从DIT中读数 ---该数据传入过程数据库PDB ---SAC读数的速率称为扫描时间 ●(工作台)Workspace向PDB发出请求 ---图形显示中的对象显示PDB的数据 ---其他应用可以向PDB请求数据 ▲过程数据库 1)扫描、报警和控制(SAC) ●SAC主要功能 -- 从DIT中读取数据 -- 将数据传至数据库PDB

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

ifix基于ACESS的操作记录

操作记录 按照图中示例进行配置,报警区域是在建立标签时设定好的。 配置前,在硬盘中建立数据库文件,及ODBC连接。图中:1—数据库类型,2—数据源名(ODBC),3—准备在数据库中创建的表名,4—表中所含数据名称。设置完成后点击“现在创建表”按钮即可。

显示 DTPicker1是VB日历控件,需要安装VB后才可使用,例程:Private Sub DTPicker1_Change() vxData1.QP1 = DTPicker1.Value End Sub vxData1控件和vxGrid1控件是iFIX的VX控件,要配合使用。vxData1控件配置过程:

声称SQL语句时使用向导,简单易懂。 使用时,注意属性中的含义。vxGrid1控件是副表,只要调用即可。

最终效果: 注意:操作记录是数据库记录的应用,需要定期清理数据库,所以在调度中还需编写删除相应数据记录的代码。 Private Sub FixTimer9_OnTimeOut(ByVal lTimerId As Long) On Error Resume Next 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=TL;UID=;PWD=;" cn.Open StrSQL = "delete from SOEDB where 日期<#" & Date & "#" res.Open StrSQL, cn, adOpenKeyset, adLockOptimistic res.Update res.Close Set res = Nothing Set cn = Nothing End Sub

基于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

四种监控组态软件的性能比较

四种监控组态软件的性能比较 本文对4种主要监控软件从图形及组态方案、数据点管理、网络功能、通信功能、管理、加锁设计等6个方面作出比较。 以下内容中的技术参数来源于几家软件的内部参数,其中的看法只代表个人的经历和个人的观点,仅供参考。运行在工业现场、楼宇自动化的监控软件有很多种,各种监控软件都有着传统的功能,都是提供工业现场控制、楼宇控制的自动化解决方案,实现现场生产的远程可视化过程,现场数据获取和监控功能的工具;同时这些软件在监控中为了权衡矛盾,在软件设计中有所侧重,再加上各软件的设计方案不大一致,运用技术不同,因而在它们的功能反映上就有着自己的鲜明的特点。目前的监控软件有很多种,我就自己的工程运用把以下四种软件即:Intellution公司的iFIX(2.2)、GE公司的Cimplicity(4.01)、Wonderware公司的InTouch(7.1)以及Siemens公司的WinCC(4.02)作以比较,这其中Intellution公司和Wonderware公司是专门从事监控软件工作的,在市场占领绝大一部分份额;Cimplicity 和WinCC 是GE和Siemens公司自动化产品的配套产品,正努力推向市场。下面就把这四种主要软件从图形及组态方案、数据点管理、网络功能、通信功能、管理方面、加锁设计等六个方面作比较。 一、图形及组态方案 4种软件都是基于Object画面,都能实现对现场点的监视: iFIX:图形功能很强,支持多种图形格式,其追加的图形库,内容丰富,解决了原来图形过大的问题。可同时使用256种颜色,其中有64种颜色可用彩虹色调色,组成各种调色方案,嵌入图形中不会因放大缩小而失真。组态中提供树形结构图,能够浏览所画画面中的所有图形对象,组态信息,提供了全局性的变量组态方案,供画面组态调用,从而实现一改全改的功能,而且全局性的变量并不占用Tag点,对于画面中Group组内的对象组态并不改变,使状态变化丰富多彩,点数的扩展功能很强,有全面解决扩展点的报警、报警记录、历史记录的方法,有查找替换功能,可以替换整个图画以及画面中的对象的属性、组态点信息,对于同类型物体,避免重复组态。内嵌VBA,具有自己的内部函数,又有广泛的VB函数,功能扩展更为有利。支持双向OPC,支持所有类型的ActiveX、OLE,对不健全的控件所引发的错误进行保护,对控件的属性操作完全控制。编辑与运行是切换进行的,这有利于对现场生产安全的保障;有独立的报警监视程序,支持在线修改,具有画面分层功能,运行时可以根据程序很方便地更换对象的连接数据源,可以使控制更灵活。Cimplicity:图形功能最为强大,图库图形丰富多彩,它支持从画面到画面包含对象的颜色渐变,这是目前其他监控软件都不具备的功能,只是对插入的对象一定要进行格式转化,不然会有死机现象。一个画面一个进程,运行脚本是多线程的,所以图画虽然大,但运行速度很快。具有基于对象链接的拷贝功能,可以像iFIX一样避免对同一对象在多个画面中出现时修改的多次进行,但存在着运行时母板必须处于激活状态的缺憾。编辑与运行分开,有独立的报警、历史趋势运行管理程序,内嵌VBA,具有自己的内部函数,又有广泛的VB函数,组VBA与通用运用方式不一样,支持ActiveX、OLE插入,但对控件其中的一些属性进行了锁定。点的扩展功能与iFIX 一样强大,用之不竭的虚拟变量并不占用点数,但对于扩展点的报警设定比较难解决,输出问题,历史记录是没问题的。对数据节点的修改不是在线的,必须先停止工程,再启动工程。支持多条件组态,为组态方案提供了很好的解决方法。 InTouch:图形界面的美观性较差,粘贴位图操作较为繁琐,且引入的图形放大后的变形很大,自配的按钮文字不能变色,实现起来比较费事。支持ActiveX控件,但不具有第三方控件的出错保护,不健全的控件会造成系统出错。采用有限的内部函数,其功能也只是常用监控的功能,复杂一点的功能如报表就只能借助于其他工具。无论是否I/O点,包括全局变量,都占用Tag点数,点数的扩展只局限于模拟量读入,按位分解,比起iFIX、Cimplicity显得小气得多,常常会让设计者因为点数的不足而窘迫。支持组态对象的查找、替换功能。对象组合上存在着组合后原单个物体的组态都将消失、使得在状态变化设计上得另谋出路。 WinCC:图形功能如InTouch一样,调色板中可以同时使用的颜色有16种,提供的图库有限、不支持AutoCAD的图形格式,点数的扩展也同InTouch一样,只有模拟量读入,按位分解,WinCC提供公开的位操作手段,可以对模拟量中的位进行读取并进行报警设定,但没有直接的方法进行历史趋势记录,也没有直接的方法对位进行修改。有双向OPC支持,支持ActiveX。使用内部语言,环境如同C 语言。同样使得其功能扩展变得容易。 二、数据点管理 它们都提供了统一环境进行数据点的定义,InTouch与Cimplicity提供了为数不多的几种数据类型,但Cimplicity提供了对监控点的采样处理技术,没有别的功能块;WinCC数据类型相对多一些,而iFIX提供的数据类型最多,有很多现成的功能块;历史记录块、趋势块、计算块、PID块、计时块,这对于设备运行时间计算,数据转化等工作可以不必在画面中去做,同时iFIX还提供十多种信号发生器,在调试中帮助很大,实现非常方便。4种软件中iFIX的数据点管理是独立于画面运行的,直接反映现场信息,数据点一经设定就可以立即反映现场状态(如果通信是成功的),这是其他3种软件所不具备的特点。Cimplicity另外提供了一个查看点的信息平台,在运行时可以用来监视点状态,编辑时可以用来查看点组态信息,实现组态的替换。iFIX、Cimplicity都提供了数据管理库的输入、输出功能,可以把TAG信息输出到Excel这样一个网格文档操作最方便的工具中,可以在Excel中方便地完成繁琐的TAG点定义设置工作,再从Excel回

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教程

F I X154基础培训

154培训介绍 ●为学员提供对iFix有较好的了解 ●以新用户的角度来设计课程 ●课程包括配置和应用iFix软件、建立应用程序的实验,通过使用软件中的大量组件开发应用程序 预备知识 ●熟悉个人计算机,特别是Windows NT和Windows 2000 ●过程控制应用的常识 ●熟悉intellution软件是有帮助的,但不是必要的 培训内容及课程安排 ●第1天 iFix概述和结构,系统配置,I/O驱动器,工作台及画面介绍 培训内容及课程安排 ●第3天 全局,调度,数据库编辑器,程序块,VBA介绍,趋势图

第一章概述●iFix产品概貌 ●Intellution Dynamics ●进行练习以巩固所学知识 ●iFix是一套工业自动化软件 ●“过程化窗口” ●为操作员和应用程序提供实时数据 节点:运行i F i x的计算机●SCADA节点 Supervisory Control And Data Acquisition ●iClient节点 VIEW / HMI

●HMI PAK = SCADA + iClient 网络节点类型 ●独立节点 ●本地节点 ●远程节点 其它节点类型

第二章i F i x结构 ●基本结构 ●I/O驱动器 ●过程数据库 ●图形显示 ●分布式结构 ●进行练习以巩固所学知识 I/O驱动器 ●iFix从过程硬件获取数据 PLC,DCS,简单I/O设备…… ●I/O驱动器是iFix与过程硬件之间的接口 ●I/O驱动器支持特定的硬件设备 ●I/O驱动器以poll记录格式收集数据,并传输至DIT D I T(D r i v e r I m a g e T a b l e) ●SCADA服务器内存中 ●存储I/O驱动器的轮询记录数据 ●轮询时间poll time I/O驱动器基本结构 S A C

五种组态软件的比较

五种组态软件Cimplicity、InTouch、WinCC、EC2000之比较 针对在国际市场占有大部分市场份额的几种监控软件,本文对4种国外监控软件和EC2000系统从图形及组态方案、数据点管理、网络功能、通信功能、管理、加锁设计等6个方面作出比较。 以下内容中的技术参数来源于几家软件的内部参数,仅供参考。运行在工业现场的监控软件有很多种,各种监控软件都有着传统的功能,都是提供工业现场控制、自动化解决方案,实现现场生产的远程可视化过程,现场数据获取和监控功能的工具;同时这些软件在监控中为了权衡矛盾,在软件设计中有所侧重,再加上各软件的设计方案不大一致,运用技术不同,因而在它们的功能反映上就有着自己的鲜明的特点。目前的监控软件有很多种,国外比较著名的四种软件即:GE-Intellution公司的iFIX、GE公司的 Cimplicity、Wonderware公司的InTouch以及Siemens公司的WinCC和EC2000作以比较,这其中GE-Intellution公司和Wonderware公司是专门从事监控软件工作的,在市场占领绝大一部分份额;Cimplicity和WinCC 是GE和Siemens公司自动化产品的配套产品,正努力推向市场。EC2000是南瑞自控公司的水电自动化监控软件,目前已应用于多个水电站和泵站、闸门。下面就把这五种软件从图形及组态方案、数据点管理、网络功能、通信功能、管理方面、加锁设计等六个方面作比较。 图形及组态方案 5种软件都是基于Object画面,都能实现对现场点的监视: iFIX的图形功能很强,支持多种图形格式,其追加的图形库,内容丰富,可同时使用256种颜色,其中有64种颜色可用彩虹色调色,组成各种调色方案,嵌入图形中不会因放大缩小而失真。组态中提供树形结构图,能够浏览所画画面中的所有图形对象,组态信息,提供了全局性的变量组态方案,供画面组态调用,从而实现一改全改的功能,而且全局性的变量并不占用Tag点,对于画面中Group组内的对象组态并不改变,使状态变化丰富多彩,有查找替换功能,可以替换整个图画以及画面中的对象的属性、组态点信息,对于同类型物体,避免重复组态。内嵌VBA,具有自己的内部函数,又有广泛的VB函数,功能扩展更为有利。支持双向OPC,支持所有类型的ActiveX、OLE,对不健全的控件所引发的错误进行保护,对控件的属性操作完全控制。编辑与运行是切换进行的,这有利于对现场生产安全的保障;有独立的报警监视程序,支持在线修改,具有画面分层功能,运行时可以根据程序很方便地更换对象的连接数据源,可以使控制更灵活。 Cimplicity:图形功能在四种国外软件中最为强大,图库图形丰富多彩,它支持从画面到画面包含对象的颜色渐变,这是目前其他监控软件都不具备的功能,只是对插入的对象一定要进行格式转化,不然会有死机现象。一个画面一个进程,运行脚本是多线程的,所以图画虽然大,但运行速度很快。具有基于对象链接的拷贝功能,可以像iFIX一样避免对同一对象在多个画面中出现时修改的多次进行,但存在着运行时母板必须处于激活状态的缺憾。编辑与运行分开,有独立的报警、历史趋势运行管理程序,内嵌VBA,具有自己的内部函数,又有广泛的VB函数,组VBA与通用运用方式不一样,支持ActiveX、OLE插入,但对控件其中的一些属性进行了锁定。点的扩展功能与iFIX一样强大,用之不竭的虚拟变量并不占用点数,但对于扩展点的报警设定比较难解决,输出问题,历史记录是没问题的。对数据节点的修改不是在线的,必须先停止工程,再启动工程。支持多条件组态,为组态方案提供了很好的解

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介绍

iFIX介绍 iFIX是一个专业的fix组态软件,是GE 智能平台(GE-IP)提供自动化硬件和软件解决方案,iFIX 5.5中文版是至今中文用户使用人数最多的用户之一。有需要的朋友们可以下载试试吧! iFIX 5.5中文版提供了生产操作的过程可视化、数据采集和数据监控。iFIX可以帮助您精确地监视、控制生产过程,并优化生产设备和企业资源管理。它能够对生产事件快速反应,减少原材料消耗,提高生产率,从而加快产品对市场的反应速度,提高用户收益。 主要功能 监控企业生产过程设备及资源 采集并分享实时数据和历史数据给企业各层用户 及时响应生产要求和市场需求 最大化企业效率,提高生产力,降低生产成本和浪费 利润来自于一个提供100%数据集成而又十分安全的自动化系统 “Designed for 21 CFR Part 11TM”能够记录操作员的操作记录,建立符合FDA(美国食品及药物管理局)21 CFR Part 11法规的重要电子签名记录体系。 IBM Pentium II 266MHz 个人或商用计算机,基于Windows NT/2000/XP (需Pentium 4,1GHz) 内存:96 MB 120 MB硬盘空间 CD - ROM驱动器 24位图形显示卡,SVGA或更高显示器 并行端口或USB端口 网络适配器: NetBIOS或TCP/IP兼容网络适配器,单机版应用不需网络适配器 iFIX技术优势 强大的分布式客户/服务器结构 iFIX服务器负责采集、处理和分发实时数据 可选的客户机类型包括:iClientTM,iClientTSTM(用于Terminal Server )和iWebServerTM。实时客户/服务器结构具有无与伦比的可扩展性 快速的系统开发及配置 在一个易于使用的 Intellution 工作台集合开发环境中直观地建立您的系统 使用强大的“智能图符生成向导”更快速地开发和配置应用系统 利用iFIX 特有的“即插即解决”能力集成第三方附加应用软件 在线开发您的应用程序,无需停止生产线或重新开机 键宏编辑器为触摸键提供了强大而多样的功能 动画专家使您无须掌握 VBA 编程即可使用内部的和第三方的ActiveX控件 点组编辑器节省了大量的开发时间 事件调度器令任务在前台或后台自动运行 应用集成

报表控件应用-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历史报警数据存储与查询

关于IFIX历史报警数据存储与查询实例一.ODBC服务的连接 开始-设置-控制面板-管理工具-数据源ODBC 选用户DNS-添加-选Microsoft Access Driver(*.mdb) 数据源名:Myalarm 选(或创建)数据库名:Alarm.mdb, 文件类型:Access,驱动器D: 连接池-禁止 二.系统SCU的配置 SCU-IFIX-配置-报警-报警ODBC服务,启动-修改- 区域(A):从报警区域数据库中选择- CLQS-ALM-增加-确定配置:数据库类型:Access 数据库标识符:Myalarm 列配置:选9项 现在创建表:FIXALARMS(默认表名) 其它默认-确定 保存退出 三.控件的引用 1.日期时间控件 典型装VB6.0后, 项目工具栏文件----工具栏----插入OLE对象 双击选Microsoft date and time picker控件 日期控件-属性-格式:1-dtpShortDate,有效前不打勾。其它默认, 时间控件-属性-格式:2-dtpTime, 有效前不打勾。其它默认2.vxData控件(数据管道) IFIX4.0工具箱底部vxData图标

右键-属性vxData对象----PROPERTIES VISICONXDATA VXDATA对象 提供者:Microsoft OLE DB Provider for ODBC Drivers 数据库:DNS名:Myalarm,用户名密码选项均空---测试连接-测试连接成功-确定 记录源:命令类型:SQL命令 应用-确定 3.vxGrid控件(显示) 工具箱底部vxGrid图标 选控件 vxGrid1-右键-动画-高级-高级动画配置-行为-ADORecords-动画打勾数据源:报警记录一览表.vxData1.ADORecords 数据转换:对象 四.VBA脚本的编写 1.初始化脚本代码 '初始化设置 Private Sub CFixPicture_Initialize() '设定默认开始时间 Me.DTPFromDate = DateAdd("d", -1, Now)

相关文档
最新文档