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

合集下载

报表控件应用-iFix

报表控件应用-iFix

报表控件应用-iFix第一部分数据存储[1] 运行iFix演示程序,添加数字量输出块(DO)DataLogTrig、DataLogEnable。

[2] 工作台开发环境中新建画面DataLog,右键点击选择编辑脚本添加程序:Fix32.Fix.DataLogEnabled.F_CV = 1[3] 菜单中选择插入〉OLE对象,对象类型列表中选择hmiReportDataLog.CtrlX插入到换面中,点击控件右键菜单中选择动画〉配置〉杂项,将控件的属性DataLogEnabled链接数据块DATALOGENABLED ,属性DataLogTrig 链接数据块 DATALOGTRIG,数据转换选择”对象”。

可将控件参数TagValue001- T agValue120链接模拟量数据块的实时值(Fix32.FIX.IFIX1_BATCH_BULKFLOW.F_CV)作为采样点,控件参数TagDesc001- T agDesc120链接模拟量数据块的描述信息(Fix32.FIX.IFIX1_BATCH_BULKFLOW.A_DESC),数据块的描述信息不能为空,不能以数字开头,不能包含运算符号。

[4] 点击控件右键菜单中选择属性,将控件属性DataLogInterval 设为1-7的整数值将控制控件的采样周期为5秒钟至1小时,设为8时停止自动采样。

画面中添加一个按钮[触发手动存储]按钮,按下时将数据块DATALOGTRIG 置1,释放时置0。

[5] 保存画面并切换至运行状态,选中[显示数据]可见设置的数据点名称和iFix传入的变量数据,按控件中[创建数据表]按钮,再按[存储数据]按钮,可在数据库中建立一个名为hmiDataLog的数据表并存储一行数据。

自动状态下控件按照选定的采样周期存储数据。

画面中按[触发手动存储]按钮触发一次数据存储,可实现由外部状态控制数据存储。

[6] 报表软件程序组中打开“数据检索”工具,选择数据表名hmiDataLog,可选字段中选择时标字段TSTAMP 和其它的数据点字段,按[数据检索]按钮可从数据库查询出已存入的历史数据。

iFIX报表制作

iFIX报表制作
“ 电 网监 控 系 统 ” 将 数 据 库 中 “ lr 表 的 信 息 导 人 到 E c l 配 , aam” xe
Байду номын сангаас
地 满 足 设 计 要 求 。 通 过 iX 集 成 的 V A 语 言 对 E c l 象 编 F I B x e对
程, 合A 结 DO 技 术 对 数 据 库 进 行 操 作 , 通 过 iI 内部 D A 并 FX r
这 里 通 过 一 个 简 单 的例 子 ,阐 明 如 何 在 iI 中 使 用 E c l F X xe 对 象 和 AD 技 术 实 现 报 表 的制 作 。在 iI 开 发 一 套 配 电 网 O FX上 监 控 系统 ,采 用 S ev r 为 历 史 数 据 库 。数 据 库 名 称 为 QL S re 作
K y r siI . B E c l O e wo d : X V A,x e , F AD
由于 iI 自带 的 报 表 在应 用 中 比较 烦 琐 而 且 存 在一 定 的局 FX 限 性 ,在 实 际 的 工程 应 用 中 i! 般 的报 表 制 作 方 法 不 能 较 好 FX一
2 具 体 实 现 步 骤
控 件 完 成 报 表数 据显 示 , 增 强报 表功 能 , 高 灵 活性 。 可 提
1 相 关 技 术 简 介
表 格 ,aam ” 的各 字 段 名 如 下 : “ lr 表
日期 线路 名称
11V A与 E c l 合 编 程 . B x e联 V A( iu IB s o pi t n ) 内 嵌 在 iI 中 的 B Vs a a i frAp lai s 是 c c o FX
FX报 表 制作 I
iI FX报表制作

iFIX历史数据报表使用经验总结

iFIX历史数据报表使用经验总结

iFIX历史数据报表使用经验总结
苗进立
【期刊名称】《工业控制计算机》
【年(卷),期】2013(026)004
【摘要】结合多年自动化监控组态软件开发经验,在iFIX组态工程中开发基于ADO的历史数据报表功能.上位机采用组态软件iFIX4.5,使用Visual Basic 6.0作为开发工具,实时采集生产过程中所产生的数据,定时或根据触发条件保存数据到历史数据库,利用Excel生成报表模板,根据不同的选择条件查询数据生成报表.采用介绍的方法设计的报表应用程序具有普遍性,通过简单修改可移植到其它工程中.【总页数】4页(P11-14)
【作者】苗进立
【作者单位】山东省冶金科学研究院,山东济南250014
【正文语种】中文
【相关文献】
1.在iFix中使用DDE技术形成炼钢厂集中监测与调度管理系统 [J], 徐亮
2.使用Excel增强开发软件的数据报表功能 [J], 黄小桃
3.iFIX中使用Excel制作报表的应用实例 [J], 余兵;殷连刚
4.数据报表设计器使用技巧 [J], 杨春;李小青
5.基于IFIX的火电厂化学水处理集中监控系统历史趋势及报警画面实现 [J], 单昀因版权原因,仅展示原文概要,查看原文内容请购买。

浅谈IFIX报表的制作

浅谈IFIX报表的制作
20 0 9年 第 8卷第 1 期( 1 忌第 15期) 3
4 9
浅谈 II F X报表的制作
岳 忠
2 10 ) 7 14 ( 山东莱钢 自动化部 , 东莱芜 山

要: 监控软件 I 自带的报表在应 用 中比较烦琐而且存在一定 的报袁制作方法不
aos 间 = N w dr !时 o0
S lc a e b n i ee t C s a c
Ca e s l
a o !班次 = “ dr s 甲班 “
作者简介 : 岳忠(9 2 ) 男, 18一 , 山东德州人, 助理工程师 , 学士, 主要从事 工业 自 动化 系统设计及软件编程工作。
能较好 的满足设计要求。通过 A O技术结合 I D HX内部 D T A A控件完成报袁 , 可增强报表 功能, 提高灵 活性。
关 键 词 : 袁 制作 : 控 软 件 ; ;D 报 监 I A O技 术 HX
中图分类号 :P 1 T 37
前言
文献标识码 : A
文章编号 :6 18 8 (0 9 1- 0 9 0 17 —0 9 2 0 )10 4 - 2
aos p nsl tf m 配 比记 录 " dcn ,a O e D n mc drO e ”ee r . c o , oo n d pn y a i a ,
a I e Opi si ,a C T x 'd r . e ee d. k t o mit c d md e t o sD l t a
20 0 9年 第 8卷 第 1 期( 1 总第 15期 ) 3
Ca e b 2
然后通过 V G I x R D控件显示数据 ,该控件类似于 电子表格 。
aos dr !班次 = “ 乙班“

IFIX报表

IFIX报表

IFIX报表⼀、新建access⽇报数据库ReportData(预装office2007以上版本)表名:ReportData右键设计视图:右键打开:⽉报数据库ReportMonth右键设计视图:右键打开:年报数据库ReportYear 右键设计视图:右键打开:删除⽇期主键,索引选择“⽆”;时间:长整型;其他累计:长整型。

⼆、配置ODBC64位操作系统打开ODBC⽅法:C:/Windows/SysWOW64/odbcad32.exe完成后确定即可,⽉报,年报同上。

32位系统:开始》控制⾯板》管理⼯具》ODBC。

同上设置三、IFIX新建时间调度时间间隔设置12⼩时,开始时间是6点54分。

⼀天分为⽩班(7点到19点)夜班(19点到7点),分班累计重置时间为6点54分和18点54分。

Private Sub sjdiaodu_OnTimeOut(ByVal lTimerId As Long)Dim cn As ADODB.Connection '定义⼀个ADO⽅式的数据库连接Dim res As ADODB.Recordset '定义⼀个ADO⽅式的数据库记录集Dim StrSQL As StringSet cn = New ADODB.Connection '定义cn为新的ADO数据连接Set res = New ADODB.Recordset '定义res为新的ADO数据库记录集'On Error Resume Nextcn.ConnectionString = "DSN=ReportData;UID=;PWD=;" '定义cn的连接数据源为ReportData 即ODBC中建⽴的ACCESS的数据源名cn.OpenStrSQL = "select * from ReportData Where ⽇期=#" & Date & "#" '使⽤SQl语"句查找ReportData表中⽇期为Data的数据res.Open StrSQL, cn, adOpenKeyset, adLockOptimisticres.ADDNew '添加⼀个新的记录If Hour(Time) = 6 Thenres.Fields(1) = 2 '在1列加⼊⽩班计数res.Fields(0) = Date -1'在0列加⼊⽇期,早上6点54分记得数算成前⼀天⽇累计ElseIf Hour(Time) = 18 Thenres.Fields(1) = 1 '在1列加⼊夜班计数res.Fields(0) = Date '在0列加⼊⽇期ElseEnd IfEnd Ifres.Fields(2) = Fix32.Fix.R0126.F_CV '在2列加⼊标签1res.Fields(3) = Fix32.Fix.R0127.F_CV '在3列加⼊标签2res.Fields(4) = Fix32.Fix.R0128.F_CV '在4列加⼊标签3res.Fields(5) = Fix32.Fix.R0129.F_CV '在5列加⼊标签4res.Fields(6) = Fix32.Fix.R0130.F_CV '在6列加⼊标签5res.Update '保持记录res.Close '关闭记录集cn.CloseSet res = NothingSet cn = NothingEnd Sub⽉调度Private Sub sjmonth_OnTimeOut(ByVal lTimerId As Long)Dim Mcn As ADODB.Connection '定义⼀个ADO⽅式的数据库连接Dim Mres As ADODB.Recordset '定义⼀个ADO⽅式的数据库记录集Dim MStrSQL As StringSet Mcn = New ADODB.Connection '定义cn为新的ADO数据连接Set Mres = New ADODB.Recordset '定义res为新的ADO数据库记录集'On Error Resume NextMcn.ConnectionString = "DSN=ReportMonth;UID=;PWD=;" '定义cn的连接数据源为ReportData 即ODBC中建⽴的ACCESS 的数据源名Mcn.OpenMStrSQL = "select * from ReportMonth Where ⽇期=#" & Date & "#" '使⽤SQl语"句查找ReportData表中⽇期为Data的数据Mres.Open MStrSQL, Mcn, adOpenKeyset, adLockOptimisticMres.ADDNew '添加⼀个新的记录Mres.Fields(0) = DateAdd("y", -1, Date) '在0列加⼊⽇期-1Mres.Fields(1) = Day(Date) - 1 '在1列加⼊天数-1Mres.Fields(2) = Fix32.Fix.R0141.F_CV '在2列加⼊标签1Mres.Fields(3) = Fix32.Fix.R0142.F_CV '在3列加⼊标签2Mres.Fields(4) = Fix32.Fix.R0143.F_CV '在4列加⼊标签3Mres.Fields(5) = Fix32.Fix.R0144.F_CV '在5列加⼊标签4Mres.Fields(6) = Fix32.Fix.R0145.F_CV '在6列加⼊标签5Mres.Fields(7) = DatePart("m", Date) '在7列加⼊标签6Mres.Fields(8) = DatePart("yyyy", Date) '在8列加⼊标签7Mres.Update '保持记录Mres.Close '关闭记录集Mcn.CloseSet Mres = NothingSet Mcn = NothingEnd Sub年调度(⽤于⽉数据记录,年数据不做显⽰)Private Sub Year_OnTimeOut(ByVal lTimerId As Long)Dim Ycn As ADODB.Connection '定义⼀个ADO⽅式的数据库连接Dim Yres As ADODB.Recordset '定义⼀个ADO⽅式的数据库记录集Dim YStrSQL As StringSet Ycn = New ADODB.Connection '定义cn为新的ADO数据连接Set Yres = New ADODB.Recordset '定义res为新的ADO数据库记录集'On Error Resume NextYcn.ConnectionString = "DSN=ReportYear;UID=;PWD=;" '定义cn的连接数据源为ReportData 即ODBC中建⽴的ACCESS的数据源名Ycn.OpenYStrSQL = "select * from ReportYear Where ⽇期=#" & Date & "#" '使⽤SQl语"句查找ReportData表中⽇期为Data的数据Yres.Open YStrSQL, Ycn, adOpenKeyset, adLockOptimisticYres.ADDNew '添加⼀个新的记录Yres.Fields(0) = DateAdd("y", -1, Date) '在0列加⼊⽇期-1Yres.Fields(1) = DatePart("m", Date) - 1 '在1列加⼊⽉份-1Yres.Fields(2) = Fix32.Fix.R0135.F_CV '在2列加⼊标签1Yres.Fields(3) = Fix32.Fix.R0136.F_CV '在3列加⼊标签2Yres.Fields(4) = Fix32.Fix.R0137.F_CV '在4列加⼊标签3Yres.Fields(5) = Fix32.Fix.R0138.F_CV '在5列加⼊标签4Yres.Fields(6) = Fix32.Fix.R0139.F_CV '在6列加⼊标签5Yres.Fields(7) = DatePart("yyyy", Date) '在7列加⼊标签6,有bug,懒得改了。

EXCEL在IFIX软件的报表实现

EXCEL在IFIX软件的报表实现
巩 伟 , 勇江 宋
( 黑龙江省 科学 院 自动化研究所 , 黑龙江 哈 尔滨 1 0 9 ) 0 0 5
摘 要 : 文 介 绍 了一 种 将 办 公软 件 E E 本 XC L与 I I 实 现 数 据 报 表 的 方 法 , 用 E E FX 利 XC L和 I I 软 件 对 OL FX E的 支持 , 结 合 VB 脚 并 A 本语 言 , 活 的扩 展 了 I I 报 表 功 能 , 在 工 业 生 产 重 要 的抄 表 工 作提 供 了一 个 思 路 。 灵 F X的 为 关键 字 : I VB E E 报 表 I X; A; XC L; F 中 图分 类 号 : P l .2 T 3 15 文 献 标 识 码 : B 文章 编号 :0 3 2 12 1)6 0 8 0 10 7 4 (0 10 0 8 — 3
2 解 决 思 路
O E D /D C L B O B 数据 源
了报表 的功 能 , 里采取 的是时 时采集数 据并且保 存到 这
报表 的方法 , 报表生成代码 已经集成在 ii f x系统 内, 这样 建立 了与数据无 关的操作 , 代码会 随 I I F X启动运 行 , 报 表生成不受限制。E cl V A 同时支持 , x e对 B 利用 E cl x e 功
F X 数据 库 I
的 , 们具 有相 似 的语 言结 构 。它 保 留了绝 大部分 VB 它 的功 能 , 使可编程应 用软件得到完美 的实 现 , 它作为一种
图 1 VB A对象关 系
收 稿 日期 : 11 0 —2 20 — 2 8
Hale Waihona Puke 通用 的宏语 言可被 所有的 Mir s f c o ot可编程应用软件所 共享 。为 自定 义功 能提供 了完整 开发环 境 。经过 优化 ,

iFix中采用ODBC制作报表

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(即允许修改)。

strStartTimestrEndTimeIntervalStep 5:为画面上的各个按钮写代码,最好先将各按钮注册——即将鼠标移到按钮上方,按右键弹出菜单,选择Edit Script。

在VB Editor的工具菜单中的Reference(引用)中选中Microsoft Excel 9.0 Object Library和Microsoft ActiveX Data Objects,如下图所示。

然后在各按钮的处理程序中添加相应代码。

内容如下(可将下列代码直接COPY到你的VB编辑器中,覆盖因为注册产生的空代码):‘运行状态画面初始化Private Sub CFixPicture_Initialize()CommandButton1_ClickCommandButton2_Clickuser.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 StringcurTime = NowDim curmonth, curday, curhour, curminute, cursecond As Stringcurmonth = 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'设当前时间为报表结束时间Private Sub CommandButton2_Click()Dim curTime As StringcurTime = NowDim curmonth, curday, curhour, curminute, cursecond As Stringcurmonth = 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.strEndTime.CurrentV alue = Year(curTime) & "-" & curmonth & "-" & curday & " " _& curhour & ":" & curminute & ":" & cursecondEnd Sub'打印此前10分钟历史报表,只是设置时间值,打印仍要调用打印程序Private Sub CommandButton3_Click()Dim curTime As StringcurTime = NowDim curmonth, curday, curhour, curminute, cursecond As Stringcurmonth = 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(DateAdd("n", -10, curTime)) < 10, "0" & _Minute(DateAdd("n", -10, curTime)), Minute(DateAdd("n", -10, curTime))) cursecond = IIf(Second(curTime) < 10, "0" & Second(curTime), Second(curTime)) user.strStartTime.CurrentValue = Year(curTime) & "-" & curmonth & "-" & curday & _" " & curhour & ":" & curminute & ":" & cursecond curminute = IIf(Minute(curTime) < 10, "0" & Minute(curTime), Minute(curTime)) user.strEndTime.CurrentV alue = Year(curTime) & "-" & curmonth & "-" & curday & _" " & curhour & ":" & curminute & ":" & cursecond End Sub'打印当天报表,只是设置时间值,打印仍要调用打印程序Private Sub CommandButton4_Click()Dim curTime As StringcurTime = NowDim curmonth, curday, curhour, curminute, cursecond As Stringcurmonth = IIf(Month(curTime) < 10, "0" & Month(curTime), Month(curTime))curday = IIf(Day(curTime) < 10, "0" & Day(curTime), Day(curTime))user.strStartTime.CurrentValue = Year(curTime) & "-" & curmonth & "-" & curday _& " " & "00:00:00"user.strEndTime.CurrentV alue = Year(curTime) & "-" & curmonth & "-" & curday _& " " & "23:59:59"End Sub'打印当月报表,只是设置时间值,打印仍要调用打印程序Private Sub CommandButton5_Click()Dim curTime As StringcurTime = NowDim curmonth, BeginofMonth, EndofMonth As Stringcurmonth = IIf(Month(curTime) < 10, "0" & Month(curTime), Month(curTime)) BeginofMonth = Year(curTime) & "-" & curmonth & "-01" & " " & "00:00:00"user.strStartTime.CurrentValue = BeginofMonthEndofMonth = Day(DateAdd("s", -1, DateAdd("m", 1, CDate(BeginofMonth))))user.strEndTime.CurrentV alue = Year(curTime) & "-" & curmonth & "-" _& EndofMonth & " " & "23:59:59"End Sub‘根据输入条件,保存/打印报表到文件Private Sub CommandButton6_Click()'运行EXCEL,打开报表模板文件Dim msexcel As Excel.ApplicationSet msexcel = CreateObject("Excel.Application")With msexcel.Visible = True ‘如为FALSE,则不显示EXCEL。

iFix中如何实现EXCEL报表

iFix中如何实现EXCEL报表

iFix中如何实现EXCEL报表.txt心脏是一座有两间卧室的房子,一间住着痛苦,一间住着快乐。

人不能笑得太响,否则会吵醒隔壁的痛苦。

iFix中如何实现EXCEL报表在VBA中引用Microsoft Excel 11.0 Object Library和Microsoft ADO 6.0 Library。

在画面中添加个按钮。

复制以下代码:‘----------开始复制(不包括此行)--------------Option ExplicitDim rsADO As ADODB.RecordsetDim cnADO As ADODB.ConnectionPrivate Sub Command1_Click()Dim StrDir As StringStrDir = "E:\"Dim i As LongDim Sql As StringSql = "SELECT * FROM THISNODE"Set cnADO = New ADODB.ConnectionSet rsADO = New ADODB.RecordsetcnADO.CcnADO.OpenrsADO.CursorLocation = adUseClientrsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1If rsADO.RecordCount <= 0 ThenMsgBox "无数据!", vbOKOnly + vbInformation, "信息..."Set cnADO = NothingSet rsADO = NothingExit SubEnd IfDim xlApp As ObjectDim xlBook As ObjectDim xlSheet As ObjectSet xlApp = New Excel.ApplicationxlApp.DisplayAlerts = FalsexlApp.Visible = FalseSet xlBook = xlApp.Workbooks.Open(StrDir & "\报表.xls")'需要文件(E:\报表.xls) Set xlSheet = xlBook.Worksheets(1)For i = 1 To rsADO.RecordCountxlSheet.Cells(i, 1) = rsADO.Fields(1).Value & ""xlSheet.Cells(i, 2) = rsADO.Fields(2).Value & ""xlSheet.Cells(i, 3) = rsADO.Fields(3).Value & ""xlSheet.Cells(i, 4) = rsADO.Fields(4).Value & ""Next ixlApp.Visible = TruexlApp.DisplayAlerts = FalseSet xlSheet = NothingSet xlBook = NothingSet xlApp = NothingSet cnADO = NothingSet rsADO = NothingEnd Sub‘----------结束复制(不包括次行)--------------注意:1.iFix历史数据库只支持读90天的数据,在SQL语句中限定时间即可。

IFIX,历史报警报表制作

IFIX,历史报警报表制作

前面已经将历史报警信息保存到了报警历史数据库中下面需要从数据库中显示出报警信息
在工具箱中含有
数据控件
此控件相当于管道起连接作用
使用网格控件,类似于水杯设置刚才的管道
在打开的对话框中选择提供者ODBC
选择数据库,为刚才创建的数据库,点击测试连接,可以弹出对话框
选择记录源,设置从数据库中读哪一部分内容点击向导按钮
选择SQL Select
选择并增加报警数据库表,点击下一步
可用列中显示了ALARM报警数据库中的可用列,如下:选择所用列并点击下一步
确定后运行ifix
此时不能显示报警信息,因为到此步骤,只是设置了水库的出水口部分,而水杯的入水口部分还没有完成设置。

下面配置水杯侧
选择动画…点击配置….
在行为栏中含有ADORecords项,此项和刚才的管道连接器连接,勾选动画选择对象,点击数据源后面的小方块
选择画面中的vxData1,此项为刚才创建的
类似于VXDATA1中的缓存点击确定返回。

运行IFIX后显示如下:
regsvr32 c:\winnt\system32\mscomct2.ocx 当然你必须把那个文件拷过来了。

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的菜单选择(调度程序属性),如图:点击则弹出选择项将(前台运行)改成(后台运行)如图:8.配置标签组;所要标签组符号中“NUMBEROFTAGS”对应的替换中的数字是所配置标签个数之和。

IFIX系统日报月报的设计与实现

IFIX系统日报月报的设计与实现
CreatDayReport()CreatMonthReport()两个方法分别用
88 无线互联科技
来从IFIX历史数据库中读取数据生成日报和月报。当optMonth. Value = True && optDay.Value = False时,“生成报表”按 钮用CreatMonthReport()方法生成月报表并保存,反之调用 CreatDayReport()方法生成日报表并保存。 2.1 CreatDayReport()方法生成日报
(下转第91页)
设计分析·
在弱电机房设11台16路硬盘录像机、7台24口三级接入交换 机、1台24口二级接入交换机、150路视频分析单元、5台监控管 理主机、2台监控终端等,电视墙利用机场集中监控系统设备。
3 周界广播系统
广播系统由音频矩阵、监控管理主机、综合机箱、传输线 路及传输设备和室外扬声器组成。 3.1 室外扬声器选择和设置
IFIX系统日报月报的设计与实现
苟景卫 穆卫巍(中国石油长庆油田公司第二采气厂,陕西 榆林 719000)
摘 要:文章介绍了基于时间项调度和HDA两种方法实现报表的自动生成。对每种方法的设计与实现进行了详细的介绍并给出了每种方法的 部分核心代码。剖析了两种方法各自的优缺点并对运行效果进行了评价。 关键词:基于时间项调度;HDA;IFIX;PDB实时数据库
[参考文献]
[1]杨磊,李峰,田艳生.《闭路电视监控系统》.机械工业出版社,2004年 02月01日. [2]苏翼凯,冷鹿峰:.《高速光纤传输系统》.上海交通大学出版社,2009 年02月1日. [3]民用航空周界安全防范手册. [4]银川河东机场飞行区安全管理规范. [5]银川河东机场《飞行区周界监控、报警系统使用户使用手册》.

一种IFIX组态软件实现生产报表自动生成的方法

一种IFIX组态软件实现生产报表自动生成的方法

一种IFIX组态软件实现生产报表自动生成的方法作者:邹昊辰来源:《中国科技博览》2019年第05期[摘要]为了提高油田注入生产工作自动化程度和工作效率,利用IFIX软件和Excel对OLE的支持,并结合VBA脚本语言,灵活的扩展了IFIX的报表功能,实现注入生产报表的自动生成。

[关键词]生产报表、IFIX组态软件、Excel报表中图分类号:E231 文献标识码:A 文章编号:1009-914X(2019)05-0146-011现状分析目前,注入站自控系统采用上位机/PLC/现场仪表层次结构,采用PLC通过轮询的方式采集站内流量计、流量控制器、数字压力表及接触器的信号,并独立完成设备运行控制功能,通过上位机内安装的IFIX组态软件显示流程画面及设备状态、参数,对设备的控制通过向PLC 设置数据由PLC执行控制功能,上位机的运行与停止不会干扰系统的自动运行。

2研究思路自动化报表需要建立在注入站自控系统上,采用该系统iFIX自动化组态软件开发。

iFIX 组态软件是由美国通用公司开发的工业具有开发灵活拓展能力强等优点,报表生产软件采用iFIX组态软件功能有:(1)IFIX数据库通过读取PLC(pro-grammable logic controller可编程逻辑控制器),I/O 映象区中的现场仪表的数据,可实现现场数据的远程检测。

(2)在iFIX中内嵌VBA(VisualBasicforApplications)标准脚本语言,将微软的VBA脚本语言作为自己组态环境的开发语言,并支持OLE自动化功能。

(3)IFIX数据库支持VBA的读取操作,同时Excel也支持VBA的写入操作,通过VBA 可以实现读取IFIX数据库中的数据向Excel的写入。

(4)IFIX组态软件可以与PLC和Excel相结合,通过开发生成报表自动生成软件,可以实现生产参数自动采集、计算、写入和注入生产报表自动生成,从而实现了注入系统生产报表的自动化。

ifix报表制作文档

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 StringSet cn = New ADODB.Connection '定义cn为新的ADO数据库连接为新的ADO数据库连接集'On Error Resume Next定义cn的连接数据源为ReportSource 即ODBC中建立的ACCESS的数据源名cn.OpenStrSQL = "select * from ReportData Where 日期=#" & Date & "#" '使用SQL语句查找ReportData表中日期为Date的数据res.Open StrSQL, cn, adOpenKeyset, adLockOptimisticres.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.CloseSet res = NothingSet cn = NothingEnd Sub在vb2.2添加到FixBackgroundServer 任务打开SCU,点击如图所示:在文件名内查找FixBackgroundServer.exe文件添加后保存SCU文件。

iFIX历史数据报表使用经验总结

iFIX历史数据报表使用经验总结

f i c a t i o n c a n b e p o r t e d t o o t h e r p r o j e c t s .
Ke ywor ds : i FI X, h i s t or i c al da t a。 Re po ̄, ADO, VBA
i F I X软 件 没 有 提 供 针 对 历 史 数 据报 表 的 通 用 组 件 ,通 常 实 现报 表 的方法 只能是单 独 购买使 用第三 方组 件 ( 比如 水 晶 报 表) , 因其封装功能较多 , 编程不够灵活 , 难 以 实 现 比较 复 杂 的 报 表功能 。 在 自动 化 工 程 软 件 开 发 实 际 应 用 中 , 因 不 同项 目对 历史 数 据 报 表 要 求 不 尽 相 同 ,利 用 i F I X 现有 组件 或第 三方 组 件 均 难 以 达 到 满 意 的效 果 。
史数 据 库 , 利用 E x c e I 生成 报 表 模 板 , 根 据 不 同的 选 择 条 件 查 询 数 据 生 成 报 表 。采 用介 绍 的 方 法 设 计 的 报 表 应 用 程 序 具 有
普遍性 , 通 过 简单 修 改 可 移 植 到 其 它工 程 中 。 关键词 : i F I X , 历 史数 据 , 报表 , A D O, VCo mb i n e d wi t h y e a r s o f a u t o ma t i c mo n i t o r i n g c o n f i g u r a t i o n s o f t wa r e d e v e l o p me n t e x p e r i e n c e , i F I X t o t h e p r o j e c t t o d e —

iFIX高级培训第7讲 iFIX报表制作

iFIX高级培训第7讲 iFIX报表制作

极易iFIX网站出品()
iFIX高级培训
主讲:钱立湘
第7讲 报表制作
显示数据
1. 2. 3.
Excel显示 Excel显示 HTML网页显示 HTML网页显示 PDF显示 PDF显示
极易iFIX网站出品()
iFIX高级培训
主讲:钱立湘
第7讲 报表制作
极易iFIX网站出品()
iFIX高级培训
主讲:钱立湘
第7讲 报表制作
提供强大的iFIX 提供强大的iFIX Integration Toolkit系统集成和扩展工具.该工具可供 Toolkit系统集成和扩展工具.该工具可供 程序员编制程序直接访问iFIX的实时数据库和历史数据.该灵活的工 程序员编制程序直接访问iFIX的实时数据库和历史数据.该灵活的工 具易于使用,用户或者系统集成上可以方便地扩展iFIX的功能,以充 具易于使用,用户或者系统集成上可以方便地扩展iFIX的功能,以充 分满足行业应用户的不同的需求. iFIX Integration Toolkit系统集成和扩展工具提供如下功能: Toolkit系统集成和扩展工具提供如下功能: Historical Data Report (HDR) 应用:Historical Data Report (HDR) 用于生 应用:Historical 成报表.它从iFIX的历史文件中释放历史数据,并且将其导出到 成报表.它从iFIX的历史文件中释放历史数据,并且将其导出到 comma separated variable (CSV)文件中. The output of HDR的输出结果 (CSV)文件中. HDR的输出结果 可以直接使用,或者直接引用到第三方产品包中,如:Microsoft Excel. 可以直接使用,或者直接引用到第三方产品包中,如:Microsoft Excel. 在使用时,只需要简单地添入tag名和需要数据的时间段就可以了. 在使用时,只需要简单地添入tag名和需要数据的时间段就可以了. Historical Data Access (HDA) for Visual Basic, C, and C++:Historical Data (HDA) C++: Access (HDA) 提供给用户集成iFIX历史数据的能力.允许用户执行编 提供给用户集成iFIX历史数据的能力.允许用户执行编 程访问iFIX的历史数据. 程访问iFIX的历史数据. Easy Database Access (EDA) for Visual Basic, C and C++:允许用户执行 C++:允许用户执行 编程访问iFIX的过程数据库. 编程访问iFIX的过程数据库.

iFix如何制作EXCEL报表

iFix如何制作EXCEL报表

iFix如何制作EXCEL报表在VBA中引用Microsoft Excel 11.0 Object Library和Microsoft ADO 6.0 Library。

在画面中添加个按钮。

复制以下代码:‘----------开始复制(不包括此行)--------------[hide]Option ExplicitDim rsADO As ADODB.RecordsetDim cnADO As ADODB.ConnectionPrivate Sub Command1_Click()Dim StrDir As StringStrDir = "E:\"Dim i As LongDim Sql As StringSql = "SELECT * FROM THISNODE"Set cnADO = New ADODB.ConnectionSet rsADO = New ADODB.RecordsetcnADO.ConnectionString = "Provider = Microsoft OLE DB Provider for ODBC Driv ers;DSN=FIX Dynamics Real Time Data;UID=;PWD="cnADO.OpenrsADO.CursorLocation = adUseClientrsADO.Open Sql, cnADO, adOpenDynamic, adLockUnspecified, -1If rsADO.RecordCount <= 0 ThenMsgBox "无数据!", vbOKOnly + vbInformation, "信息..."Set cnADO = NothingSet rsADO = NothingExit SubEnd IfDim xlApp As ObjectDim xlBook As ObjectDim xlSheet As ObjectSet xlApp = New Excel.ApplicationxlApp.DisplayAlerts = FalsexlApp.Visible = FalseSet xlBook = xlApp.Workbooks.Open(StrDir & "\报表.xls")'需要文件(E:\报表.xls)Set xlSheet = xlBook.Worksheets(1)For i = 1 To rsADO.RecordCountxlSheet.Cells(i, 1) = rsADO.Fields(1).Value & ""xlSheet.Cells(i, 2) = rsADO.Fields(2).Value & ""xlSheet.Cells(i, 3) = rsADO.Fields(3).Value & ""xlSheet.Cells(i, 4) = rsADO.Fields(4).Value & ""Next ixlApp.Visible = TruexlApp.DisplayAlerts = FalseSet xlSheet = NothingSet xlBook = NothingSet xlApp = NothingSet cnADO = NothingSet rsADO = NothingEnd Sub[/hide]‘----------结束复制(不包括次行)--------------注意:1.iFix历史数据库只支持读90天的数据,在SQL语句中限定时间即可。

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

有关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语法,
命令以及连接对象获得存取的记录。

Field 提供存取Recordset对象中字段的能力,包括当前记录中的名称,类型和值,这些值的修改将改变数
据源中的值,每一个Recordset对象都维护一批
Field对象。

Dim rsADO As New ADODB.Recordset
Dim cnADO As New ADODB.Connection
Dim SQL1 As String
strStartTime = User.strStartTime.CurrentValue
strEndTime = User.strEndTime.CurrentValue
Tag = User.Tag.CurrentValue
INTERVAL = User.INTERVAL.CurrentValue
SQL1 = "SELECT * FROM FIX WHERE FIX.TAG LIKE '%" + Tag
+ "%' AND FIX.VALUE>0 AND (FIX.DATETIME>{ts'" +
strStartTime + "'} and FIX.DATETIME<{ts'" + strEndTime
+ "'})" + _
"and FIX.INTERVAL='" + INTERVAL + "'"
With cnADO
.Open "Provider = Microsoft OLE DB Provider
for ODBC Drivers;dsn=fix dynamics historical
data;uid=;pwd=;"
.Execute (SQL1)
End With
rsADO.Open SQL1, cnADO
For i = 1 To rsADO.Fields.Count
msexcel.cells(2, i) = rsADO.Fields(i - 1).Name
Next
If rsADO.BOF Then
msexcel.Quit
MsgBox "查询结果空,请检查查询条件"
Else
rsADO.MoveFirst
i = 3
While Not rsADO.EOF
For j = 1 To rsADO.Fields.Count
msexcel.cells(i, j) = rsADO.Fields(j - 1)
Next j
rsADO.MoveNext
i = i + 1
Wend
rsADO.Close
cnADO.Close
通过上述代码可以按照任意时间间隔查询任意时
间段的历史数据,其始,终时间格式如下:
2000-01-01 12:00:00
时间间隔格式如下: 00:00:30
User.strStartTime.CurrentValue,
User.strEndTime.CurrentValue
User.Tag.CurrentValue,
User.INTERVAL.CurrentValue等为在GLOBAL中定
义的全局变量(字符串)
报表的保存及打印代码如下:
msexcel.Wait (Now() + 0.00012)
msexcel.ActiveWorkbook.SaveAs
"e:\histdemo\histreportdemo.xls"
msexcel.ActiveWorkbook.PrintOut
msexcel.ActiveWorkbook.Close
msexcel.Quit
Set msexcel = Nothing
End If
3.报表计划
对于生成班报表,日报表,周报表,月报表及年报表可以在schedule中时间触发中设置相应的时间段。

自动完成报表功能。

手动报表可以通过可以在sch edule中按事件触发或按钮产生。

相关文档
最新文档