分享

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

 小猛哥 2020-02-20

2017-08-20 分类:常见问题 阅读(1606) 评论(0)

描述

该 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), 位于“可视化过程> 使用系统函数和运行系统脚本“.

图 01

目录

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

从文本文件或CSV文件读取数据的示例

下载示例项目

说明

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

使用以下文件格式:

csv

txt

注意

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

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

No.

步骤

1

创建变量

使用“项目导航 > HMI_1 > HMI 变量 > 显示所有变量”打开变量编辑器。

按照下面描述添加四个内部变量:

变量

数据类型

bExtension

Boolean

szMaterial

WString

Pressure

Int

Temperature

Int

图02

2

添加对象

在“项目导航 > 画面” 下创建一个名叫 “ImportExportData” 的画面。

在画面上插入两个矩形。

添加一个符号 IO 域和三个常规 IO 域。

添加一个按钮和九个文本域。

摆放好所有对象并且按照下面输入文本:

“Process values”

“Pressure”

“Temperature”

“Material”

“Text file”

“mbar”

“°C”

“Settings”

“Extension”

创建一个“值/范围”类型名为“Extension”的文本列表。

添加如下条目:

0 => “.txt”

1 => “.csv”

图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

图 04

4

创建脚本 – 第一步

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

注意

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

源代码描述

本地变量声明(只在脚本中有效)。

这 “模式” 变量打开文件时被初始化(8 = Append)。

“bExtension” 变量是全局变量,它可以在整个 WinCC (TIA Portal) 项目中使用。 通过符号 IO 域使用这个变量选择文件扩展名。

注意

“delimiter” 变量实现分隔符功能并且它必须根据国家的应用而改变!

万一脚本运行错误发生,“On Error Resume Next” 说明是必需的。

注意

如果没有这个说明并且一个错误发生,脚本将停止。

“创建对象(“FileCtl.File”) 函数创建一个对象,允许访问 Windows CE 文件系统。

运行系统错误的源代码查错程序。如果一个运行系统错误发生,在消息窗口一个错误消息被显示并且脚本停止。

注意

如果使用“FileCtl.File”,将仅能访问 Windows CE 文件系统。如果在使用其它操作系统的 PC 上运行该脚本,将会出现运行时错误并且脚本失败。

图05

5

创建脚本 – 第二步

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

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

如果相应的文件或者路径名称不存在,查错程序将执行。

至于是否新文件还是已经存在的,这部分检查都被执行。如果文件是新的,将被添加一个标题。

指定的字符串将被 “fo” 对象的 “LinePrint” 方法写入已打开的文件中。变量值和返回值也被写到文件中。

“Now” 函数写一个时间标记到文件中。

“Close” 方法关闭文件。

关键字“Nothing” 用于分离对象变量,该变量由“Set”命令分配给该对象。

传输用户自定义的系统消息到 HMI 消息系统。

图06

6

启动运行

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

注意

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

输入一个电压,温度和原材料。

然后单击“Save data”按钮。

在符号 IO 域选择“.csv”并再次单击按钮。

终止操作面板的运行。

图07

7

打开文本文件

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

打开扩展名为“.txt”的文本文件。

然后关闭文件。

图08

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

关闭 Excel 程序。

图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” 类型。

图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”

图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

图12

4

修改脚本

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

源代码描述

改变本地变量名称(如图.13)。

改变 “mode” 变量的初始值由 8 (Append)to 1(Input)。

删除 “gap” 变量,它不再需要。

图13

5

修改脚本

删除写入文件部分的脚本。

添加读取文件的脚本(如图. 14)。

图14

6

启动运行

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

注意

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

单击“Read data”按钮。

在符号 IO 域中选择“.csv”并再次单击按钮。

中止操作面板的运行。

图15

表 02

下载

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

附件: 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多