intouch通过Excel制作报表
- 格式:docx
- 大小:258.55 KB
- 文档页数:5
如何把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里需要做的工作已经做完。
用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文件的命令,最后两个用于检查状态和错误。
用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文件的命令,最后两个用于检查状态和错误。
如何使用Excel进行报表自动化与批量生成Excel作为一款功能强大的电子表格软件,在处理大量数据和生成报表方面非常方便和高效。
本文将介绍如何使用Excel进行报表自动化与批量生成,帮助读者提升工作效率和准确性。
一、设定数据源在进行报表自动化前,第一步是设定数据源。
可以将数据源存储在Excel的工作表中,也可以通过外部数据库、文本文件等导入数据源。
确保数据源的准确性和完整性是关键。
二、使用数据透视表数据透视表是Excel中非常有用的工具,可以快速汇总和分析大量数据。
使用数据透视表可以轻松生成报表,只需简单的拖拽和设定参数即可。
首先,选择要生成报表的数据范围,然后点击“插入”选项卡中的“数据透视表”按钮。
接着,在弹出的对话框中,选择数据源和报表布局,点击确定即可生成数据透视表。
根据需要对数据透视表进行进一步设定,包括字段选择、数据筛选和计算项设置等。
数据透视表可以对数据进行分类、过滤、求和、计数等操作,同时还支持数据透视表的样式和布局调整。
通过灵活运用数据透视表,可以轻松生成符合需求的报表。
三、使用公式Excel的公式功能非常强大,可以进行各种复杂的计算和数据处理。
在报表生成过程中,可以通过编写适当的公式实现报表的自动化。
常用的公式包括SUM、AVERAGE、IF等函数,可以根据具体需求进行选择和应用。
通过使用公式,可以快速进行数据汇总、计算百分比、判断条件等操作,从而实现报表的自动化生成。
四、使用宏Excel的宏是一段自动执行的代码,可以实现用户自定义的操作和功能。
通过录制宏或编写VBA代码,可以实现报表的批量生成和自动化处理。
首先,点击“开发工具”选项卡,然后选择“使用相对应用程序录制宏”或“Visual Basic”按钮。
接着,进行录制或编写VBA代码,包括打开数据源、生成报表、保存文件等操作。
最后,将宏与特定的按钮或快捷键关联,以便快速执行宏。
通过使用宏,可以批量生成报表、自动填充数据、自动调整格式等,实现报表的高效生成与处理。
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中写数据,然后在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中有很多做报表的方法,本文介绍在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报表需要从一个或多个数据源中获取数据。
数据源可以是数据库、Excel文件或其他支持的数据源。
•数据集:数据集是指从数据源中检索的一组数据。
数据集通常包含多个列和行,每列代表一项数据,而每行代表一个数据记录。
•报表:报表是数据集的可视化呈现形式。
通过使用图表、表格、图像和其他可视化工具,报表可以帮助用户更好地理解和分析数据。
使用方法下面是使用intouch报表的一般步骤:1.连接数据源:首先,需要连接到所需的数据源。
这可以通过选择合适的数据源类型和提供必要的连接信息来完成。
2.创建数据集:一旦连接到数据源,就可以创建数据集。
在创建数据集时,您可以选择所需的列和行,并可以通过筛选器和排序规则来定义数据的范围。
3.设计报表:在创建数据集后,可以开始设计报表。
intouch报表提供了丰富的报表设计工具,包括各种图表和图像,以及对数据进行格式化和布局的选项。
4.编辑报表:在设计报表后,您可以随时编辑报表。
您可以更改图表类型、添加新的图表元素、调整布局和样式等。
5.保存和导出报表:一旦完成报表设计,您可以保存报表并导出为各种格式,如PDF、PNG和Excel等。
常见功能intouch报表提供了许多强大的功能,使用户能够更好地分析和展示数据。
下面介绍一些常见功能:•图表类型:intouch报表支持各种图表类型,如柱状图、饼图、折线图、散点图等。
根据数据类型和需求,可以选择合适的图表类型来展示数据。
•筛选器:intouch报表允许用户使用筛选器来过滤数据。
通过设置合适的筛选条件,可以选择性地展示特定数据。
如何在excel中实现数据自动化报表生成如何在 Excel 中实现数据自动化报表生成在当今数字化的工作环境中,数据处理和分析变得日益重要。
Excel 作为一款强大的电子表格软件,提供了丰富的功能来实现数据自动化报表生成,这不仅能提高工作效率,还能减少人为错误。
接下来,让我们一起深入探讨如何在 Excel 中实现这一目标。
首先,要明确数据的来源和格式。
数据可能来自于各种渠道,如数据库、文本文件、其他电子表格等。
在导入数据之前,需要对数据的格式进行检查和整理,确保数据的准确性和一致性。
例如,如果数据中存在空值或错误的值,需要提前进行处理。
接下来,熟练运用 Excel 的函数和公式是实现自动化报表生成的关键。
常见的函数如 SUM(求和)、AVERAGE(平均值)、COUNT (计数)等,可以快速计算数据的统计信息。
而更复杂的函数如VLOOKUP(垂直查找)、INDEX(索引)和 MATCH(匹配)等,则可以实现数据的关联和匹配。
通过巧妙地组合这些函数,可以根据不同的需求提取和计算数据。
数据透视表是 Excel 中另一个强大的工具。
它可以快速汇总和分析大量的数据,并且能够根据用户的需求灵活地调整布局和计算方式。
通过将数据字段拖放到不同的区域,如行、列和值,可以轻松生成各种汇总报表,如销售额按产品和地区的汇总、员工绩效按部门的统计等。
条件格式也是一个非常有用的功能。
可以根据设定的条件,自动为符合条件的数据单元格设置特定的格式,例如突出显示销售额高于平均值的数据、用不同颜色标记不同范围的数值等。
这有助于快速发现数据中的关键信息和异常值。
宏和 VBA 编程则为更高级的自动化需求提供了可能性。
如果需要执行一系列复杂且重复的操作,可以通过录制宏或者编写 VBA 代码来实现。
例如,自动从多个工作表中提取数据并汇总到一个新的报表中,或者按照特定的规则对数据进行处理和格式化。
为了实现自动化报表生成,还需要合理地设置数据验证和保护工作表。
i n t o u c h通过E x c e l
制作报表
标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]
如何把intouch里的数据通过SQL server在Excel里实现报表功能一.需要安装的软件:
Intouch、、Microsoft SQLServer2000、Microsoft Office EXCEL、数据源ODBC软件(Windows自带)
二.实现的步骤:
1.建立Topic。
在下位机的相关软件里(DDE/OPC相关选项)建立一个Topic,用于和OPClink连接;
如下图所示,给出了PLC建立的一个Topic:
2.定义OPClink。
如图:
建立一个与上位机通讯用的Topic(huanghua_opc),注意下图中的OPC[huanghua]就是在上图中建立的topic。
注意:OPClink建立的Topic(huanghua_opc)必须与intouch中的访问名一致
3.定义ODBC DSN。
定义用户DSN,注意选择正确的SQL server服务器与该服务器下定义的数据库。
4.在intouch中的SQL访问管理器中建立绑定列表。
如下图建立的列表
“FIT_report”
这个表给出了将要在报表里做记录显示的标记以及描述。
注意:这个表里的列名顺序必须和后面提及的数据库中建立的表格中的烈名顺序一致
5.在SQL server中建立数据库与表。
打开SQL server中的“企业管理器”,在数据库中新建一个数据库“new”,在“表”中新建一个表
注意上表中的列名必须和intouch绑定列表“FIT_report”里的列名顺序一致。
完成后保存,会提示给这个表提供一个表名。
6.在intouch中做一个报表窗口。
建一个报表窗口,如下图所示,做三个按钮:①“产生报表”脚本:
鼠标左键/键按下时:ResultCode = SQLConnect( ConnectionId, "DSN=TEST1" );
ResultCode =SQLInsert( ConnectionId, "report",
"FIT_report");
鼠标左键/键放开时:ResultCode = SQLDisconnect( ConnectionId );
②“消除数据库”脚本:
鼠标左键/键按下时:ResultCode = SQLConnect( ConnectionId, "DSN=TEST1" );
ResultCode=SQLClearTable(ConnectionId,"report");
鼠标左键/键放开时:ResultCode = SQLDisconnect( ConnectionId );
③“流量日报表”脚本:
鼠标左键/键按下时:
DIR_REPORT = "C:\Program Files\Microsoft Office\OFFICE11\ ";
DIR_REPORT = DIR_REPORT+ InfoInTouchAppDir();
DIR_REPORT = DIR_REPORT+ "\流量日报表.xls";
StartApp DIR_REPORT;
鼠标左键/键放开时:ResultCode = SQLDisconnect( ConnectionId );
此外,如果定义数据为周期采集的话,应该在intouch的“数据改变”中注入控制脚本ResultCode = SQLConnect( ConnectionId, "DSN=TEST1" );
ResultCode =SQLInsert( ConnectionId, "report", "FIT_report" );
ResultCode = SQLDisconnect( ConnectionId );
如下图所示:
至此,intouch里需要做的工作已经做完。
7.建立EXCEL报表文件。
创建一个用户期望的报表文件,大体风格如下:。