报表功能是自控系统经常用的一个功能,我们能用表格的方式,查询到历史数据,也能通过报表分析、统计并根据报表调整工艺配方等等。

Intouch并不像其他组态软件一样,对报表支持力度上不太友好,需要自己制作报表,在查询大量文档及自己实践后,整理了一下简易报表制作流程。

该报表是基于Intouch的历史趋势记录制作的,在Intouch及Excel中通过脚本和宏实现,简单的展示画面如下所示,模板可重复使用。

Intouch报表制作方法-风君雪科技博客

一、Intouch历史趋势记录

首先需要勾选Intouch标记名的记录数据,并做相关配置。

Intouch历史趋势是以.idx和.lgh格式文件存储的。

Intouch报表制作方法-风君雪科技博客

二、修改Windows系统时间格式 

Intouch提供的脚本库似乎只能通过MM/dd/yyyy格式来查询,修改Windows系统时间格式

Intouch报表制作方法-风君雪科技博客

 Intouch报表制作方法-风君雪科技博客

三、在Intouch中生成一系列带HDW的标记名

Intouch报表制作方法-风君雪科技博客

如果是需要首次自动生成HDW标记名,打开向导选择,选择趋势中的历史数据向导,并添加至画面上

 Intouch报表制作方法-风君雪科技博客

历史数据向导图形界面如下所示

 

双击历史数据面板向导,在历史趋势一栏中添加一个已经创建的趋势或者点击建议,然后确定,HDW的标记名即创建成功。

 Intouch报表制作方法-风君雪科技博客

打开标记名字典,查看是否存在这些标记名。

历史数据向导就是把历史数据导成.csv格式文件。

四、制作报表查询画面

制作一个简单的报表画面来测试一下

Intouch报表制作方法-风君雪科技博客

首先需要创建四个内存整型的标记名Year_Q、Mon_Q、Day_Q、Hour_Q,分别表示用户查询时输入的具体时间,

接着,还需要创建四个内存消息的标记名Years、Mons、Days、Data,

创建一个存放报表的文件夹,并在其中创建一个.csv格式的文件,该文件用来存储Intouch查询到的数据。

Intouch报表制作方法-风君雪科技博客

在Intouch中,查询日报表的按钮添加脚本

 Intouch报表制作方法-风君雪科技博客

 测试一下查询功能,运行并查询。可以自己根据HDWWriteFile标记名来添加查询中,查询完成等提示字段

Intouch报表制作方法-风君雪科技博客

在查询完成后,找到ReportDay.csv文件,其中如果存在数据,则查询完成

Intouch报表制作方法-风君雪科技博客

五、在Excel中展示数据

首先提供一份报表模板,可存放在ReportDay文件夹下。该版本报表为横向数据显示

 Intouch报表制作方法-风君雪科技博客

打开office的宏。文件-选项-信任中心-信任中心设置

(可在自定义功能区中勾上开发工具的显示)

Intouch报表制作方法-风君雪科技博客

选择宏设置,启用所有宏,并且信任对VBA工程对象模型的访问勾上

 Intouch报表制作方法-风君雪科技博客

选择开发工具Visual Basic

Intouch报表制作方法-风君雪科技博客

插入模块

Intouch报表制作方法-风君雪科技博客

添加宏

Intouch报表制作方法-风君雪科技博客

选择ThisWorkbook,添加文件启动是自动运行宏脚本

 Intouch报表制作方法-风君雪科技博客

保存excel,并且以.xlsm的格式保存,其他格式保存文件可能会出问题

xlsm是xlsx启用了宏的版本,可打开后自动运行宏

重新打开报表文件,可以看到报表文件中已经存在数据

 Intouch报表制作方法-风君雪科技博客

报表完成

六、Intouch直接打开Excel文件

添加一个打开日报表的按钮

 Intouch报表制作方法-风君雪科技博客

添加脚本

Intouch报表制作方法-风君雪科技博客

运行一下看结果,如果正常打开,则完成。

七、报表优化

Intouch我没有找到可嵌入的控件,使用网页嵌入也打开失败,并没有进行过多的测试,可讨论;

在打开报表关闭的时候,总会出现提示框是否保存,是由于宏运行的结果,想取消掉这个提示框,需要加一段代码,设置为默认保存;

 Intouch报表制作方法-风君雪科技博客

这个报表只做简单的查看,并没有制作每天自动生成,步骤比较繁琐,存在一定困难。但只需要Intouch历史文件在,即可查询。

个人认为如果要每天自动生成文件,可以把数据存储在SQLServer中这样来制作,比较方便。

八、优缺点

优点:

制作方便快速,可重复套用模板,查询快

缺点:

存储的数据量大时,查询会很慢,正常情况下都是可以通用的

不能固定生成一份excel的文件存储,需要自己打开存储。但只要数据存在,任何时候都能查询到