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