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

本文详细介绍了如何在SIMATICWinCC(TIAPortal)中,通过VBS脚本操作WindowsCE的文件系统,创建变量,添加对象,以及编写脚本来保存和读取文本文件,包括CSV和TXT格式。
摘要由CSDN通过智能技术生成

说明

VBS 脚本 (Visual Basic Scripting) 用于实现这些功能。为了保存或读取文本文件中的信息,必须能够访问 Windows CE 的文件系统。通过“文件系统对象”进行访问。

步骤

1.创建变量

  • 使用“项目导航 > HMI_1 > HMI 变量 > 显示所有变量”打开变量编辑器。
  • 按照下面描述添加四个内部变量:
变量        数据类型
bExtensionBoolean
szMaterialWString
nPressureInt
nTemperatureInt

2.添加对象

  • 在“项目导航 > 画面” 下创建一个名叫 “ImportExportData” 的画面。
  • 在画面上插入两个矩形。
  • 添加一个符号 IO 域和三个常规 IO 域。
  • 添加一个按钮和九个文本域。
  • 摆放好所有对象并且按照下面输入文本:
     
    • "Process values"
    • "Pressure"
    • "Temperature"
    • "Material"
    • "Text file"
    • "mbar"
    • "°C"
    • "Settings"
    • "Extension"
       
  • 创建一个“值/范围”类型名为“Extension”的文本列表。
  • 添加如下条目:
     
    • 0 =>  ".txt"
    • 1 =>  ".csv"

3.建立脚本、文本列表和变量间的关联

  • 创建一个指定名称为“Write_data”的脚本。进入项目导航并且点击“脚本> VBScripts > 添加新的VB函数”。
  • 链接“Write_data”到“Save file”按钮的“属性 > 事件 > 点击”下。
  • 链接“Extension”文本列表到符号 IO 域“Extension”。
  • 链接变量到下面相应的对象。
     
     变量/脚本对象类型对象用于 ...
    iPressureIO fieldPressure
    iTemperatureIO fieldTemperature
    szMaterialIO fieldMaterial
    bExtensionSymbolic IO fieldExtension

4.创建脚本(1)

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

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

源代码描述

  • <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 上运行该脚本,将会出现运行时错误并且脚本失败。

5.创建脚本 (2)

  • <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 消息系统。

6.启动运行

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

    注意
    由于不同的文件系统,脚本不能在组态计算机和面板之间调试。
  • 输入一个电压,温度和原材料。
  • 然后单击“Save data”按钮。
  • 在符号 IO 域选择“.csv”并再次单击按钮。
  • 终止操作面板的运行。

7.打开文本文件


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

  • 打开扩展名为“.txt”的文本文件。
  • 然后关闭文件。
  • 可以使用 Microsoft Excel 打开扩展名为“.csv”的文件。
  • 关闭 Excel 程序。

注意


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


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

适用于 SIMATIC WinCC (TIA Portal) 的 Comfort、Advanced 和 Professional 版本。使用以下文件格式:csv 或 txt

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例代码,它演示了如何使用bs4从网站中提取数据并将其保存CSV文件中: ```python import requests from bs4 import BeautifulSoup import csv # 向网站发送请求 url = 'https://www.example.com/' response = requests.get(url) # 创建BeautifulSoup对象 soup = BeautifulSoup(response.text, 'html.parser') # 从网站中提取数据 data = [] table = soup.find('table') # 如果有数据表格,可以使用这一行提取 rows = table.find_all('tr') # 获取所有行 for row in rows: cols = row.find_all('td') cols = [col.text.strip() for col in cols] data.append(cols) # 将数据保存CSV文件filename = 'output.csv' with open(filename, 'w', newline='') as csv_file: writer = csv.writer(csv_file) writer.writerows(data) ``` 在这个例子中,我们首先向指定的网站发送请求,并使用BeautifulSoup创建一个对象来解析响应文本。我们通过寻找表格标记(<table>)来定位数据,并使用find_all方法来获取表格中的所有行。我们使用strip函数删除每个单元格中的空格,并将每个行的列添加到一个称为“data”的列表中。 最后,我们使用csv模块中的writerow方法向名为“output.csv”的文件写入数据。我们使用with语句创建一个csv文件对象,并向对象调用我们可以写入数据的writerows方法。在写入CSV文件之前,我们使用newline=''参数设定新行的行为,以确保在保存文件时,文件的格式正确。 请注意,这个代码示例演示了一个基本的例子,并假定数据以表格形式存储在网站中。如果数据以不同的方式出现或需要更复杂的处理,您可能需要使用其他技术或工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值