服务热线:
您当前的位置:首页 > 世纪星月刊 > 第8期 (2011年8月)

【世纪星秘笈】定时报表

2011/9/16 16:20:53

 

研发部 孙辉

 

  在一个报表系统中,除了报表的展现、查出等功能外往往还需要能定时打印报表,今天我就举例给大家说说世纪星组态软件是如何实现定时打印。


一、简介


1 用途


  工厂里一般实行每天三班制,每个班8个小时,换班时间为每天的8点,16点,24点。换班时一般需要打印出本班生产情况的报表。

 

2 特点


◆ 定时打印,每天三次。
◆ 表格数据来自历史记录文件。

 

3 关于历史记录文件


◆ 世纪星采集的数据以文件的形式保存在计算机上,以备日后查询使用。一般以.IDX和.LGH为后缀的即为历史数据记录。
◆ 需要记录的数据要配置记录属性,系统默认是不记录。
 

这里有三个选项:
  按灵敏度记录:只有当该数据变量的值变化幅度超过“数据变化灵敏度”时,系统才会记录。定时记录:按一定时间记录,这里的时间单位是秒。

 

 

二 实例


1 要求与说明
测点TC01,TC02,TC03,要求每10秒打印一次,从打印时刻起前10秒为起始时间,表格采样3次,间隔1秒。

2 样本如下,见图2 。

 


 

3 查询历史数据
zgSetHistDataParam( "Report", 起始_Year, 起始_Month, 起始_Day, 起始_Hour, 起始_Minute, 起始_Second, 终止_Year, 终止_Month, 终止_Day, 终止_Hour, 终止_Minute, 终止_Second, 时间间隔); ——历史数据表格时间参数设置
zgHistDataFlash("Report");——历史数据表格刷新

4 打印函数
zgPrint("Report",2);

5 自动打印事件触发:
可以选择两种方式触发:
◆ 利用定时器来触发
◆ 系统时间触发
1)首先是定时器的应用:
先触发定时器工作,可以在应用程序命令语言的启动状态下写入:TimerFlag=1;触发定时器。
在应用程序命令语言中的运行状态中写命令

 


 
2)系统时间触发:
数据改变命令语言中写如下代码:


 
6 补充说明
以上为演示实验,如果需要打印班报表,配置如下
1) 触发方式
8小时触发一次打印事件:

 


 

2) 表格数据
每个测点采样8次,间隔3600秒,起始时间可以用函数DateTimeCompute( Year, Month, Day, Hour, Minute, Second, TimeLength, Mode )转化。
起始_Year= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 1 );
起始_Month= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 2 );
起始_Day= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 3 );
起始_Hour= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 4 );
起始_Minute= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 5 );
起始_Second= DateTimeCompute( $年, $月, $日, $时, $分, $秒, 28800, 6 );
终止时间为系统时间。

3)后台自动打印
打印时不要弹出对话框,到时间自动打印,不要人工干预。
打印函数:
zgPrint("Report",2);


 


企业邮箱  |  法律公告  |  隐私保护  |  联系我们  |