intouch 通过Excel 生成报表
Intouc的报表制作
用EXCEL制作打印报表1.原理首先根据报表要求,用INTOUCH的附件HISTDATA软件形成一个有规定数据的.CSV 文件(逗号分隔文件,可用EXCEL打开)。
这个.CSV文件是英文的,不符合一般报表的要求,只能提供数据。
所以需要另设计一个空的EXCEL报表模版,再将.CSV文件的数据复制到报表中,形成完整的报表。
通过INTOUCH可以自动产生.CSV,再通过EXCEL的宏程序打印报表,可以完成招呼打印和定时自动打印。
如果有多个报表,需要形成多个.CSV文件和设计多个EXCEL报表。
大致步骤如下:2.生成.CSV文件Step1: 自动生成需要的标记名在INTOUCH开发环境中,将向导库中\趋势\历史趋势向导(HistData)放入窗口。
这将自动形成若干标记名(Tag)。
有关标记名以HDW开头加上它们的DDE的ITEM命名。
这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名)以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文件的命令,最后两个用于检查状态和错误。
Intouch报表
在InTouch中如何使用excel做报表在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel 来做报表。
首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InT ouch 生成的历史数据导出到文本文件excel中。
然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。
再通过intouch提供的DDE协议将excel中的数据在intouch中您制作的那个表格里显示出来。
以下是用histdata将intouch历史数据导出到excel中的一些步骤:1、在Wonderware InTouch 中配置访问名2、使用INTOUCH向导,打开向导的“趋势”组。
选择histdata向导,粘贴到窗口。
双击给其指定一个“历史趋势”型标记名。
3、使用histdata向导时,会自动创建histdata标记名。
进入标记名字典可以看到一些以HDW开头的io型标记名,如HDWDataDir。
Wonderware InTouch 自动生成需要的标记名,这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以TagA,TagB,……TagZ 格式输入,此外采样日期和或时间可以通过使用内部系统标记名$Date 和$Time 来请求,例如"$Date,TagA,TagB" 或"$Time,TagA,TagB" 或"$Date,$Time,TagA,TagB"HDWTAGS1, TAGS2,.... 消息型HDWTAGS 字符串在WindowViewer中的长度可以为131 个字符在Excel 中的长度可以为255 个字符字符串,可以通过迭加标记名项目Tags1Tags2 等来延长以适应更长字符串的要求,如果标记名需附加额外的标记名文本请在字符串末输入一个加号(+)例如,TAGS="$Date,ProdLevel,ProdTemp,+"TAGS1="ReactLevel,Temp,GasLevel,+"TAGS2="MotorStatus"注意不允许使用重复标记名,每个标记字符串的最大长度为512字节HDWFILENAME 消息型规定生成的.CSV文件的路径和名称,例如,D:\report.csvHDWWRITEFILE 整型当设置为1时HistData 会将请求数据写入由FILENAME 项目名指定的文件,当文件更新完成后WRITEFILE 会自动重置为0零STATUS 离散型显示最后一次操作的状态1 表示成功,0 零表示出错ERROR 消息型包含上次错误说明的字符串,如STATUS 为1 则显示无,如STATUS 为0 零则显示错误消息字符串前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查错误。
intouch通过Excel制作报表
如何把i n t o u c h里的数据通过S Q L s e r v e r在E x c e l里实现报表功能一.需要安装的软件:Intouch、OPClink8.0、MicrosoftSQLServer2000、MicrosoftOfficeEXCEL、数据源ODBC软件(Windows自带)二.实现的步骤:1.建立Topic。
在下位机的相关软件里(DDE/OPC相关选项)建立一个Topic,用于和OPClink连接;如下图所示,给出了PLC建立的一个Topic:2.定义OPClink。
如图:建立一个与上位机通讯用的Topic(huanghua_opc),注意下图中的OPC[huanghua]就是在上图中建立的topic。
注意:OPClink建立的Topic(huanghua_opc)必须与intouch中的访问名一致3.定义ODBCDSN。
定义用户DSN,注意选择正确的SQLserver服务器与该服务器下定义的数据库。
4.在intouch中的SQL访问管理器中建立绑定列表。
如下图建立的列表“FIT_report”这个表给出了将要在报表里做记录显示的标记以及描述。
注意:这个表里的列名顺序必须和后面提及的数据库中建立的表格中的烈名顺序一致5.在SQLserver中建立数据库与表。
打开SQLserver中的“企业管理器”,在数据库中新建一个数据库“new”,在“表”中新建一个表注意上表中的列名必须和intouch绑定列表“FIT_report”里的列名顺序一致。
完成后保存,会提示给这个表提供一个表名。
6.在intouch中做一个报表窗口。
建一个报表窗口,如下图所示,做三个按钮:①“产生报表”脚本:鼠标左键/键按下时:ResultCode=SQLConnect(ConnectionId,"DSN=TEST1");ResultCode=SQLInsert(ConnectionId,"report","FIT_repor t");鼠标左键/键放开时:ResultCode=SQLDisconnect(ConnectionId);②“消除数据库”脚本:鼠标左键/键按下时:ResultCode=SQLConnect(ConnectionId,"DSN=TEST1");ResultCode=SQLClearTable(ConnectionId,"report");鼠标左键/键放开时:ResultCode=SQLDisconnect(ConnectionId);③“流量日报表”脚本:鼠标左键/键按下时:DIR_REPORT="C:\ProgramFiles\MicrosoftOffice\OFFICE11\Excel.exe";DIR_REPORT=DIR_REPORT+InfoInTouchAppDir();DIR_REPORT=DIR_REPORT+"\流量日报表.xls";StartAppDIR_REPORT;鼠标左键/键放开时:ResultCode=SQLDisconnect(ConnectionId);此外,如果定义数据为周期采集的话,应该在intouch的“数据改变”中注入控制脚本ResultCode=SQLConnect(ConnectionId,"DSN=TEST1");ResultCode=SQLInsert(ConnectionId,"report","FIT_report");ResultCode=SQLDisconnect(ConnectionId);如下图所示:至此,intouch里需要做的工作已经做完。
Intouch报表-EXCEL报表制作教程
用EXCEL打印报表1.原理首先根据报表要求,用INTOUCH的附件HISTDATA软件形成一个有规定数据的.CSV 文件(逗号分隔文件,可用EXCEL打开)。
这个.CSV文件是英文的,不符合一般报表的要求,只能提供数据。
所以需要另设计一个空的EXCEL报表模版,再将.CSV文件的数据复制到报表中,形成完整的报表。
通过INTOUCH可以自动产生.CSV,再通过EXCEL的宏程序打印报表,可以完成招呼打印和定时自动打印。
如果有多个报表,需要形成多个.CSV文件和设计多个EXCEL报表。
大致步骤如下:2.生成.CSV文件Step1: 自动生成需要的标记名在INTOUCH开发环境中,将向导库中\趋势\历史趋势向导(HistData)放入窗口。
这将自动形成若干标记名(Tag)。
有关标记名以HDW开头加上它们的DDE的ITEM命名。
这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名)以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文件的命令,最后两个用于检查状态和错误。
Intouch_EXCEL报表制作
用EXCEL打印报表1.原理首先根据报表要求,用INTOUCH的附件HISTDATA软件形成一个有规定数据的.CSV 文件(逗号分隔文件,可用EXCEL打开)。
这个.CSV文件是英文的,不符合一般报表的要求,只能提供数据。
所以需要另设计一个空的EXCEL报表模版,再将.CSV文件的数据复制到报表中,形成完整的报表。
通过INTOUCH可以自动产生.CSV,再通过EXCEL的宏程序打印报表,可以完成招呼打印和定时自动打印。
如果有多个报表,需要形成多个.CSV文件和设计多个EXCEL报表。
大致步骤如下:2.生成.CSV文件Step1: 自动生成需要的标记名在INTOUCH开发环境中,将向导库中\趋势\历史趋势向导(HistData)放入窗口。
这将自动形成若干标记名(Tag)。
有关标记名以HDW开头加上它们的DDE的ITEM命名。
这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名)以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文件的命令,最后两个用于检查状态和错误。
HISTDATA
HISTDATA在InTouch中如何使用excel做报表在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel来做报表。
首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InTouch 生成的历史数据导出到文本文件excel中。
然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。
再通过intouch提供的DDE协议将excel 中的数据在intouch中您制作的那个表格里显示出来。
以下是用histdata将intouch历史数据导出到excel中的一些步骤:1、在Wonderware InTouch 中配置访问名2、使用INTOUCH向导,打开向导的“趋势”组。
选择histdata 向导,粘贴到窗口。
双击给其指定一个“历史趋势”型标记名。
3、使用histdata向导时,会自动创建histdata标记名。
进入标记名字典可以看到一些以HDW 开头的io型标记名,如HDWDataDir。
Wonderware InT ouch 自动生成需要的标记名,这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以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文件的路径和名称,例如,D:\report.csv HDWWRITEFILE 整型当设置为1时HistData 会将请求数据写入由FILENAME 项目名指定的文件,当文件更新完成后WRITEFILE 会自动重置为0零STATUS 离散型显示最后一次操作的状态1 表示成功,0 零表示出错ERROR 消息型包含上次错误说明的字符串,如STATUS 为1 则显示无,如STATUS为0 零则显示错误消息字符串前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查错误。
intouch报表(access版)
Intouch报表作法(access版)一.将电脑的时间格式设为如下二.如果电脑没有dtpicker控件,可将mscomct2.ocx控件拷贝到“C:\WINDOWS\system32”目录下,在开始-运行中输入“mscomct2.ocx”进行注册,即可用。
(注册方法:regsvr32 mscomct2.ocx)。
三.做excel报表模板REPORT.xls,如下1.做报表模板,设置每一列的数据格式(字体和小数位数等)。
2.在“工具\宏\visual basic编辑器”进入VB环境插入窗体如下图如果工具箱没有没有dtpicker控件,在工具箱空白处鼠标右键-附件控件中找。
3.“工具\控件”菜单下添加如下引用。
四.Intouch安装时选上intouch自带的SQL安装包。
1.在intouch“特别\SQL访问管理器\绑定列表(B)”下添加列表(可见多个列表)。
绑定列表名为REPORT1。
如下图:2.在“控制面板”-管理工具-数据源(ODBC)下“系统DSN选项卡”中创建数据源。
本例中数据源名为INTOUCHDSN,“创建”-保存在某一目录下。
(本例中在“E:\REPORT\TEMPLAT”目录下,文件名为MYREPORT.mdb)3.打开MYREPORT.mdb,第一项“使用设计器创建表”,分别配置字段(字段名和intouch绑定列表中的“列名”对应,注意大小写),配置字段的数据类型(数字),属性表中配置字段大小为“小数”或“双精度”。
保存为TABLE1.4.INTOUCH-“应用程序脚本”中输入如下函数STA TUS=SQLConnect( ConnectionID, "Provider=MSDASQL;DSN=INTOUCHDSN;UID= ;PWD= " );INTOUCH-“数据改变脚本”中输入如下函数STA TUS=SQLInsert( ConnectionID,"TABLE1","REPORT1" );STA TUS=0表示没有错误。
用INTOUCH向EXCEL中写数据
用INTOUCH向EXCEL中写数据,然后在EXCEL中用VBA对数据进行处理自动生成日报表下面是INTOUCH中条件程序,条件为:$minute==2(整点后第2分钟写数据):m1=StringFromIntg( $Hour, 10 )+",";m1=m1+StringFromReal(PT,2,"f" )+",";m1=m1+StringFromReal(NTU,2,"f" )+",";m1=m1+StringFromReal(CHL,2,"F")+",";m1=m1+StringFromReal(FLOW,0,"F")+",";IF pump_state1.02 THEN m1=m1+"工频运行"+","; ENDIF;IF pump_state1.03 THEN m1=m1+"变频运行"+","; ENDIF;IF pump_state1.02==0 AND pump_state1.03==0 THEN m1=m1+"停机"+","; ENDIF;IF pump_state1.07 THEN m1=m1+"工频运行"+","; ENDIF;IF pump_state1.08 THEN m1=m1+"变频运行"+","; ENDIF;IF pump_state1.07==0 AND pump_state1.08==0 THEN m1=m1+"停机"+","; ENDIF;IF pump_state1.12 THEN m1=m1+"工频运行"+","; ENDIF;IF pump_state1.13 THEN m1=m1+"变频运行"+","; ENDIF;IF pump_state1.12==0 AND pump_state1.13==0 THEN m1=m1+"停机"+","; ENDIF;IF pump_state2.02 THEN m1=m1+"工频运行"+","; ENDIF;IF pump_state2.03 THEN m1=m1+"变频运行"+","; ENDIF;IF pump_state2.02==0 AND pump_state2.03==0 THEN m1=m1+"停机"+","; ENDIF;m1=m1+StringFromReal(HZ,0,"F")+",";m1=m1+StringFromReal(LT,2,"f" )+",";IF mw1_00.15 THEN m1=m1+"运行"+",";ELSE m1=m1+"停机"+",";ENDIF;IF mw1_01.15 THEN m1=m1+"运行"+",";ELSE m1=m1+"停机"+",";ENDIF;m1=m1+StringFromReal(chol1_flow,2,"f")+",";m1=m1+StringFromReal(chol2_flow,2,"f")+",";m1=m1+StringFromReal(chol1_wei,0,"f")+",";m1=m1+StringFromReal(chol2_wei,0,"f")+",";m1=m1+StringFromReal(chem1_lev,2,"f")+",";m1=m1+StringFromReal(chem2_lev,2,"f")+",";m1=m1+StringFromReal(chem1_freq,0,"f")+",";m1=m1+StringFromReal(chem2_freq,0,"f")+",";m1=m1+StringFromReal(chem_flow,0,"f")+",";IF mw1_00.02 THEN m1=m1+"运行"+",";ELSE m1=m1+"停机"+",";ENDIF;IF mw1_00.06 THEN m1=m1+"运行"+",";ELSE m1=m1+"停机"+",";ENDIF;IF mw1_00.10 THEN m1=m1+"运行"+",";ELSE m1=m1+"停机"+",";ENDIF; FileWriteMessage( "e:\shiye\report\day\day.csv",-1,m1,1 );m1是内存消息型变量。
在InTouch中如何使用excel做报表
在InTouch中如何使用excel做报表在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel 来做报表。
首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InTouch 生成的历史数据导出到文本文件excel中。
然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。
再通过intouch提供的DDE协议将excel中的数据在intouch中您制作的那个表格里显示出来。
以下是用histdata将intouch历史数据导出到excel中的一些步骤:1、在Wonderware InTouch 中配置访问名2、使用INTOUCH向导,打开向导的“趋势”组。
选择histdata向导,粘贴到窗口。
双击给其指定一个“历史趋势”型标记名。
3、使用histdata向导时,会自动创建histdata标记名。
进入标记名字典可以看到一些以HDW开头的io型标记名,如HDWDataDir。
Wonderware InTouch 自动生成需要的标记名,这些标记名说明如下: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 周 = 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以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文件的路径和名称,例如,D:\report.csvHDWWRITEFILE 整型当设置为1时HistData 会将请求数据写入由FILENAME 项目名指定的文件,当文件更新完成后WRITEFILE 会自动重置为0零STATUS 离散型显示最后一次操作的状态1 表示成功,0 零表示出错ERROR 消息型包含上次错误说明的字符串,如STATUS 为1 则显示无,如STATUS 为 0 零则显示错误消息字符串前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查错误。
intouch报表
intouch报表简介intouch报表是一种数据可视化工具,用于呈现和分析数据。
通过使用intouch报表,用户可以将复杂的数据转化为易于理解和决策的报表形式。
该文档将介绍intouch报表的基本概念、使用方法和常见功能。
概念在开始使用intouch报表之前,让我们先了解一些基本概念:•数据源:intouch报表需要从一个或多个数据源中获取数据。
数据源可以是数据库、Excel文件或其他支持的数据源。
•数据集:数据集是指从数据源中检索的一组数据。
数据集通常包含多个列和行,每列代表一项数据,而每行代表一个数据记录。
•报表:报表是数据集的可视化呈现形式。
通过使用图表、表格、图像和其他可视化工具,报表可以帮助用户更好地理解和分析数据。
使用方法下面是使用intouch报表的一般步骤:1.连接数据源:首先,需要连接到所需的数据源。
这可以通过选择合适的数据源类型和提供必要的连接信息来完成。
2.创建数据集:一旦连接到数据源,就可以创建数据集。
在创建数据集时,您可以选择所需的列和行,并可以通过筛选器和排序规则来定义数据的范围。
3.设计报表:在创建数据集后,可以开始设计报表。
intouch报表提供了丰富的报表设计工具,包括各种图表和图像,以及对数据进行格式化和布局的选项。
4.编辑报表:在设计报表后,您可以随时编辑报表。
您可以更改图表类型、添加新的图表元素、调整布局和样式等。
5.保存和导出报表:一旦完成报表设计,您可以保存报表并导出为各种格式,如PDF、PNG和Excel等。
常见功能intouch报表提供了许多强大的功能,使用户能够更好地分析和展示数据。
下面介绍一些常见功能:•图表类型:intouch报表支持各种图表类型,如柱状图、饼图、折线图、散点图等。
根据数据类型和需求,可以选择合适的图表类型来展示数据。
•筛选器:intouch报表允许用户使用筛选器来过滤数据。
通过设置合适的筛选条件,可以选择性地展示特定数据。
如何通过INTOUCH组态软件做EXCEL报表(含代码)
如何通过INTOUCH组态软件做EXCEL报表(含代码)报表功能是自控系统经常用的一个功能,用过报表功能,我们能用表格的方式,查询到历史数据,也能通过报表分析、统计,并根据报表调整工艺配方等等。
以往组态软件,对报表支持力度上都不是很友好,数据不能自定义的编写,或者格式不是特别美观,又或者不能直接打印报表等等诸多因素。
我们萌发了,能否利用EXCEL强大的报表做出我们需要的表格呢。
经过摸索,我们顺利做出了EXCEL报表。
01如何将intouch数据插入到SQL数据库1:首先先在SQL数据库建立一张表,这里我们使用SQL2008版本,其他版本操作雷同。
建立过程不详细描述,如图所示,我们新建了一张表,并且完成表的设计,新增了列名和数据类型。
2:在SQL server配置管理器中开启TCP/IP,开启后,方便我们同过IP进行读写数据库,否则只能本地读数据库读写。
3:通过INTOUCH软件新增标签名,确保标签名能和PLC通讯成功。
4:在INTOUCH的SQL访问管理器中建立绑定列表。
5:在绑定列表中配置字段信息,INTOUCH的绑定列表列名和SQL数据库中的列名,必须一致(一字不差),否则无法插入数据库。
6:在INTOUCH中新建一个插入数据库的代码7:运行INTOUCH,触发按钮。
并且熟悉数据库就能看到数据插入成功了。
另外,如果需要每个整点插入数据库,只需要在INTOUCH条件中,插入相应代码就行了。
我这里通过,每个整点分钟为0的时候,插入数据库一次。
个别业主需要一天24小时的数据,我们这里,再23:59分的时候再插入一次数据。
02如何通过EXCEL表格查询到SQL数据库如图所示,可以点击日期控件,可以刷新当前日期所对应的数据内容到EXCEL中。
本文安装EXCEL2013为例,具体步骤如下:1:先安装日期控件,我们这里用的是的samradapps_datepicker。
官方地址 /datepicker/安装方法把下载和解压缩后得到的.xlam文件,放到Excel安装目录下的xlstart文件夹。
intouch通过excel生成报表
1、自动生成需要的标记名在intouch开发环境中,将向导库中/趋势/历史向导(HistData)放入窗口,这将自动生成若干标记名(如下)。
有关标记名以HDW开头,加上他们的DDE的Item命名。
标记名说明如下:HDWDataDir 消息型历史数据文件的目录的路径名,可用函数赋值。
例如:HDWDataDir = HTGetLogDirectory();HDWDBDir 消息型intouch标记名字典的目录的路径名,可用函数赋值。
例如:HDWDBDir = InfoInTouchAppDir();HDWStratDate 消息型与$DataString 相同格式的数据采样开始日期。
例如:HDWStartTime 消息型使用24小时时钟的HH:MM:SS 格式的数据采样开始时间例如:09:45:33HDWDuration 消息型数据时间长度(报表时间总长度)可以用星期,天,时,分,秒,等来表示。
下面是有效的字符:W 星期,D 天,H 小时;M 分,S 秒。
允许使用小数值例如:表示500毫秒;若只需要一个样本,请将Duration设为零。
HDWInterval 消息型采样间隔的时间长度可以用星期,日,小时,分,秒来表示例如1W 表示一星期。
允许使用小数值例如:.25d 来表示6小时。
有效字符与HDWDuration相同;注意Duration 和Interval允许的最打时间长度为6周,这适用于所有请求类型日,秒,等。
例如如果使用日则最大值为42, 7天*6周=42天。
HDWTags 消息型历史数据的标记名列表(报表中需要的标记名)以taga,tagb;tagz格式输入,此外采样日期或时间可以通过使用内部系统标记$Date和$Time来请求。
HDWFileName 消息型规定生成的.CSV文件的路径和名称。
例如:E:\111\HDWWriteFile 整形当设置为1时,HistData 会将请求数据写入由FileName项目名指定的文件,当文件更新完成后WriteFile 会自动重置为0 Status 离散型显示最后一次操作的状态 1 表示成功,0 表示出错Error 消息型包含上次错误说明的字符串,如Status 为1 则表示无,如Status为0 则表示错误消息字符串。
HISTDATA
在InTouch中如何使用excel做报表在InTouch中有很多做报表的方法,本文介绍在InTouch中如何使用excel来做报表。
首先在Wonderware InTouch 中使用历史数据导出工具histdata , 将Wonderware InTouch 生成的历史数据导出到文本文件excel中。
然后您可以在excel中通过函数对这些数据进行处理生成您需要的数据,如流量、压力、液位等。
再通过intouch提供的DDE协议将excel 中的数据在intouch中您制作的那个表格里显示出来。
以下是用histdata将intouch历史数据导出到excel中的一些步骤:1、在Wonderware InTouch 中配置访问名2、使用INTOUCH向导,打开向导的“趋势”组。
选择histdata向导,粘贴到窗口。
双击给其指定一个“历史趋势”型标记名。
3、使用histdata向导时,会自动创建histdata标记名。
进入标记名字典可以看到一些以HDW 开头的io型标记名,如HDWDataDir。
Wonderware InTouch 自动生成需要的标记名,这些标记名说明如下: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 周= 42HDWTAGS 消息型历史数据的标记名列表(报表中需要的标记名),以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文件的路径和名称,例如,D:\report.csv HDWWRITEFILE 整型当设置为1时HistData 会将请求数据写入由FILENAME 项目名指定的文件,当文件更新完成后WRITEFILE 会自动重置为0零STATUS 离散型显示最后一次操作的状态1 表示成功,0 零表示出错ERROR 消息型包含上次错误说明的字符串,如STATUS 为1 则显示无,如STATUS为0 零则显示错误消息字符串前9个TAG规定数据的内容,HDWWRITEFILE=1是写.CSV文件的命令,最后两个用于检查错误。
基于Excel的InTouch报表系统的实现
2021年2月基于的报表系统的实现张文卫(新余钢铁集团有限公司自动化部,江西新余338000)【摘要】第二炼钢厂转炉区域能源介质多,并且需要进行抄表计量,抄表内容较多,每次抄表时都要人工将这些数字一个一个输入表格。
这个过程不仅要花费较长时间,而且由于抄表人员的失误或疏忽大意造成数据出错的可能。
为了解决这个问题,本文介绍了如何利用InTouch 与Microsoft Excel 建立链接,将能源计量数据一键记录并保存至本地Microsoft Excel 表格中。
【关键词】InTouch ;DDE 协议;Excel ;报表【中图分类号】TP3【文献标识码】A 【文章编号】1006-4222(2021)02-0283-020前言InTouch 是由Wonderware 公司开发的面向工业控制的人机对话界面(HMI )开发工具,新钢公司第二炼钢厂转炉炼钢控制中就广泛使用了这一软件。
InTouch 支持动态数据交换(DDE ),能够用作DDE 和SuiteLink 通信协议的客户和服务器,通过DDE 和SuiteLink 协议,InTouch 能与其他Windows 程序、Wonderware I/O 服务器和第三方I/O 服务器程序实现通信。
InTouch 中制作报表有多种方法,本文是利用Excel 通过InTouch 的DDE 接口与InTouch 进行数据通信,从而实现一键记录能源计量数据,避免造成各种人为错误导致炼钢成本提高的可能。
1InTouch 与Excel 的通讯方法(1)在本地计算机上创建一个Excel 表格。
如在D 盘新建一个名为zzz.xlsx 的Excel 表格。
(2)配置InTouch 访问名。
运行InTouch 软件,新建一个项目,打开该项目配置访问名,访问名名称可自己定义(如Ex 原cel ),应用程序名输入Excel ,主题名输入新建好的Excel 表格的完整路径D :\zzz.xlsx ,通信协议选择DDE 接口(见图1)。
Excel
WINCC INTOUCH Excel 报表制作流程南京疆拓自动化科技有限公司前言:主要介绍Intouch10和Wincc6制作Excel报表的流程,分为2部分,一部分是数据录入,一部分是数据查询。
数据录入根据使用的软件不同,录入方法也不同,而查询可以用同一个模板。
数据库:前提条件:假设我们需要录入三个变量 A B C数据库准备:使用SQLServer,服务器名字如下图所示:打开数据库管理器,在Master数据库里面,新建一个表格,第一个用于存储日期,例如(2013-03-02 11:23:50),后面三个字段用于存储变量的值,变量多就增加相应的字段。
数据表存储为DongTRU:至此,数据库已经创建完毕。
Intouch数据录入。
1)首先建立三个变量A B C的标签。
(这里以内部变量代替)A B C完全一致。
再建立一个标签riqi用于存储当前的日期数据(Intouch日期和时间变量是分开的),数据类型为内存消息型。
添加一个数据改变程序,变量为$Second,目的是每秒钟获取一个当前的系统时间,如下图:变量处理完毕后,就需要建立绑定列表了,将Intouch的变量标签和数据库表格里面的字段一一对应起来。
2)创建绑定列表这样就创建了一个绑定列表LIST。
3)连接数据库,进行数据的插入首先在应用程序脚本里面(启动)写脚本,连接数据库ResultCode=SQLConnect(ConnectionID,"driver=sqlserver;server=PC-20121027HGMX\WINCC;DATABASE=Master;uid=haha;pwd=haha"); 代码解释如下:ResultCode:内存整形变量,查看连接成功与否;ConnectionID:连接ID,系统会为每个连接自动分配一个ID。
SQLConnect:是Intouch提供的连接数据库的函数。
PC-20121027HGMX\WINCC:SQLSERVER服务器的名字。
用EXCEL实现INTOUCH报表功能
用EXCEL实现INTOUCH报表功能2008NO.31甄而而dTechnologyInnovationHeraLd用EXCEL实现INTOUCH报表功能郭棣刘晓军周铭(克拉玛依华澳石油化工进出口有限公司新疆克拉玛依834000)工程技术摘要:本文介绍了如何利用Excel通过DDE接口与InTouch进行数据通讯,/tL~InTouch定时打开和关闭Excel,利用Excel中的宏功能生成报表,制作过程简单灵活.-关键词:InTouchDDEExcel宏报表中图分类号:TP3文献标识码:A文章编号:1674—098X(2008)ll(a)-OlO0—02 1引言Intouch是工业过程控制中广泛使用的组态软件,它是由美国WONDERWARE公司开发的面向工业控制的人一机对话界面(HMI)开发工具,,曾连续多年被国际过程控制协会评为最佳软件.INTOUCH提供了组态环境WindowMaker和运行环境WindowViewer.在组态环境下定制系统,进行数据库组态,画面组态,定义系统的数据采集和控制任务.在运行环境中通过执行InTouchQuickScripts来实施这些任务,进行报警和运行历史数据的记录和报告,并将数据实时传输给本站的其它任务和网上其它工作站.InTouch支持动态数据交换(DDE),能够用作DDE和SuiteLink 通讯协议的客户和服务器.通过DDE和SuiteLink,InTouch能与其他Windows程序,WonderwareI/O服务器和第三方I/0服务器程序实现通讯.在Intouch中制作报表可以有多种方法,本文介绍的是使用Excel通过DDE接I:1与InTouch进行数据交换,利用Excel的宏以实现报表功能.实现过程简单,报表样式可以根据自己的需要灵活设计.2DDE接口Intouch组态软件支持DDE接口,提供DDE动态数据交换(DDEClient)模块用于与其它应用软件之闻进行实时数据和历史数据交换;通过DDEServer实现实时数据库与报表软件之间的数据交换.DDE是Windows环境下应用程序之间使用的数据交换协议.Windows提供DDE通信管理库函数,应用程序调用这些库函数,请求DDE通信服务.应用程序之间进行数据交换叫做”对话”,发起对话的一端叫做”客户”,而对客户做响应的一端叫做”服务器.建立DDE对话的三大要素是:a.应用名(Applications).DDE对话应用名,如TCApp.Windows的DDEML管理许多DDE对话,用应用名来区别.b.对话主题(Topics):服务器所支持的对话话题.一个DDE应用名下可以有多个对话话题,用于区别对话的类型.c.项目(hems):对话话题下的数据项名.服务器发送数据到客户:在数据库的组态中,定义输入数据点的类型和设备地址,驱动类型是DDE,这样当Intouch软件转入运行方式时,就会向DDEML申请服务,与服务器TCApp建立连接,一个DDE会话活动开始了.会话连接建立后,每当有数据变化,服务器TCApp就会将数据发送给客户.客户发送数据到服务器:在数据库的组态中,定义输出数据点的类型和设备地址,驱动类型是DDE,这样当Intouch软件转入运行方式时,就会向DDEML申请服务,与服务器TCApp建立连接.:DDE会话活动开始后,每当有输出点数据有变化,Intouch就会将输出点数据的值发送给服务器.以上两种方式都是热链接(HotLink).在Intouch程序中有一个DDEc~entTasR,我们可以用它来监视和管理DDE客户任务,查看是否有错误发生.还可以用它来改变与服表1日报表100科技创新导报ScienceandTechnologyInnovationHerald 务器TCApp的连接方式,建立一个冷链接,每隔一定时间向服务器发送一次数据请求.3EXCEL的宏功能EXCEL提供一个VisualBasic编辑器,打开Visua1.Basic编辑器,其中有一工程属性窗口,点击右键菜单的”插入模块”,则增加一个“模块1”,在此模块中可以运用VisualBasic语言编写函数和过程并称之为宏.其中,EXCEL有两个自动宏:一个是启动宏(SubAutoOpen()),另一个是关闭宏(SubAuto—Close()).它们的特性是:当用EXCEL打开含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏.但是通过VB的自动化功能来调用EXcEL工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros(xlAutoOpen)~xlBook.RunAutoMacros(xiAutoClose)来运行启动宏和关闭宏.4InTouch与Excel数据通讯方法4.IInTouch访问Excel(1)配置Intouch访问名,应用程序名输入excel,主题名输入excel的完整路径,比如D: \1.xls,如果要使用sheet2表里的数据,那么主题名就输入D:\1.xls\sheet2.(2)建立标记名的时候,项目选择阿《才的访,比如IO 问名,注意标记名类型必须是IO型实型,IO离散等.项目名输入rlcl,这表示第一列第一行,也就是A1,如果输入r2cl那么就是第一行第二列,也就是A2,依次类推.(3)在与excel进行数据交换得时候必须得先打开对应的excel表(也就是DDE的服务端),否则会提示无法打开项目名”EXcEL.4.2Excel访问InToueh在表格中输入==viewltagname!tag“view”是应用程序的名称;”t agname是项目名;”tag是InTouch中实际的组态工位名.5报表的制作下面以一个日报表为例介绍制作一个日报表的完整过程及EXCEL中函数的写法.要求每小时记录一次数据,每天打印一次,打印时间是00:00.工程技术Q:i! ScienceandTechnologyInnovationHerald 在InTouch中编写脚本定时打开和关闭Excel,利用Excel中的宏功能,运用Visual Basic语言编写相应的函数,可以实现定时从InT0UCh中取数据,以及数据的记录,打印,保存等功能,报表的样式可以按照实际需求进行灵活的设计.具体制作报表的过程如表l.5.1在InTouch中定时打开和关闭Excel打开Excel:条件:$TimeString==“hh:mm:ss”语句:StartAPPd,Programfiles\office2003\officel1\Excel”;关闭Excel:,条件:$TimeString语句:wwcontrol(InfoAppTnle (“Excel”),”Close”);5.2Excel打开后自动打开指定的报表模板有两个方法:(1)利用宏功能:SubWorkbook—Open() OnErrorResumeNextWorkbooks.OpenFfleName:D:\报表\Example.xls”EndSub在Excel启动宏中执行Workbook_Open 函数即可打开指定文件.(2)把指定的模板文件放在:\}$}}\MiCrosoftOfficeXOffice\XLStart的目录下.模板文件需要提前制作好,主要是根据实际需求设计报表的样式.5.3Excel获取InTouch的数据在第4部分中讲述了Excel访问InTouch 数据的方法,下面是具体的程序语句: (1)在启动宏中进行时间的判断: Subauto_open()Application.OnTimeTimeValue (“hh:mm:ss”),”write” Application.OnTimeTimeValue(….hh:mm:SS”),”write_value” EndSub(2)满足条件后首先执行从InTouch中读取数据的宏”write”: Subwrite()Application.Range(“ptacel”1=“-viewltagname[tag1”Application.Range(“place2”)“=viewltagname!tag2”EndSub“placel,place2”为工作表中要写入”B8,C8”,”tag1, 表达式的位置,如tag2”为InTouch中实际组态的工位号,如Til01,PI102.(3)读出数据后再将数值写入表格,保存之后关闭:Subwrite_value()Application.Range(,?placelI)=Application.Range(…placell11.Value Application.Range(“place2”)=Application.Range(“place2??).Value ActiveWorkbook.Save ActiveWorkbook.CloseEndSub5.4打印并保存取得一天24个小时的数据后打印报表,然后将报表保存到指定的报表文件存储目录, 文件以当前日期命名,之后清空模板文件中的内容并关闭Excel.(1)打印报表在启动宏中对时间进行判断: Subauto—open()Application.OnTimeTimeValue(“00:0l:o0”),”print—Report” EndSub满足条件后执行打印宏:SubPrint—Report()ActiveW0rkb00k.ActiveSheet.PrintOutCopies:1,Collate: =TrueEndSub(2)将文件保存到指定的历史报表存储目录,此处为”D:\报表”SubSave—Report()0nErrorGoTolir伦27Dimfj1e_nameAsStringfile_name=Range(“A32.1ActiveWorkbook.SaveAsFflename:=file_name ActiveWOrkbOOk.CloseSaveChanges:=TrueIfError=TrueThenline27:msg=MsgBox(“!请先建立报表保存路径”,vbInformation,”目标路径不存在”)?EndIfEndSub其中”A32”中放置的是当前文件存放的路径及文件名表达式,用以取得当前文件的完整保存路径及文件名,文件名以当天的日期命名:=\”&TEXT(TODAY “D:\报表0,”YYYYMMDD”)&”.XLS”(3)历史报表文件保存操作完成后再打开模板文件,并清空模板文件中的数据,然后关闭文件.Workbooks.OpenFfleName:=“D:\报表\Exampl e.xls”Range(“placex:placey”).Select Selection.ClearContents ActiveWorkbook.SaveActiveWilldow.CloseActiveWindow.Close“placex:placey”为选定的要清空数据的单元格范围.6在InTouch中关闭Excel至此,一个完整的报表制作过程即结束了.如果要对InTouch中的历史数据进行访问,可以借助于InTouch提供的历史数据管理程序Hisdata,下面对其的使用作一个简单介绍.Hisdata能够作为InTouch日志文件(.1gh)的DDE服务程序,从历史数据中检索出需要的历史数据,供其内部的数据库使用或转换成逗号分隔变量(.csv)文件,供Excel或其它程序使用.Hisdata有它自己的内部数据库,其内部数据库的项是用来指定要访问的历史数据起始时间,延续及采样间隔等,数据库结构如下图所示:在应用程序中,建立一个以Hisdata为服务器的DDE类型报表访问名Report,分别以Hisdata数据库字段名建立相应的DDE访问项(数据类型相同).则在WindowsViewer运行过程中,当应用程序向服务器(Hisdata)发送请求数据指令时,Hisdata会根据用户所提供的数据库字段值从历史数据库的相应文件中提取满足要求的数据.根据本文介绍的方法制作报表不需要借助专用的报表及趋势分析软件,制作过程简单灵活,已在某油田公司天然气站进行了实际的应用.参考文献【1】Wonderware公司.InTouch用户指南【2]Wonderware公司.NetDDEforWin—dowsuser?sGuide[3](美)沃肯巴赫.Excel2003高级VBA编程宝典.电子工业出版社,2005.10.科技创新导报ScienceandTechnologyInnovationHeraldi01。
手把手教你制作定时读取Intouch中数据并生成EXCEL做表格
本教程的目的:定时(时间可以自由设置)读取intouch上的数据并导出到EXCEL表格中。
导出后的表格见下图(小编懒省事随便弄了一下,可以根据需要设置):第一步开始:安装SQL2000。
安装C:\SQLEVAL autorun.exe安装SQL server2000组件安装数据库服务器本地计算机点下一步,如果出现要重启电脑,去注册表regedit。
删除下面的选项。
继续安装SQL2000创建新的SQL server服务器和客户端工具使用本地系统账户混合模式密码123456下一步完成安装。
在程序中打开Microsoft SQL Server企业管理器在G盘建立文件夹SQLData新建数据库:名称intouch,分别在数据文件和事务日志中位置找到刚建立的SQLData文件。
Intouch中表新建表,第一行右键设置主键,其它如下。
点击保存表命名为Report。
打开intouch、安装包。
将安装在本地硬盘驱动上INTOUCH表里面都有才行。
新建ConnectString脚本-应用程序ConnectString="Provider=SQLOLEDB.1;User ID=sa; Password=123456;Initial Catalog=Intouch;Data Source=.;"; ResultCode=SQLConnect(ConnectionId,ConnectString);在关闭时:附件里面可以找到下面函数SQLDisconnect(ConnectionId);插入-标记名-$MinuteResultCode=SQLInsert(ConnectionId,"Report","Report"); ErrorMsg=SQLErrorMsg(ResultCode);运行INTOUCH安装Microsoft Office mscomct2控件包把MSCOMCT2.OCX复制到C:\WINDOWS\system32文件里面运行-cmd-regsvr32MSCOMCT2.OCX在INTOUCH中找到可用的ACtivex控件中:如下控件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、自动生成需要的标记名
在intouch开发环境中,将向导库中/趋势/历史向导(HistData)放入窗口,这将自动生成若干标记名(如下)。
有关标记名以HDW开头,加上他们的DDE的Item命名。
标记名说明如下:
HDWDataDir 消息型历史数据文件的目录的路径名,可用函数赋值。
例如:HDWDataDir = HTGetLogDirectory();
HDWDBDir 消息型intouch标记名字典的目录的路径名,可用函数赋值。
例如:HDWDBDir = InfoInTouchAppDir();
HDWStratDate 消息型与$DataString 相同格式的数据采样开始日期。
例如:
HDWStartTime 消息型使用24小时时钟的HH:MM:SS 格式的数据采样开始时间
例如:09:45:33
HDWDuration 消息型数据时间长度(报表时间总长度)
可以用星期,天,时,分,秒,等来表示。
下面是有效的
字符:W 星期,D 天,H 小时;M 分,S 秒。
允许使用
小数值例如:表示500毫秒;若只需要一个样本,请将Duration
设为零。
HDWInterval 消息型采样间隔的时间长度
可以用星期,日,小时,分,秒来表示例如1W 表示一
星期。
允许使用小数值例如:.25d 来表示6小时。
有效字
符与HDWDuration相同;注意Duration 和Interval允许的最打
时间长度为6周,这适用于所有请求类型日,秒,等。
例如如
果使用日则最大值为42, 7天*6周=42天。
HDWTags 消息型历史数据的标记名列表(报表中需要的标记名)
以taga,tagb;tagz格式输入,此外采样日期或时间可以通过使用
内部系统标记$Date和$Time来请求。
HDWFileName 消息型规定生成的.CSV文件的路径和名称。
例如:E:\111\
HDWWriteFile 整形当设置为1时,HistData 会将请求数据写入由FileName项目
名指定的文件,当文件更新完成后WriteFile 会自动重置为0 Status 离散型显示最后一次操作的状态 1 表示成功,0 表示出错
Error 消息型包含上次错误说明的字符串,如Status 为1 则表示无,如Status
为0 则表示错误消息字符串。
例如:下面脚本生成一个日期由StartData1规定,但包含两个标记名PI-101;TI-101,日报表。
可以复制在脚本中,修改一下就可以形成所需的.CSV文件。
HDWStartDate=StartDate1;
HDWStartTime=”00:00:00”;
HDWDBDir=InfoIntouchAppDir();
HDWDataDir=HTGetLogDirectory();
HDWFilename=” E:\111\”;
HDWTags=”$Date,$Time, PI-101,TI-101”;
HDWInterval=”1H”;
HDWDuration=”1D”;
HDWWritefile=1;
例如:设计一个按钮,当按下按钮时,生成一个.CSV表格。
生成表格的起始日期,和起始时间可调,表格时间间隔也可调。
新建内存型标签,标签数据类型为消息型:startdate 消息型;starttime 消息型
其中:a,b,c,d,e,f 为需要在excel表格中体现的数据列。
报表生成。
HDWStartDate = startdate; HDWStartTime =starttime; HDWDBDir = InfoInTouchAppDir(); HDWDataDir = HTGetLogDirectory(); HDWFilename = "E:\111\"; HDWTags ="$Date, $Time, temp1,level1"; HDWInterval = "1s";
HDWDuration = Text(t,"#")+"h" ; HDWWriteFile=1;
StartApp "E:\111\";。