WinCC通过VBS的Excel文件操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 移动文件 objFSO.MoveFile "C:\Path\File.txt" "C:\Path\File2.txt"
2.5 删除文件 objFSO.DeleteFile "C:\Path\File.txt"
WinCC 通过 VBS 的 Excel 文件操作
二、 Excel 文件访问
1. Application 对象 WinCC 下使用 VBS 访问 Excel ,实际上是对 Excel 的 Application 对象成员进行编程。 Application 对象是 Excel 对象模型中最高级别的对象,表示 Excel 程序自身。 Application 对 象提供正在运行的程序的信息、应用于程序实例的选项以及实例中打开的当前对象。在
对象 /集合 FileSystemObject
Drive
Drives File Files Folder Folders TextStream
类型 主对象
对象
集合 对象 集合 对象 集合 对象
描述 包含用来创建、删除和获得有关信息以及通常用来操作驱 动器、文件夹与文件的方法和属性。和该对象相关联的许 多方法,与其他 FSO 对象中的方法完全相似;它们是为 了方便才被提供的。 包含用来收集信息的方法和属性,这些信息是关于连接在 系统上的驱动器的,如驱动器的共享名和它有多少可用空 间。可以是硬盘、光驱、 RAM 磁盘、网络共享驱动器 等。 提供驱动器的列表,这些驱动器物理地或逻辑地与系统相 连接。 Drives 集合包括所有驱动器,与类型无关。 包含用来创建、删除或移动文件的方法和属性,也用来向 系统询问文件名、路径和多种其他属性。
Tag1 、Tag2 、
4.1 创建 WinCC 起始画面 Start.pdl ,并在“打开画面”事件中加入如下脚本:
Dim xlApp Dim DSExist Dim i
On Error Resume Next
' 脚本出错时继续执行
'检查 Excel 是否已运行,若无则新建应用,以防止重复运行
cel
Set xlApp = GetObject(,"Excel Application")
If TypeName(xlApp) <> "Application" Then Set xlApp = CreateObject("Excel Application")
'检查 DataSet 中是否已有 xlApp ,若无则添加 With HMIRuntime.DataSet
I S TAS
4/7
WinCC 通过 VBS 的 Excel 文件操作
GetOpenFilename InputBox
显示标准“打开”对话框并返回用户选择的带有完整路径的文件名, 实际上并未打开任何文件。 显示对话框提示用户输入一个值。
4. 示例 下面以一个完整的例子来说明 WinCC 下 Excel 的访问,在该例程中,读取 Tag3 这三个变量值并存入 Excel 文件。
For i = 1 To .Count If StrComp(.Item(i).Name, "xlApp", 1) = 0 Then DSExist = 1 i = .Count End If
Next If DSExist = 0 Then .Add "xlApp", xlApp
End With 通过上述脚本,创建 Excel Application 并加入 DataSet ,以便在不同画面或画面窗口中访问。
2. 文件操作 2.1 判断文件夹是否存在 If objFSO.FileExists("C:\Path") Then Msgbox ("Exist!")
2.2 创建文本文件 Dim f Set f = objFSO. CreateTextFile "C:\Path\File.txt" f.write (" 第一行 ") f.WriteBlankLines(1) f.WriteLine(" 第二行 ") f.WriteBlankLines(2) f.WriteLine(" 第三行 ") f.Close 2.3 拷贝文件 objFSO.CopyFile "C:\Path\File.txt" "C:\Path\File2.txt"
提供包含在文件夹内的所有文件的列表。 包含用来创建、删除或移动文件夹的方法和属性,也用来 向系统询问文件夹名、路径和多种其他属性。 提供在 Folder 内的所有文件夹的列表。 用来读写文本文件。
FSO 包含在 Scripting 类型库中,因此访问 FSO 需要先使用下面代码创建 FSO 对象的一个 实例:
属性 Drives
描述 返回由本地计算机所有 Drive 对象组成的 Drives 集合
方法 BuildPath CopyFile CopyFolder CreateFolder
CreateTextFile
DeleteFile DeleteFolder DriveExists FileExists FolderExists GetAbsolutePathname
对象集合 集合 Columns Rows Dialogs Sheets
描述 表示活动工作簿中的列 表示活动工作簿中的行 Excel 程序中所有的对话框 指定或活动工作簿中所有的工作表
对象属性 属性 ActiveCell ActiveChart ActiveSheet ActiveWindow ActiveWorkbook RangeSelection Selection
返回与指定路径中某文件相应的 File 对象 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文 件夹
返回与指定的路径中某文件夹相应的 Folder 对象 返回字符串,该字符串包含指定的路径中最后一个文件或文件夹 的父文件夹
返回指定的特殊文件夹 返回随机生成的临时文件或文件夹的名称,用于执行要求临时文 件或文件夹的操作
4.2 添加按钮 “Write xls ”,在按钮鼠标事件中加入如下脚本:
Dim xlApp, xlPath, xlFile, xlBook, xlSheet Dim i, t Dim objFSO, objFlexGrid, objProcessBar
'当前项目路径下如果不存在 \Excel 子目录则新建 Set objFSO = CreateObject("Scripting.FileSystemObject") xlPath = HMIRuntime.ActiveProject.Path & "\Excel" If Not objFSO.FolderExists(xlPath) Then objFSO.CreateFolder(xlPath)
描述
现有路径后附加名称
将一个或多个文件从某位置复制到另一位置 将文件夹从某位置复制到另一位置
创建文件夹 创建指定文件并返回 建的文件
TextStream 对象,该对象可用于读或写创
删除指定的文件
删除指定的文件夹和其中的内容 如果指定的驱动器存在,则返回 True ;否则返回 False 如果指定的文件存在,则返回 True ;否则返回 False
将一个或多个文件从某位置移动到另一位置 将一个或多个文件夹从某位置移动到另一位置 打开指定的文件并返回一个 TextStream 对象,可以读取、写入 此对象或将其追加到文件
下面以常用功能举例说明 FSO 的使用。
1. 文件夹操作 1.1 判断文件夹是否存在 If objFSO.FolderExists("C:\Path") Then Msgbox ("Exist!") 1.2 创建文件夹
WinCC 通过 VBS 的 Excel 文件操作
I S TAS Chen Zhi
WinCC 集成了 VBS (VB Script) 脚本系统,借助 VBS ,WinCC 可以变得更强大、更灵活、
更开放。在 WinCC 应用中,经常对数据存储、报表等有灵活的要求,使用
WinCC 集成的标准功
能实现起来较为困难,此时使用 Excel 是个很好的选择。 WinCC 使用 VBS 操作 Excel 文件,非
描述 当前 (Active) 工作簿中当前工作表的当前单元格 当前图表的 Chart 对象 当前工作表的当前工作簿 当前窗口的 Windows 对象 当前工作簿 工作表中选择的单元格范围 当前窗口中选中的对象
常用方法 方法
FindFile
描述 显示“打开 ”对话框并允许用户打开一个文件。如果文件成功打开, 返回 True ;否则返回 False 。
常方便和直观。
下面按照项目实际应用分别描述文件操作和 Excel 访问。
一、 WinCC 文件操作
WinCC 下文件系统操作可以使用 FSO 对象模型。 FSO – File System Object ,是一种主控 对象,通过它可以访问一系列对象。 FSO 中所有对象一起提供了访问和操作 Windows 文件系统 的功能。 FSO 对象模型主要由以下对象和集合组成:
I S TAS
3/7
WinCC 通过 VBS 的 Excel 文件操作
Application 对象中包含了一些其它的对象(子对象),这些对象只有在
Application 对象存在
(应用程序运行)的时候才可以访问,许多子对象又有它们自己的子对象。例如,
Excel 的
Application 对象包含 Workbook 对象,而 Workbook 对象包含 Worksheet 对象。要访问一个对象
上面的代码中,从 Application 对象开始,移到第一个工作簿,再移到第一个工作表,最后 到这个单元格。
3. Excel Application 对象集合、属性、方法
Excel Application 包含的对象及其属性方法非常多,限于篇幅无法详细描述,需要时可以参 考相关文档,比如 MSDN 。下面仅列出某些常用的作为示例。
2. Application 对象中子对象的引用方法
使用 Application 属性可以返回 Application 对象,获取 Application 对象后,在对象模型层级
中向下移动即可访问其子对象。例如,设置某工作表的第一个单元格内容为
20 :
Application.Workbooks(1).Worksheets(1).Cells(1,1)=20
如果指定的文件夹存在,则返回 True ;否则返回 False
从提供的指定路径中返回完整且含义明确的路径 返回字符串,文件 (不带扩展名 ),或者提供的路径说明中的文件
夹 返回与指定的路径中驱动器相对应的
Drive 对象
返回包含指定路径中驱动器名的字符串 返回字符串,该字符串包含路径最后一个组成部分的扩展名
Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") 使用后需要释放资源: Set objFSO = Nothing
WinCC 通过 VBS 的 Excel 文件操作
FSO 中每一个对象或集合的属性和方法请参考相关文档,此处限于篇幅无法详细列出。下面 仅列出主对象 FileSystemObject 的属性和方法。
GetBaseName
GetDrive GetDriveName GetExtensionName GetFile
GetFileName
GetFolder
GetParentFolderName
GetSpecialFolder
GetTempName
MoveFile MoveFolder
OpenTextFile
I S TAS
2/7
objFSO.CreateFolder "C:\Path"
1.3 拷贝文件夹 objFSO.CopyFolder "C:\Path" "C:\Path2" 1.4 移动文件夹 objFSO.MoveFolder "C:\Path" "C:\Path2" 1.5 删除文件夹 objFSO.DeleteFolder "C:\Path"
的内容和功能,需要使用该对象的属性和方法。
Application 对象包含组成一个工作簿的很多部件,比如工作簿、工作表集合、单元格以及这 些对象所包含的数据等。 Excel 的 Application 对象包括:
§ 程序范围的设置和选项。这些选项大部分和 “ 工具”菜单下“选项”对话框里的内容相同。 § 顶级对象返回的方法,如 ActiveCell 、 ActiveSheet 等。
相关文档
最新文档