描述
该 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
目录
说明
下面的表格说明如何在 WinCC (TIA Portal) 中组态保存和读取文件。
使用以下文件格式:
注意
实例中只使用了内部变量。 也可以选择使用控制器连接的变量。
在这个实例中示范了如何读写存储卡上的文件。如果使用不同的存储介质,在脚本中必须进行相应的改变。
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”的文本列表。
- 添加如下条目:
图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 | 创建脚本 - 第一步
源代码描述
- <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 上运行该脚本,将会出现运行时错误并且脚本失败。
图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 消息系统。
图06
|
6 |
启动运行
图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”的文本列表,条目名称如下:
图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 |
修改脚本
源代码描述
- <Lines 10-15> 改变本地变量名称(如图.13)。
- <Line 18> 改变 “mode” 变量的初始值由 8 (Append)to 1(Input)。
- <Lines 21-29> 删除 “gap” 变量,它不再需要。
图13
|
5 |
修改脚本
- <Lines 54-60> 删除写入文件部分的脚本。
- <Lines 54-60> 添加读取文件的脚本(如图. 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
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc323652.html