描述
TIA Portal 提供了不同的系统函数,可以将归档数据和配方数据永久地存储在移动媒介和网络驱动器中。 如果希望存储过程数据和项目数据以备日后上传,那么需要使用 Visual Basic 脚本。本文负责解释如何编写存储过程数据的脚本以及如何在 WinCC (TIA Portal) 高级版 PC 运行系统中使用这些脚本。
注意
说明
在如下例子中,过程变量“Material”,“Pressure”和“Temperature”将被写入到“FileName”指定的文件中,并且将以“MaterialFromFile”,“PressureFromFile”和 “TemperatureFromFile”读出。
- 在 TIA Portal 中创建一个已组态了 WinCC RT Advanced 的 SIMATIC PC Station 的项目。
- 在 WinCC RT 的变量表中创建需要存储和读出的过程变量。(如:“Material”,“Pressure”和“Temperature”,同时创建 “MaterialFromFile”,“PressureFromFile”和“TemperatureFromFile”)。原则上,这些变量可以是任何类型。此外,创建一个“WString”类型的变量“FileName”。用于存储路径以及文件名称,注意,要保证该路径有足够的数据长度以便存储路径数据。
图. 01 - 创建两个脚本“Write_data_to_file”以及“Read_data_from_file”。(可在本文下方下载相应脚本数据)。
图. 02
图. 03 - 通过事件调用脚本,例如按钮的点击事件。
图. 04
每调用一次脚本“Write_data_to_file”,会在现有文件中自动创建一条新的“数据记录”。脚本“Read_data_from_file”将读取指定的文件,并从中复制最新数据到指定的工程变量中。
这两个脚本将按照如下方式进行工作。
1.创建文件系统对象,意为连接到 PC 的文件系统。
2.创建或打开包含存储值的文件。
3.值的写入或读取。
4.关闭这些文件,断开链接文件。
根据需要调整脚本,第 36 行
(“Write_data_to_file”)
ts.WriteLine(Material & ";" & Pressure & ";" & Temperature)
以及第28行
(“Read_data_from_file”)
MaterialFromFile = field(0)
PressureFromFile = field(1)
TemperatureFromFile = field(2)
可把需要存储和读取的变量名称进行替换。可以指定希望存储和读取多个变量。当存储和读取变量时,使用分隔符分开多个变量(本例:“;”,行 36 和 26 )。
如果想在加载起始画面的时候同时读取CSV文件里的存储过程变量,那么必须首先定义关联路径。需要单独的脚本实现该功能。
1.在项目中添加新的vb函数“脚本>VB 脚本>添加新VB脚本”。
2.把新脚本重命名为“OpenDefaultFileName”。
3.打开脚本并且添加代码行“FileName = FilePathFileName.FileType”(C:UsersosDocumentsarchive.csv, 例如)。文件路径、文件名和文件类型与CSV文件保持一致。
4.打开起始画面。使用“Add function”功能将脚本链接到开始事件(“属性>事件>加载”)。在此输入脚本名“OpenDefaultFileName”。
5.添加脚本“Read_data_from_file”。
起始画面打开时,文件路径定义的最后一行(最后变量状态)回读到过程变量”MaterialFromFile”、“PressureFromFile”和“TemperatureFromFile”。
如果想在退出起始画面时读取当前过程变量("Material", "Pressure" and "Temperature")到一个现有的CSV文件,那么必须首先定义关联路径。需要单独的脚本实现该功能。
1.在项目中添加新的vb函数“脚本>VB 脚本>添加新VB脚本”。
2.把新脚本重命名为“CloseDefaultFileName”。
3.打开脚本并且添加代码行"FileName = FilePathFileName.FileType" (C:UsersosDocumentsarchive.csv,例如)。文件路径、文件名和文件类型与CSV文件保持一致。
4.打开起始画面。使用“Add function”功能将脚本链接到开始事件(“属性>事件>清除”)。在此输入脚本名“CloseDefaultFileName”。
5.添加脚本"Write_data_to_file"。
当起始画面关闭时,文件路径定义最后的过程变量状态被写入CSV文件的最后一行。
例程的功能
以下功能在提供的例程中完成:在如下的三个输入 / 输出域(“Current values:”)关联要存储变量的过程值(“Material”,“Pressure”和“Temperature”)。底部指定了要使用的文件的路径。点击按钮“Write to disk”调用脚本“Write_data_to_file”并且写入数据记录到文件中。点击按钮“Read from disk”调用脚本“Read_data_from_file”并且从文件中读取所有的数据记录,进而在条目“Values on file:”中显示这些数据记录的最后一个写入值。
图. 05
当启动画面加载时,最近的数据是从"C:UsersosDocuments"文件夹下的 "archive.csv" CSV文件读取。如果该文件不可用,过程变量的基本值将显示在IO域。
关闭退出运行系统。When the Start screen is closed当启动画面关闭时, 过程变量值存储在"C:UsersosDocuments"文件夹下的"archive.csv" CSV文件里。
注意
如果想把CSV文件转换为标准格式(.xls或Excel,例如),首先需要打开项目。
找到“数据”表,在“调用外部数据”下点击“从文本”。选择csv文件并且按照指示操作。
下载
本下载链接包含归档的 TIA 工程。
ReadWrite_to_File.zip ( 1231 KB )
本下载链接包含两个 VBS 脚本
Scripts_ReadWrite_to_File.zip ( 1 KB )
警告
注意 Visual Basic 的使用在 PC Runtime 和基于 Windows CE 的面板是不同的。这里给出的脚本如果不做修改是不能运行在面板中的。可以使用下表列出的常问问题中提供的相应脚本。
附加信息
以下常问问题提供了关于使用脚本存储成 text 文件的附件信息。
WinCC flexible和 基于Windows面板: 条目ID 6107211("对于基于 Windows 的面板,如何使用脚本将信息保存到文本文件或读取出来?")
WinCC flexible的PC项目: 条目 ID 26107211("WinCC flexible 的 PC 项目中怎样使用脚本来保存或者读取文本文件的信息?")
WinCC (TIA Portal) 和 基于Windows面板: 条目 ID 59604194("如何使用 SIMATIC WinCC (TIA Portal) 在精致面板上进行向文件中写数据和从文件中读数据的操作?")
软件环境
WinCC Advanced (TIA Portal) V13 SP1, WinCC Advanced RT(TIA Portal) V13 SP1, MS Excel 2007 and 2010
关键词
文件访问、归档、记录、保存变量、加载变量、进程变量、连续存储、Excel文件存储、启动运行系统、RT启动,停止运行系统,RT关闭
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc322072.html