ifix基于ACESS的操作记录

合集下载

IFIX通过VB脚本调用ACCESS数据库制作报表

IFIX通过VB脚本调用ACCESS数据库制作报表

IFIX通过VB脚本调用ACCESS数据库数据制作报表作者的前一篇文章已经详细介绍了,如何通过调度将数据保存在access数据库中,今天分享一下,通过脚本调用数据库中的数据形成报表。

步骤01:建立报表模板1.使用Excel根据实际报表样式建立报表模板2.将报表模板另存为(*.htm,*.html)格式文件,文件打开如下图所示:步骤02:新建报表查询画面1.通过IFIX工具箱中的插入OLE对象,插入控件Microsoft date and timecontrol,控件属性中,将customformat值修改为yyyy/MM/dd HH:mm:ss,控件名称默认为DTPicker1;2.同样通过IFIX工具箱中的插入OLE对象,插入Microsoft Web Broswer控件,用于显示报表;3.通过工具箱插入按钮,用于进行报表查询;如下图所示:步骤03:VB脚本开发,调用ACCESS数据库中的历史数据,填写到报表模板中;具体脚本如下:Private Sub CommandButton4_Click()'On Error Resume NextDim OutReportFile As String '定义打开的报表模板路径和名称变量Dim InReportFile As String '另行保存报表的路径和名称变量Dim cn As ADODB.ConnectionDim res As ADODB.RecordsetDim StrSQL As StringDim i As IntegerDim row As IntegerDim MyDateMyDate = Format(Now(), "yyyy-MM-dd")Dim msexcel As Excel.ApplicationSet msexcel = CreateObject("Excel.Application")With msexcel.Visible = False '如为FALSE,则不显示EXCEL。

如何使用iFix的数据库块SQT和SQD

如何使用iFix的数据库块SQT和SQD

如何使用SQT,SQD块从数据库中读取数据
本文以Access数据库为例
第一步:在Access数据库中建两个数据库。

数据库一:ifix_sql_tables.mdb 包含两个表
表一:SQLLIB
输入一条记录:sqlname: testsel
Sqlcmd: Select col2 from t1;
数据库二:test.mdb包含一个表
表t1结构如下
任意输入数条记录。

第二步:在操作系统的ODBC数据源管理器中系统DSN页下创建两个数据库的ODBC数据源名称:
Test.mdb的名称是test
Ifix_sql_tables.mdb的名称是iFIXTables
第三步:iFIX的SCU中配置SQL,加入帐户iFixTables, test
配置SQL任务如下
第四步:iFixPDB中定义以下数据块TESTDO1: DO块,SIM点,用于触发SQT块SQL_SELECT: SQT块
注意其中数据标签一项:testdo1.f_cv,事件类型为值变化
高级选项如下:
注意:选择参数一项为“单行”,行一项为“1”,意思是取返回结果的第一条记录。

BATCH_ID: AO块,SIM点,用来接收数据库的值
注意高限为10000,防止返回数据超限。

SQL_SELECT_DATA:SQD块
第五步:建画面
1、建数据连接,显示Batch_ID的值
2、建按钮,切换testdo1的值以触发SQT块执行
检查结果,可以打开任务控制,在SQL页中,点击“帐户状态”按钮,可以看到执行情况,
如下图。

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

有关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.ApplicationSet 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 With2.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历史数据库和实时数据库。

iFIX历史库数据查询

iFIX历史库数据查询

历史库数据查询1. VisiconXGrid.vxData(1)从iFIX工作台的菜单栏中单击“插入\OLE对象”。

(2)从“插入对象”对话框的对象类型列表中点击选择“VisiconXGrid.vxData”控件。

单击“确定”按钮插入该控件。

(3)从画面中单击选择控件后,点击右键选择“属性(R) VisiconXData.vxData对象(O)”,打开“VisiconXData.vxData属性”对话框。

(4)在“提供者”选项卡中,单击选择“Microsoft OLE DB Provider for ODBC Drivers”。

(5)在“数据库”选项卡DSN名中,单击选择“FIX Dynamics Historical Data”。

(6)在“记录源”选项卡中,写入SQL命令:SELECT*FROMFIX(7)单击“确定”关闭对话框,完成vxData控件的设置。

注:以上SQL命令的查询结果仅显示当天的数据。

如果需要查询以前的数据,需要指定时间段,如:SELECT*FROMFIXWHERE(FIX.DATETIME > {ts '2011-12-18 08:25:00'})AND(FIX.DATETIME < {ts '2011-12-19 10:54:00'})时间段通过在画面中插入两个DTPicker控件作为起始时间和结束时间,用户可以更改vxData控件的QP值或编写脚本来实现时间赋值。

2. VisiconXGrid.vxGrid(1)从iFIX工作台的菜单栏中单击“插入\OLE对象”。

(2)从“插入对象”对话框的对象类型列表中点击选择“VisiconXGrid.vxGrid”控件。

单击“确定”按钮插入该控件。

注:vxData1控件和vxGrid1控件是iFIX的VX控件,要配合使用。

(3)从画面中单击选择控件后,点击右键选择“动画”,打开“vxGrid1动画”对话框。

MS ACCESS数据库实现自动压缩方式(IFIX)

MS ACCESS数据库实现自动压缩方式(IFIX)

MS Access数据库实现自动压缩方式MS Access数据库在一般情况下,其所占空间将随着数据量的增多而增大,即使在程序中利用SQL语句根据条件删除记录,数据库的大小也不能自动减小(因为删除操作在物理上是没有把数据记录删掉,因此数据库大小将不会减小)。

本方式是实现Access数据库的自动压缩,实现平台是iFIX组态软件中实现的。

因为Access是iFIX的ODBC报警记录的存储体,在iFIX运行期间,数据库是按独占方式访问的,程序中将无法利用Access设置的“修复和压缩数据库”功能。

本方式实现的思路是:首先设置ODBC报警数据库(Access)为“关闭时压缩”选项,然后在程序中把ODBC报警数据库(Access)复制到另一目录,再利用语句把数据库打开,待设定的时间到达后(例如五秒钟)就关闭ODBC报警数据库(Access),最后再把ODBC报警数据库(Access)复制到原来的目录,替换原来的数据库文件。

约定:ODBC报警数据库(Access)文件及存放目录是"C:\Dynamics\MXLAlarm\S123.mdb";ODBC报警数据库(Access)文件临时存放目录是:"C:\Dynamics\MXLAlarm\Back\";Access运行程序及存放目录为:"C:\Program Files\Microsoft Office\OFFICE11\ MSACCESS.EXE"。

下边是实现步骤及图解:[1]对ODBC报警数据库(Access)文件S123.mdb进行设置。

打开数据库文件,单击“工具”—“宏”—“安全性”选项,在“安全级”选项卡内选择“地”,如下图所示;单击“工具”—“选项”,在“常规”选项卡内选上“关闭时压缩”选项。

如下如所示;[2]iIFX中添加代码。

在VB脚本编辑环境内,在菜单栏上选择“工具”—“引用”,在对话框内添加对“Microsoft Scripting Runtime”的引用,这是为了在程序中可对文件进行操作;在脚本最顶端添加两个API函数,用来在程序中实现对Windows窗口的操作,添加的函数为(可以直接复制粘贴):Private Declare Function FindWindow Lib"user32"Alias"FindWindowA"(ByVal lpClassName As String,ByVal lpWindowName As String)As LongPrivate Declare Function SendMessage&Lib"user32"Alias"SendMessageA"(ByVal hwnd As Long,ByVal wMsg As Long,ByVal wParam As Long,ByVal lParam As Any)编写操作代码:'代码及说明Dim hw&,cnt&'存放Windows句柄'============================================================Dim srcfile As String'存放数据库原文件Dim desfile As String'存放数据库临时文件srcfile="C:\Dynamics\MXLAlarm\S123.mdb"'设置数据库原文件目录文件地址Dim Fso As New FileSystemObject'创建FSO对象实例Dim filepath As String'设置数据库临时文件目录文件地址desfile="C:\Dynamics\MXLAlarm\Back\S123.mdb"'将数据库原文件拷贝至临时文件目录,若存在同名文件则覆盖Fso.CopyFile srcfile,desfile,True'=============================================================='利用Shell命令把临时数据库文件打开Shell"C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE C:\Dynamics\MXLAlarm\Back\S123.mdb",vbMinimizedNoFocus'设定时间间隔start=Timer'时间间隔摄动为5SDo While Timer<start+5DoEventsLoop'5秒时间到达后,关闭数据库临时文件hw&=FindWindow(vbNullString,"Microsoft Access")'查找Microsoft Access窗体'hw&不为零则表示找到要关闭的窗体,并发送消息,关闭窗体If hw&<>0Thencnt&=SendMessage(hw&,&H10,0,0&)'关闭窗体End If'将临时文件复制到原文件目录,并覆盖原文件Fso.CopyFile desfile,srcfile,True'程序结束[3]在iFIX实现Access数据库的自动压缩,可以利用调度来实现。

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中

通过ODBC配置及VB脚本开发将IFIX数据写入到ACCESS数据库中1.配置计算机ODBC(1)使用access新建一个accdb数据库,命名为ReportData,后面要用到;(2)计算机-----控制面板-----ODBC 数据源(32位)进入配置界面,需要注意一点,必须配置32位的ODBC,因为IFIX软件只能够识别32位的,配置界面如下图:(3)选择系统DSN,点击添加按钮,根据数据库后缀选择需要的驱动程序,然后点击完成;我使用的access数据库,数据库后缀为accdb,说明一点:对于mdb 类型的数据库,是老版本access的数据库类型,新版本的access都是accdb,但是也能够打开mdb类型数据库,如果没有Microsoft access driver(*.mdb,*.accdb)百度搜索一下,下载安装就好了;(4)数据源名命名为:ReportSource,数据库选择第一步中新建的数据库ReportData;(5)点击高级选项,设置数据库的登录名和密码分别为:sa和sa2.配置Access数据库(1)打开新建的数据库,新建一个表,表名为ReportData;(2)进入数据库设计视图,按照下图添加3个字段(3)DT栏用于显示时间和日期,必须设置日期/时间格式,默认值设置为下图所示,当数据库中添加条目时,自动显示添加数据时的时间;3.IFIX软件操作(1)新建一个基于时间项调度,间隔设置为5s,动作信息选择VB编辑器,进行脚本编写;(2)VB脚本编写,第一种编写方式具体代码如下:Private Sub FixTimer3_OnTimeOut(ByVal lTimerId As Long)Dim conODBC As ADODB.ConnectionSet conODBC = New ADODB.ConnectionconODBC.ConnectionString = "DSN = ReportSource; UID =sa; PWD =sa;" conODBC.Open "ReportSource", "sa", "sa"conODBC.Execute "insert into ReportData([VL]) values(3433) "conODBC.CloseEnd Sub标红部分,根据实际需要自行修改:DSN:ODBC数据源名;UID:登录名,没有设置时为空;PWD:登陆密码没有设置时为空;ReportData :数据库中表的名称VL:数据库中用于显示数据列的字段名;(3)VB脚本编写,第二种编写方式具体代码如下,此脚本对应的数据库字段格式见最后面的图:Private Sub FixTimer4_OnTimeOut(ByVal lTimerId As Long)Dim conODBC As ADODB.ConnectionDim adoRS As ADODB.RecordsetSet conODBC = New ADODB.ConnectionSet adoRS = New ADODB.RecordsetDim strQuery As StringconODBC.ConnectionString = "DSN = ReportSource; UID =sa; PWD =sa;" conODBC.Open "ReportSource", "sa", "sa"strQuery = "select * from RD where DT=#" & Date & "#" '或者表名FORM 或者SQL 选择语句"adoRS.Open strQuery, conODBC, adOpenDynamic, adLockPessimisticadoRS.AddNewadoRS.Fields(0) = DateadoRS.Fields(1) = 52adoRS.Fields(2) = 98adoRS.Fields(3) = 0adoRS.UpdateadoRS.CloseconODBC.CloseEnd Sub标红部分,根据实际需要自行修改:DSN:ODBC数据源名;UID:登录名,没有设置时为空;PWD:登陆密码没有设置时为空;RD:数据库中表的名称;在VB开发界面中,点击工具-----引用-----勾选引用项如下图,保存脚本,退出保存调度,命名为bbcs;(4)ifix切换至主页-----设置-----用户首选项-----后台启动-----添加bbcs调度,让其后台启动(5)应用程序-----SCU-----配置-----任务,添加FIXBACKGROUNDSERVER.EXE启动任务,启动方式为后台启动,保存SCU配置文件的更改,退出ifix,重启;(6)重启ifix后,软件会自动启动刚才配置的FIXBACKGROUNDSERVER,注意不要关闭此进程,最小化即可;(7)将IFIX切换至运行模式,打开最开始建立的access数据库,可以看到已经有数据了;第一种:第二种:。

IFIX报表(ODBC)

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注意:数据源名字后面会用到数据库: ReportDataBase.mdb,点击‘选择‘按钮选择创建的Access数据库。

IFIX报警历史查询总结

IFIX报警历史查询总结

报警历史查询
数据库的创建(基于XP系统):
第一步:创建数据库
“控制面板”→“性能和维护”→“管理工具”→“数据源(ODBC)”
按“添加”生成以下画面
按“完成”
按“确定”跳出以下菜单框
数据库创建成功。

第二步:在IFIX建立“报警ODBC配置”“系统配置”→“报警配置”
按“修改”生成
按“配置”生成
数据库类型(Y)选择“ACCESS”
数据库标识符(I)选择“SHUJUYUAN”
表名(T):“SJY”按“现在创建表”生成
表示“成功创建表“。

注:SQL列表名可以写中文
第三步:在画面中显示历史数据
需要2个V isiconX数据控件、1个V isiconX复选框控件、1个V isiconX网格控件
对vxData1属性配置:
双击vxData1生成以下菜单框,选择“Microsoft Jet 4.0 OLE DB Provider”
在“数据库文件路径和名”里找到“SHUJUYUAN”的路径
按“Run SQL Wizard”对具体要求进行选择
对vxData2属性配置:
前一步同上,再加上一步,右单击选择“动画”进入“高级动画配置”做雷同以下的设置即可。

对vxCombo1属性配置:做雷同以下的设置即可
对vxGrid1属性配置:做雷同以下的设置即可
报表
注意事项:
1.Microsoft ActiveX Data Objects 2.1 Library 必须被引用(Office 2000) 2.Microsoft Excel 9.0 object libraries 必须被引用(Office 2000)
3.点名一定要是大写,因为IFIX自动生成的点名就是大写。

基于iFIX操作日志模块设计与实现

基于iFIX操作日志模块设计与实现

r n sae, ena lg e t t t t , o daa s gen r td h t i e ae an so e i daab e I te c eme, t ra es d trd n t as . h s h n i ef c boh n t deeig og n lt l a d q er n lg n u yig o
1 系统 设计
本 系 统 中设 计 的操 作 日志 模块 , 是在 用 户 登 录 系统 后 , 就 每
执行 一 次 系 统参 数设 置操 作 时 , 录 下 系统 修 改 前 的 参数 值 、 记 修
o a pdt e
0 i Pt me o st pUe
o —v! a p a n me
开 发 的工 控 系 统 中 , 录下用 户对 系 统 所 进 行 的 每一 次 操 作 , 记 为
根 据监 控 系 统 对操 作 日志 的要 求 , 计 日志数 据 表 Ll 设 o g结
构 如 表 1所示 :
表 1 日志 数 据表 字 段 描 述
变量名 数据类型 字段描述
监 控 系统 的 故 障诊 断 和操 作 人 员 的责 任 认定 提 供 重要 依 据 。
lg.he s he e on it o in o T c m c sss fwr ig l , ee ig o an r adn lg. h us d s o e hn te y tm wi e r c r t og d lt lg d e ig o W en n er oe s m t ig. s se h l co d u — l r

基 于 iI 作 E志 模块 设 计 与实 现 FX操 l
基于 iI FX操作 日志模块设计与实现

IFIX报警历史配置与查询

IFIX报警历史配置与查询

第一章IFix3.5报警历史的设置与查询在实际工程中需要对开关量变位,模拟量越限等数据变化存入到历史数据库中,在此称之为报警历史库,然后再通过编写程序查询报警历史。

如何实现报警存入报警历史库呢?本章以ACCESS作为报警历史库,来说明报警历史库的实现过程,并给出实际的报警历史查询代码。

第一节报警历史的设置第一步:创建一个ACCESS类型的数据库,命名为hisdata,路径为:D:\Dynamics\SampleSystem\HistoricalData。

第二步:在ODBC中创建DSN,命名为hisdata。

创建过程如下:1:双击ODBC,出现如图1.1所示对话框。

图1.12:点击添加后,出现如图1.2所示对话框。

图1.23:选择Driver do Microsoft Access (*.mdb)项,点击完成,出现如图1.3所示对话框。

图1.34:输入数据源名hisdata,输入说明“IFIX报警历史库”,然后点击选择,出现如图1.4所示对话框。

图1.45:找到开始创建的Access数据库,点击确定。

出现如图1.5所示的对话框。

图1.56:点击确定完成ODBC配置。

第三步,打开ifix3.5的系统配置在系统配置中选择配置下面的报警,显示如图1.6所示对话框。

图1.6第四步:选择Alarm ODBC Service,并启用,点击修改后显示图1.7对话框。

图1.7第五步:选择报警ODBC服务配置下的配置按钮,显示图1.8对话框。

第六步点击数据库类型右边的浏览按钮,出现图1.9所示对话框。

图1.9选择Access点击确定。

第七步点击图1.8中数据库标识符右边的浏览按钮出现图1.10所示的对话框。

图1.10选择hisdata点击确定。

第八步点击图1.8中的现在创建表,会弹出创建成功的对话框。

点击确定返回图1.7所示的对话框,点击确定,返回图1.6所示的对话框,点击确定,然后点击文件中的保存,保存系统配置。

ifix读acees脚本

ifix读acees脚本
Private Sub CommandButton1_Click()
Dim StrDir As String
StrDir = "D:\"
Dim i As Long
Dim Sql As String
Dim startData As String
Dim endData As String
Dim T As String
cnADO.Open
rsado.CursorLocation = adUseClient
rsado.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1
If rsado.RecordCount <= 0 Then
'MsgBox "无数据!", vbOKOnly + vbInformation, "信息..."
waitbiaozhi2 = "开"
End If
GoTo nextloop1:
End If
nextloop1:
'记录向后移动一条
rsado.MoveNext
Wend
Set cnADO = New ADODB.Connection
Set rsado = New ADODB.Recordset
cnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Drivers;DSN=TX;UID=;PWD="
'下次循环
GoTo nextloop2:

基于iFix的历史记录程序的开发与优化

基于iFix的历史记录程序的开发与优化

基于iFix的历史记录程序的开发与优化作者:倪璘罡来源:《电子技术与软件工程》2015年第18期iFix是全球使用最多的组态软件,提供了丰富的API编程接口,可以使得第三方程序使用这些接口通过编程访问iFix实时数据库中的数据,将获得的实时数据保存到关系型数据库中。

为了方便数据的读取和转移,减少软件安装复杂度,还可以使用结构化存储的方法将数据保存到文件中。

【关键词】iFix 历史数据数据库结构化存储1 概述在本项目中,要求将iFix实时数据库里的一部分数据保存到外部数据库中。

数据的个数约为300个,需要每秒保存一次,24小时不间断存储。

2 数据流利用iFix提供的API接口来读取iFix的实时数据库数据,是较为简便的方法,通过调用相关API函数,可直接读写iFix的实时数据库。

经过测试,如果读取300个iFix数据,需耗时500ms左右。

外部数据库使用SQL Server 2008。

根据上述方案,数据流如图1所示。

3 读取与保存数据3.1 读取数据的方法iFix提供了一个EDA的DLL类,通过类中的API接口,可以读取iFix实时数据库中的数据。

这个类主要提供了4个函数,分别为:ReadFloat(),WriteFloat(),ReadAscii()和WriteAscii(),功能为读取浮点值,写入浮点值,读取ASCII码值和写入ASCII码值。

在这里,需要用到的是ReadFloat()这个函数,其函数定义为:void ReadFloat(LPCTSTR Node, LPCTSTR Tagname, LPCTSTR Field, float * FValue)其中Node为iFix节点名,Tagname为要读取的标签名,Field为所读取的域名,FValue为当前值。

3.2 保存数据的方法VS中可以方便的利用标准的SQL语句对SQL Server进行操作。

我们每秒需要插入300个数据,如果使用最普遍的Insert语句,效率将非常低。

写IFIX实时数据到ACCESS步骤

写IFIX实时数据到ACCESS步骤
4、在定时器中添加ADO引用,并添加如下代码:
Private Sub CommandButton2_Clit
Dim conODBC As ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim strQuery As String
写ifix实时数据到access步骤 写ifix实时数据到access步骤 1,在c:\access目录下建一access数据库(ss2.mdb),包含表"table1",字段名:value1,随便添加一个记录如50. 2,在控制面板的odbc中定义[系统dsn]为ss2,用户名为空,密码为空. 3,在ifix workspace中添加调度,添加定时器. 4,在定时器中添加ado引用,并添加如下代码: private sub commandbutton2_click() on error resume next dim conodbc as adodb.connection dim adors as adodb.recordset dim strquery as string strquery = "table1" set conodbc = new adodb.connection conodbc.connectionstring = "dsn = ss2; uid = pwd =;" set adors = new adodb.recordset conodbc.open adors.open strquery, conodbc, adopendynamic, adlockpesimistic adors.movefirst adors!value1 = readvalue("fix32.fix.a01.f_cv", 0) adors.update adors.close conodbc.close end sub 运行程序

iFIX组态软件中操作记录追忆的实现

iFIX组态软件中操作记录追忆的实现

iFIX组态软件中操作记录追忆的实现李杨;邓有纬【摘要】针对 iFIX组态软件中操作记录的情况,利用其内部集成的微软 VBA开发环境,开发了操作记录子程序,介绍了操作记录子程序在 iFIX组态软件中的调用以及操作记录查询的实现。

实际应用结果表明,利用该操作记录能准确完整地记录生产人员的操作过程,为事故分析人员及管理人员确定事故根源、判定误操作或其他事故原因提供了有力的证据。

【期刊名称】《华电技术》【年(卷),期】2013(000)007【总页数】5页(P29-32,37)【关键词】iFIX组态软件;操作记录;操作指令信息;VBA开发环境【作者】李杨;邓有纬【作者单位】南京南自科林系统工程有限公司,江苏南京 210032;南京南自科林系统工程有限公司,江苏南京 210032【正文语种】中文【中图分类】TP311.52;TM6210 引言随着人们安全生产意识的增强,国家对安全生产日益重视,现代化电厂在自动化生产过程中,对于事故根源确定、事故原因确认的要求也越来越急迫。

iFIX组态软件作为目前国内常用的生产过程监控软件已在国内大部分现代化电厂中使用。

操作记录作为可能与事故有关的重要信息,已被越来越多的自动化电厂所重视。

为了在事故发生后准确地找出事故根源,清楚地判定是否由于误操作或其他因素造成的事故,操作员操作记录应准确地记录每台操作员站发出的操作指令信息,操作指令信息应包括指令发出时间、操作对象、操作指令及操作员等具体内容。

1 以往iFIX组态软件中操作记录的实现iFIX组态软件因集成了大量的向导和专家,使得用户不需要进行任何编程就可自动完成多种功能。

以往在实现操作记录时,大家也充分利用了这些专家和向导,在实现过程中大部分采用以下4种方法。

(1)在iFIX组态软件中,启用报警开放数据库互联ODBC(Open Database Connectivity),利用了报警记录设备状态的改变。

该方法在实现的过程中会比较频繁地打开、关闭数据库,生产系统负荷会越来越大。

IFIX4.0向ACCESS数据库中写数据

IFIX4.0向ACCESS数据库中写数据

IFIX4.0向ACCESS数据库中写数据
一.新建一个ACCESS数据库
1.建立表格SQLERR用来存错误信息,字段可随便定义
2.建立表格SQLLIB用来写SQL命令
Update SJK set AAA=?,BBB=? Where CCC=? ;
Update SQL命令
SLK 需要更新数据的数据库名
AAA,BBB 为SJK数据库中的字段名
3.在建一个存放数据的表格,可随便命名,如(SJK)
SSS=SJS A_DESC 为SJS变量的描述
写这个的目的是把IFIX数据库中的数据与ACCSS表格中的行对应起来,当时间变化时,就更新描述所对应的行的字段的数据。

二.配ODBC数据源,数据源名可随便定义(我定义为SJK)
三.IFIX设置
1.在SCU中配SQL账户
图一
点击图一中“增加”按钮出现下表,选择数据库
表中的数据库ID为数据源名
点击图一中“配置任务”按钮出现下表
启用SQL支持
2. 在IFIX数据库中定义SJS,和SJS2两个产生随机数的变量
3. 在IFIX数据库中再建一个SQL数据SQD 如下图
SJS A_DESC 为SJS变量的描述=SSS
写这个的目的是把IFIX数据库中的数据与ACCSS表格中的行对应起来,当时间变化时,就更新描述所对应的行的字段的数据。

把定义的随机数变量添加到SQD表中
4. 在IFIX数据库中再建一个SQT SQL触发器
如下图所示
如上边所示填写时间事件
SQL名为表格SQLLIB中的SQLNAME
5. 在IFX任务管理中启用SQL
6. 重启数据库即可
2006.12.05。

ACCESS数据库连接和读取记录

ACCESS数据库连接和读取记录

ACCESS数据库的连接和读取记录今天要学习的容有一点枯燥,但是很重要。

在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。

下面开门见山,看两句话:<%set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb") %>第一句话定义了一个adodb数据库连接组件,第二句连接了数据库,大家只要修改后面的数据库名字就可以了。

是不是很简单?下面再看三句:<%exec="select * from guestbook"set rs=server.createobject("adodb.recordset")rs.open exec,conn,1,1%>这三句加在前面两句的后面,第一句:设置查询数据库的命令,select后面加的是字段,如果都要查询的话就用*,from后面再加上表的名字,我们前面建立的是不是一个gustbook表阿?第二句:定义一个记录集组件,所有搜索到的记录都放在这里面,第三句是翻开这个记录集,exec就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1〞,这是读取,后面讲到修改记录就把参数设置为1,3,好了接下来我们读取记录。

<table width="100%" border="0" cellspacing="0" cellpadding="0"><%do while not rs.eof%><tr><td><%=rs("name")%></td><td><%=rs("tel")%></td><td><%=rs("message")%></td><td><%=rs("time")%></td></tr><%rs.movenextloop%></table>在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof 的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作记录
按照图中示例进行配置,报警区域是在建立标签时设定好的。

配置前,在硬盘中建立数据库文件,及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。

相关文档
最新文档