如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

描述
该 FAQ 描述了如何在 WinCC (TIA Portal) 运行系统中读写文件中的数据。VBS 脚本 (Visual Basic Scripting) 用于实现这些功能。为了保存或读取文本文件中的信息,必须能够访问 Windows CE 的文件系统。通过“文件系统对象”进行访问。
该 FAQ 适用于 SIMATIC WinCC (TIA Portal) 的 Comfort、Advanced 和 Professional 版本的以下操作面板:Comfort 面板和277 系列面板或更高版本。

注释

  • 如果WinCC 标准机制(保存归档数据,等) 不能满足应用要求仅能使用脚本来保存数据!
  • 提供的机制取决于操作员面板的操作系统和使用的组态软件。参考条目结尾关于处理其他配置的信息注释。

WinCC (TIA 博途)中VBScript 命令的文档
关于 VBScript 命令的相关信息可以参见 WinCC (TIA Portal) 帮助系统的 “目录” 标签和 WinCC Advanced 手册中, (条目 ID: 109091876), 位于“可视化过程> 使用系统函数和运行系统脚本".

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图 01

目录

说明
下面的表格说明如何在 WinCC (TIA Portal) 中组态保存和读取文件。
使用以下文件格式:

  • csv
  • txt

注意
实例中只使用了内部变量。 也可以选择使用控制器连接的变量。
在这个实例中示范了如何读写存储卡上的文件。如果使用不同的存储介质,在脚本中必须进行相应的改变。

No. 步骤
1 创建变量

  • 使用“项目导航 > HMI_1 > HMI 变量 > 显示所有变量”打开变量编辑器。
  • 按照下面描述添加四个内部变量:
变量 数据类型
bExtension Boolean
szMaterial WString
Pressure Int
Temperature Int

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图02

2

添加对象

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

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图03

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

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

    变量/脚本 对象类型 对象用于 ...
    iPressure IO field Pressure
    iTemperature IO field Temperature
    szMaterial IO field Material
    bExtension Symbolic IO field Extension

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图 04

4创建脚本 - 第一步

  • 在“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 上运行该脚本,将会出现运行时错误并且脚本失败。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图05

5创建脚本 - 第二步

  • <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 消息系统。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图06

6 启动运行

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

    注意
    由于不同的文件系统,脚本不能在组态计算机和面板之间调试。

  • 输入一个电压,温度和原材料。
  • 然后单击“Save data”按钮。
  • 在符号 IO 域选择“.csv”并再次单击按钮。
  • 终止操作面板的运行。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图07

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

  • 打开扩展名为“.txt”的文本文件。
  • 然后关闭文件。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?
图08

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

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图09

表 01

从文本文件或 csv 文件读取信息的示例
如下表格说明文本文件或 csv 文件中的信息如何在WinCC (TIA Portal) 中显示。 IO 域用作于显示,只有最有一个条目被输出。

注意
在此例中由于最后一条条目被搜索,脚本的运行系统会随着文件的尺寸增长而增长。先前示例中的配置在该示例中不是必须的。但是用到的组件仍然使用。

No. 步骤
1 连接变量

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

    变量

    数据类型

    szdate WString
    szString_1 WString
    iValue_1 Int
    iValue_2 Int

注意
如果没有使用之前的项目,添加“bExtension” 变量使用 “Bool” 类型。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图10

2 添加对象

  • 切换到 “ImportExportData” 界面。
  • 在画面上插入一个矩形。
  • 如果没有,添加一个符号 IO 域和四个常规 IO 域。
  • 添加一个按钮和五个文本域。
  • 摆放好所有对象并且按照下面输入文本 (如图. 11)。
    • "Date"
    • "Value_1"
    • "Value_2"
    • "String_1"
    • "Text file"
    • "Settings" (if not already there)
    • "Extension" (if not already there)
  • 如果没有,创建名称为“Extension”的文本列表,条目名称如下:
    • 0 => ".txt"
    • 1 => ".csv"

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图11

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

  • 拷贝 “Write_data” 脚本并且改名为 “Read_data”(在第五点中介绍脚本修改如何处理)。
  • 链接 “Read_data” 脚本到 “Read file” 按钮的 “属性 > 事件 > 点击” 下。
  • 如果之前没有做,连接 “Extension” 文本列表到符号 IO 域 “Extension”。
  • 连接如下的变量到相关的对象上:

    变量/脚本 对象 对象用于...
    szDate IO field Date
    iValue_1 IO field Value_1
    iValue_2 IO field Value_2
    szString_1 IO field String_1

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图12

4 修改脚本

  • 按照如下表述改变 “Read_data” 脚本。

源代码描述

  • <Lines 10-15> 改变本地变量名称(如图.13)。
  • <Line 18> 改变 “mode” 变量的初始值由 8 (Append)to 1(Input)。
  • <Lines 21-29> 删除 “gap” 变量,它不再需要。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图13

5 修改脚本

  • <Lines 54-60> 删除写入文件部分的脚本。
  • <Lines 54-60> 添加读取文件的脚本(如图. 14)。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?

图14

6 启动运行

  • 将WinCC (TIA Portal) 项目传送到操作面板并启动运行。

    注意
    为了调试脚本,启动带脚本调试器的仿真器。

  • 单击“Read data”按钮。
  • 在符号 IO 域中选择“.csv”并再次单击按钮。
  • 中止操作面板的运行。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作?图15

表 02

下载
附件中包含简单的项目描述。

如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本执行向文件中写数据和从文件中读数据的操作? 附件: Example_Project.zip ( 1183 KB )

注意
该脚本源代码能用于基于 Microsoft Windows CE 的操作面板,因为它不能访问其它操作系统的文件系统。

附加信息
以下FAQ 提供了关于脚本保存文本文件的更多信息。

  • 对于 WinCC flexible 基于 Windows 的面板。条目 ID 26107211("对于基于 Windows 的面板,如何使用脚本将信息保存到文本文件或读取出来??")
  • 对于 WinCC flexible PCs::条目 ID 26107211("在PC 使用 WinCC flexible, 如何使用脚本将信息保存到文本文件或读取出来??")
  • 对于 WinCC (TIA Portal) PCs:条目 ID 106501825("如何在 WinCC (TIA Portal) PC 运行系统中用脚本将信息存储成文件??")
  • 在 WinCC (TIA Portal) 中如何找到关于 VB 脚本编程的信息?
    条目 ID: 59885894
  • 如何使用 Comfort 面板打开 Word、Excel 或 PDF 文档?
    条目 ID: 51723931
  • 如何导出或导入WinCC运行系统数据?
    条目 ID: 850338
  • 如何在HMI 设备上通过脚本诊断是否存储驱动器可移动存储介质(U盘,SD/MMC 卡)处于可写状态?
    条目 ID: 89855157

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc323652.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论