1.原理
首先根据报表要求,用INTOUCH的附件HISTDATA软件形成一个有规定数据的.CSV 文件(逗号分隔文件,可用EXCEL打开)。这个.CSV文件是英文的,不符合一般报表的要求,只能提供数据。所以需要另设计一个空的EXCEL报表模版,再将.CSV文件的数据复制到报表中,形成完整的报表。
通过INTOUCH可以自动产生.CSV,再通过EXCEL的宏程序打印报表,可以完成招呼打印和定时自动打印。
如果有多个报表,需要形成多个.CSV文件和设计多个EXCEL报表。
大致步骤如下:
2.新建工程后创建:访问名
3.设置历史记录:
4.生成.CSV文件
Step1: 自动生成需要的标记名
在INTOUCH开发环境中,将向导库中\\趋势\\历史趋势向导(HistData)放入窗口。这将自动形成若干标记名(Tag)。有关标记名以HDW开头加上它们的DDE的ITEM命名。
步骤如下:
4.1 选择历史数据向导:
4.2 设置历史数据向导:
4.3 查看自动生成的标志名:
4.4这些标记名说明如下:
HDWDATADIR 消息型历史数据文件的目录的路径名,可用函数赋值
例如HDWDataDir = HTGetLogDirectory(); HDWDBDIR 消息型InTouch 标记名字典的目录的路径名,可用函数赋值
例如HDWDBDir = InfoInTouchAppDir(); HDWSTARTDATE 消息型与$DateString相同格式的数据采样开始日期HDWSTARTTIME 消息型使用24 小时时钟的HH:MM:SS 格式的数据采样开始时间HDWDURATION 消息型数据时间长度(报表时间总长度)
可以用星期,天时,分,秒,等来表示下面是有效的字
符:w 星期,d 天,h 小时,m 分,s 秒。允许使用
小数值例如扩.5s 表示500 毫秒若只需一个样本请
将DURATION 设为0 零
HDWINTERVAL 消息型采样间隔的时间长度可以用星期日小时分和秒来表示例如1W 表示一星期
允许使用小数值例如用.25d 来表示6小时
有效字符与HDDURATION相同
注意DURATION 和INTERVAL 允许的最大时间长
度均为6 周这适用于所有请求类型日秒等例如如果
使用日则最大值为42,7 天x 6 周= 42 HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名)
以TagA,TagB,TagZ 格式输入,此外采样日期和或时间
可以通过使用内部系统标记名$Date 和$Time 来请
求
例如"$Date,TagA,TagB" 或"$Time,TagA,TagB" 或
"$Date,$Time,TagA,TagB"
HDWTAGS1, TAGS2,.... 消息型HDWTAGS 字符串在WindowViewer 中的长度
可以为131 个字符在Excel 中的长度可以为255 个
字符字符串,可以通过迭加标记名项目Tags1 Tags2
等来延长以适应更长字符串的要求,如果标记名需附
加额外的标记名文本请在字符串末输入一个加号(+)
例如,TAGS="$Date,ProdLevel,ProdTemp,+"
TAGS1="ReactLevel,Temp,GasLevel,+"
TAGS2="MotorStatus"
注意不允许使用重复标记名,每个标记字符串的最
大长度为512字节
HDWFILENAME 消息型规定生成的.CSV文件的路径和名称
例如,C:\\INTOUCH\\HDFILE.CSV HDWWRITEFILE 整型当设置为1 时HistData 会将请求数据写入由
FILENAME 项目名指定的文件,当文件更新完
成后WRITEFILE 会自动重置为0零
STATUS 离散型显示最后一次操作的状态1 表示成功,0 零表示
出错
ERROR 消息型包含上次错误说明的字符串,如STATUS 为1 则显示
无,如STATUS 为0 零则显示错误消息字符串
前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查状态和错误。
写脚本时应注意:
●HDWDBDir、HDWDataDir这两个标记名是规定路径的,可以用函数赋值。可以写
在应用程序脚本内。
●HDWFilename这个标记名是规定.CSV文件的路径和文件名。如果只打一种报表,
也可以写在应用程序脚本内,否则应在形成.CSV文件前指定。
●HDWTags和后续的HDWTags1、HDWTags2这些标记名是规定.CSV文件的包含的标
记名。如果只打一种报表,也可以写在应用程序脚本内,否则应在形成.CSV文件
前指定。
●HDWStartDate、HDWStartTime这两标记名是规定.CSV文件数据的起始日期和起始
时间的。如果是招呼打印报表,人工输入时格式一定要正确。如果是自动打印报表可以计算得到,一般可以在条件脚本内规定。
●HDWInterval、HDWDuratione这两标记名是规定.CSV文件的数据时间间隔和数据
时间的总长度,如日报表分别为:1H(小时)和1D(1天)。
●HDWWRITEFILE =1为生成.CSV文件,只有上述标记名义赋值后,才执行他。
●ERROR这个标记名可以显示生成.CSV文件时是否有错误,调试时非常重要。
4.5 建立标记名(需要采集用来做报表的变量名):
例如:先建立两个需要记录的标记名: PIT_1101, PIT_1102,步骤如下:
4.6 安装所需控件(Microsoft Office Spreadsheet 11.0及Microsoft Date and Time Picker Control 6.0),如下:
注:没有的控件要先安装后注册才能在这里安装,然后才添加应用。
4.7 将所需控件放置在窗口:
4.8建立脚本程序:
对应路径建立一个空的“Report.csv”文件,即用excel.exe在“D:\\”下创建Report.csv文件即可;
4.9在窗口拖放两个按钮:
4.9 通过窗口脚本模拟数据源的变化,如下:
4.10制作报表模板:
(1)、通过excel制作一个说明性更强的报表模板:
(2)、导入数据:
(3)、导入成功后如下:
(4)、录制宏:使得报表可以按选择日期自动生成,步骤如下:
(5)、删除后再次导入数据:(导入步骤同上述)
(6)、另存为.xlsx格式的表格:
(7)、停止宏的录制:
(8)、编辑刚刚录制的宏:
(9)、调试宏:
(10)、修改宏:
(11)、调用宏:
(12)、完成宏编辑之后再次另存为“启用宏的工作簿”格式即:.xlsm,名称是InTouch指定路径下的名称: :
(13)、完成以上步骤后就可以运行报表了:效果如下:
第一:先点击一下刚刚通过excel制作的报表,如下:
打开,运行如下:
对应位置已经生成了带日期的报表:如下:
(14)、通过InTouch 上位机调试报表工程,步骤如下:
此报表制作完成!下载本文