Bootstrap

保存数据到文本文件或 CSV 文件的示例

说明

VBS 脚本 (Visual Basic Scripting) 用于实现这些功能。为了保存或读取文本文件中的信息,必须能够访问 Windows CE 的文件系统。通过“文件系统对象”进行访问。

步骤

1.创建变量

  • 使用“项目导航 > HMI_1 > HMI 变量 > 显示所有变量”打开变量编辑器。
  • 按照下面描述添加四个内部变量:
变量        数据类型
bExtensionBoolean
szMaterialWString
nPressureInt
nTemperatureInt

2.添加对象

  • 在“项目导航 > 画面” 下创建一个名叫 “ImportExportData” 的画面。
  • 在画面上插入两个矩形。
  • 添加一个符号 IO 域和三个常规 IO 域。
  • 添加一个按钮和九个文本域。
  • 摆放好所有对象并且按照下面输入文本:
     
    • "Process values"
    • "Pressure"
    • "Temperature"
    • "Material"
    • "Text file"
    • "mbar"
    • "°C"
    • "Settings"
    • "Extension"
       
  • 创建一个“值/范围”类型名为“Extension”的文本列表。
  • 添加如下条目:
     
    • 0 =>  ".txt"
    • 1 =>  ".csv"

3.建立脚本、文本列表和变量间的关联

  • 创建一个指定名称为“Write_data”的脚本。进入项目导航并且点击“脚本> VBScripts > 添加新的VB函数”。
  • 链接“Write_data”到“Save file”按钮的“属性 > 事件 > 点击”下。
  • 链接“Extension”文本列表到符号 IO 域“Extension”。
  • 链接变量到下面相应的对象。
     
     变量/脚本对象类型对象用于 ...
    iPressureIO fieldPressure
    iTemperatureIO fieldTemperature
    szMaterialIO fieldMaterial
    bExtensionSymbolic IO fieldExtension

4.创建脚本(1)

  • 在“Write_data”脚本中添加简单代码 (如图. 05)。

    注意:
    更多关于 VBScript 命令信息可以在 WinCC (TIA Portal) 帮助系统中找到。

源代码描述

  • <Lines 10 - 15> 本地变量声明(只在脚本中有效)。
  • <Line 18> 这 “模式” 变量打开文件时被初始化(8 = Append)。
  • <Lines 21-29> “bExtension” 变量是全局变量,它可以在整个 WinCC (TIA Portal) 项目中使用。 通过符号 IO 域使用这个变量选择文件扩展名。
    注意
    “delimiter” 变量实现分隔符功能并且它必须根据国家的应用而改变! 
  • <Line 32> 万一脚本运行错误发生,“On Error Resume Next” 说明是必需的。
    注意
    如果没有这个说明并且一个错误发生,脚本将停止。
  • <Line 35> “创建对象(“FileCtl.File”) 函数创建一个对象,允许访问 Windows CE 文件系统。
  • <Lines 38-42> 运行系统错误的源代码查错程序。如果一个运行系统错误发生,在消息窗口一个错误消息被显示并且脚本停止。
    注意
    如果使用“FileCtl.File”,将仅能访问 Windows CE 文件系统。如果在使用其它操作系统的 PC 上运行该脚本,将会出现运行时错误并且脚本失败。

5.创建脚本 (2)

  • <Line 45> 对 “fo” 对象使用 “Open” 方法打开由 “path” (路径名称)和“mode” 参数指定的文件。

file.Open Path name, Mode, [access], [lock], [reclength]

  • <Lines 48-52> 如果相应的文件或者路径名称不存在,查错程序将执行。
  • <Lines 55-57> 至于是否新文件还是已经存在的,这部分检查都被执行。如果文件是新的,将被添加一个标题。
  • <Line 60> 指定的字符串将被 “fo” 对象的 “LinePrint” 方法写入已打开的文件中。变量值和返回值也被写到文件中。
    “Now” 函数写一个时间标记到文件中。
  • <Line 63> “Close” 方法关闭文件。
  • <Line 66> 关键字“Nothing” 用于分离对象变量,该变量由“Set”命令分配给该对象。
  • <Line 68> 传输用户自定义的系统消息到 HMI 消息系统。

6.启动运行

  • 将 WinCC (TIA Portal) 工程传输到操作面板并启动运行。

    注意
    由于不同的文件系统,脚本不能在组态计算机和面板之间调试。
  • 输入一个电压,温度和原材料。
  • 然后单击“Save data”按钮。
  • 在符号 IO 域选择“.csv”并再次单击按钮。
  • 终止操作面板的运行。

7.打开文本文件


如果将两种文本文件都存到存储卡上,那么可以在 PC 上使用读卡器看到这些文件,并使用适当的程序去打开。

  • 打开扩展名为“.txt”的文本文件。
  • 然后关闭文件。
  • 可以使用 Microsoft Excel 打开扩展名为“.csv”的文件。
  • 关闭 Excel 程序。

注意


实例中只使用了内部变量。 也可以选择使用控制器连接的变量。


在这个实例中示范了如何读写存储卡上的文件。如果使用不同的存储介质,在脚本中必须进行相应的改变。

适用于 SIMATIC WinCC (TIA Portal) 的 Comfort、Advanced 和 Professional 版本。使用以下文件格式:csv 或 txt

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;