使用VB脚本可以存储任何数据到操作面板或USB可移动介质。该FAQ解释如何编写相应的脚本。
描述:
为了对文本文件进行保存或读取信息的操作,必须能够访问 Windows CE 的文件系统。通过指定的对象变量进行这种访问。
注意:
- 只有当WinCC的标准机制(存储数据归档)不能满足应用需求时,才会考虑使用脚本保存数据。
- 下面涉及到的方法,依赖于操作面板的操作系统和使用的组态软件。关于处理其它配置的信息,请参考本文末尾的注释。
目录:
- 将信息保存到文本文件或 csv 文件的示例
- 从文本文件或 csv 文件读取信息的示例
- 下载源代码和示例工程
在 WinCC flexible 中关于 VBScript 命令的文档
关于 VBScript 的相关信息可以参见 WinCC flexible 帮助系统,位于“目录” 页面下“WinCC flexible 信息系统 > 使用 WinCC flexible > 参考”。
将信息保存到文本文件或 csv 文件的示例
下面的表格说明如何在 WinCC flexible 中,将信息保存到文本文件或 csv 文件。
序号 | 操作过程 | ||||||||||||||||||
1 | 创建一个新项目
通过单击“项目 > 新建...”,并选择“Multi Panels > MP 370 12" Touch”操作面板,创建新项目。 | ||||||||||||||||||
2 | 创建变量
注意: |
||||||||||||||||||
3 | 添加对象
"Settings"
| ||||||||||||||||||
4 | 建立脚本、文本列表和变量间的关联
| ||||||||||||||||||
5 | 创建脚本 - 第一步
源代码的说明: 如果脚本发生运行时错误,那么“On Error Resume Next”语句是必需的。只要发生这种错误,该错误程序的下一条语句能自动执行。 在 <行 24> 中的语句将访问 Windows 文件系统的对象传送到对象变量“f”。如下源代码包含运行时错误处理程序。如果运行时发生错误,将会在消息窗口中输出错误消息并终止脚本的运行。 注意: | ||||||||||||||||||
6 | 注意事项 使用创建的“f”对象的“Open”方法,打开由“path”(路径名称)参数指定的文件。如果相关的文件不存在,则如上提到的错误处理程序将执行。
如果文件或路径名称不存在,则如上提到的错误处理程序将执行。 指定的字符串将被“f”对象的“LinePrint”方法写入已打开的文件中。在此,变量值也被传送和保存。 注意: 示例: 然后使用“Close”方法关闭该文件。关键字“Nothing” 用于分离对象变量,该变量由“Set”命令分配给该对象。 最后一条语句传输用户自定义的系统消息到 HMI 消息系统。 | ||||||||||||||||||
7 | 启动运行
| ||||||||||||||||||
8 | 打开文本文件 如果将两种文本文件都存到存储卡上,那么可以在 PC 上使用读卡器看到这些文件,并使用适当的程序打开。
|
从文本文件或 csv 文件读取信息的示例
如下表格说明如何从文本文件或 csv 文件中读出信息并在 WinCC flexible 中显示。
该示例基于先前的示例。先前示例中的配置在该示例中不是必须的。但是用到的组件仍然适用。
序号 | 操作过程 | |||||||||||||||||||||
1 | 创建一个新项目 - 可选项 如果使用先前的工程,那么直接进入 步骤 2。
|
|||||||||||||||||||||
2 | 连接变量
| |||||||||||||||||||||
3 | 添加对象
| |||||||||||||||||||||
4 | 建立脚本、文本列表和变量间的关联
| |||||||||||||||||||||
5 | 创建脚本 - 第一步
源代码的说明: 如果脚本发生运行时错误,那么“On Error Resume Next”语句是必需的。只要发生这种错误,只要发生这种错误,该错误程序的下一条语句能自动执行。 在 <行 24> 中的语句将访问 Windows 文件系统的对象传送到对象变量“f”。如下源代码包含运行时错误处理程序。如果运行时发生错误,将会在消息窗口中输出错误消息并终止脚本的运行。 注意: | |||||||||||||||||||||
6 | 创建脚本 - 第二步 使用创建的“f”对象的“Open”方法,打开由“path”(路径名称)参数指定的文件。如果相关的文件不存在,则如上提到的错误处理程序将执行。
如果文件无法打开,则如上提到的错误处理程序将执行,从而安全地终止脚本运行。 使用“Do-While-Loop”语句,通过对象变量“f”的“LineInputString”方法,当循环执行时,可以一行一行地读出文本文件中的内容。一旦到达文本文件末尾循环就被终止。 函数“Split”以指定分隔符来分离从文件中读取的文本行(expression),该分隔符作为第二个可选参数。分离后的内容被传送到一个一维数组。本例中没有使用最后两个参数。
因为当保存时,可能包含空字符串(例如,参见图 09),这些字符串通过“Replace”函数来删除。因此,前三个参数必须指定。第一个参数包含字符串 (expression) ,对该字符串执行搜索(SearchCS),搜索到的字符被替换为由参数“ReplaceWith”指定的字符。
| |||||||||||||||||||||
7 | 创建脚本 - 第三步 为了保持数据结构,所有数据被传入一个二维数组“HiField”。因此并非该数组中所有的数据都是必需的,所以仅将数组中相关的数据传送到 WinCC flexible 全局变量中。 示例 - HiField (a, b)的结构和内容:
打开的文件在 <行 62> 被关闭。关键字“Nothing” 用于分离对象变量,该变量由“Set”命令分配给该对象。 最后一条语句传输用户自定义的系统消息到 HMI 消息系统。 | |||||||||||||||||||||
8 | 启动运行
|
如下下载链接包含示例工程的两个源代码,为PDF 格式的文档。
wincc_flexible_quellcodes_panel.zip (18,1 KB)
如下下载链接包含上述的示例工程,使用它可以对文本文件保存或读取数据。
read_write_data_from_or_into_a_file_panel.zip (1,7 MB)
更多信息
下列 FAQ 提供了关于使用脚本存取文本文件的更多信息。
- 使用 WinCC flexible 和 PCs:条目 ID26106418(“WinCC flexible的PC项目中怎样使用脚本来保存或者读取文本文件的信息?”)
- 使用 WinCC (TIA Portal) 和 基于Windows 的 panels: 条目 ID59604194(“如何使用 SIMATIC WinCC (TIA Portal) 在面板上通过脚本进行向文件中写数据和从文件中读数据的操作?”)
- 使用 WinCC (TIA Portal) 和 PCs: 条目 ID106501825(“如何在 WinCC (TIA Portal) PC 运行系统中用脚本将信息存储成文件?”)
运行及测试环境:
下表列出了用于创建该条目并校验上述功能所需的组件。
组件 | 产品版本 |
PC operating system | Microsoft WindowsXP SP2 |
Standard tools | - |
Engineering tool | - |
HMI software | WinCC flexible 2005 SP1 HF7 |
HMI system | MP 370 12" Touch |
关键字:
保存、装载、写、读、CSV 文件、TXT 文件
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc343111.html