报表功能是自控系统经常用的一个功能,我们能用表格的方式,查询到历史数据,也能通过报表分析、统计并根据报表调整工艺配方等等。
Intouch并不像其他组态软件一样,对报表支持力度上不太友好,需要自己制作报表,在查询大量文档及自己实践后,整理了一下简易报表制作流程。
该报表是基于Intouch的历史趋势记录制作的,在Intouch及Excel中通过脚本和宏实现,简单的展示画面如下所示,模板可重复使用。
一、Intouch历史趋势记录
首先需要勾选Intouch标记名的记录数据,并做相关配置。
Intouch历史趋势是以.idx和.lgh格式文件存储的。
二、修改Windows系统时间格式
Intouch提供的脚本库似乎只能通过MM/dd/yyyy格式来查询,修改Windows系统时间格式
三、在Intouch中生成一系列带HDW的标记名
如果是需要首次自动生成HDW标记名,打开向导选择,选择趋势中的历史数据向导,并添加至画面上
历史数据向导图形界面如下所示
双击历史数据面板向导,在历史趋势一栏中添加一个已经创建的趋势或者点击建议,然后确定,HDW的标记名即创建成功。
打开标记名字典,查看是否存在这些标记名。
历史数据向导就是把历史数据导成.csv格式文件。
四、制作报表查询画面
制作一个简单的报表画面来测试一下
首先需要创建四个内存整型的标记名Year_Q、Mon_Q、Day_Q、Hour_Q,分别表示用户查询时输入的具体时间,
接着,还需要创建四个内存消息的标记名Years、Mons、Days、Data,
创建一个存放报表的文件夹,并在其中创建一个.csv格式的文件,该文件用来存储Intouch查询到的数据。
在Intouch中,查询日报表的按钮添加脚本
测试一下查询功能,运行并查询。可以自己根据HDWWriteFile标记名来添加查询中,查询完成等提示字段
在查询完成后,找到ReportDay.csv文件,其中如果存在数据,则查询完成
五、在Excel中展示数据
首先提供一份报表模板,可存放在ReportDay文件夹下。该版本报表为横向数据显示
打开office的宏。文件-选项-信任中心-信任中心设置
(可在自定义功能区中勾上开发工具的显示)
选择宏设置,启用所有宏,并且信任对VBA工程对象模型的访问勾上
选择开发工具Visual Basic
插入模块
添加宏
选择ThisWorkbook,添加文件启动是自动运行宏脚本
保存excel,并且以.xlsm的格式保存,其他格式保存文件可能会出问题
xlsm是xlsx启用了宏的版本,可打开后自动运行宏
重新打开报表文件,可以看到报表文件中已经存在数据
报表完成
六、Intouch直接打开Excel文件
添加一个打开日报表的按钮
添加脚本
运行一下看结果,如果正常打开,则完成。
七、报表优化
Intouch我没有找到可嵌入的控件,使用网页嵌入也打开失败,并没有进行过多的测试,可讨论;
在打开报表关闭的时候,总会出现提示框是否保存,是由于宏运行的结果,想取消掉这个提示框,需要加一段代码,设置为默认保存;
这个报表只做简单的查看,并没有制作每天自动生成,步骤比较繁琐,存在一定困难。但只需要Intouch历史文件在,即可查询。
个人认为如果要每天自动生成文件,可以把数据存储在SQLServer中这样来制作,比较方便。
八、优缺点
优点:
制作方便快速,可重复套用模板,查询快
缺点:
存储的数据量大时,查询会很慢,正常情况下都是可以通用的
不能固定生成一份excel的文件存储,需要自己打开存储。但只要数据存在,任何时候都能查询到
最新评论