- {{item.name}}
如何在WinCC (TIA Portal) Runtime Advanced项目中以XML格式导入和导出数据?
- 0
- 1235
- 1
可以使用Visual Basic脚本以XML文件格式读取或存储WinCC RT Advanced项目的任何过程数据,然后可以使用其他应用软件处理该数据,例如Microsoft Excel。以下FAQ将展示所需的配置和编程步骤。
概述
XML ("Extensible Markup Language") 是一种人机交换数据使用的较为广泛的通用的文件格式. WinCC (TIA Portal) Runtime 支持 XML文件格式,可以通过Visual Basic Visual Basic scripts访问“XML DOM”对象。
以下 FAQ 将通过3个例子介绍,如何通过WinCC RT 的变量管理器使用VBS将变量“Material”,“Pressure” “Temperature” 归档成XML文件及读取归档值。示例项目提供了下载链接,其中包含了脚本配置和演示了它们的实际应用。
注意
- 在一些脚本的最后1行使用“_”字符,表示续接下1行代码。
- 为了在字符串中显示出1对引号,那么字符串中引号会被双倍输入,意味着x= "It is a ""Comfort Panel""." ,这样x会显示成 It is a "Comfort Panel". (So-called "Escaping")。
Script "Write_XML_to_File_with_XML"
Fig. 01
使用该脚本可以将“Material”,“Pressure” ,“Temperature”3个变量写入到文件“c:\65_XML\test.xml”中。“XML DOM”对象的方法用于创建XML文件。
功能:
- 第8行: 创建“XML DOM” 对象 “XMLo”。
- 第9行和第10行: 在“XMLo”中创建根节点“root”。
- 第12行和第13行:在根节点“root”中添加节点“property”
- 第15行和第16行:在“Property”中插入 1对关键字“value”/“name” ,其包含变量的值和变量名称。
以下“Pressure”和“Temperature” 的几步操作是重复性的,此刻已经添加的变量名将会保存到XML文件中。
- 第37行和第38行:为XML文件插入一个头标识。
- 第40行:保存XML文件。
Script "Write_XML_to_File"
Fig. 02
此脚本就像“Write_XML_to_File_with_XML” ,但是该文件是被手动添加的。这样创建具有更大的灵活性,但配置时需要更多的时间。
- 第8行:创建文件对象 “fso”,并忽略错误运行。
- 第15行: 通过“FileName”为 “fso”对象指定文件名称。
- 第24行: 以文本方式打开文件,并进行数据的追加。
- 第33行:写入XML文件的头标识。
- 第34行:在文件中存储 “root”对象。
- 第35行和第36行: 在“root”节点中以“property”方式存储变量“Material” 的变量名称和值。
- 以下“Pressure”和“Temperature” 的几步操作是重复性的,用定义的变量替代名称和值,注意代码引号的正确使用及正确关闭和打开变量。( 例如,“<property ..." and "... />”) 是正确合理的搭配。
- 第44行:关闭文件。
用这种方法生成的XML文件与之前脚本生成的文件功能是相同的。
Script "Read_XML_from_File"
Fig. 03
“Read_XML_from_File”脚本用于读取存储在XML文件中变量的名称和值。XML DOM对象将被再次使用到这个功能中。
- 第8行:创建“XML DOM” 对象 “XMLo”。
- 第10行:装载XML文件到“XMLo”对象。
- 第12行:“XML-DOM”对象的“root”元素被指定到“XMLroot”中。
- 从第14行到第20行:从XML对象中读取数据,然后将其传送到RT的变量管理器中。
脚本中使用“For Each...”遍历 XML 对象的子元素。遍历出 name和value (属性“name”和“value”) 的值将被复制到对应的变量中。- 注意
如果XML文件遍历出的变量在Runtime中未定义,那么装载到Runtime时会出错。确保在XML文件中使用的变量已经在变量表中被定义。 - 第22行:拦截的错误。
示例工程
在工程中创建3个变量,分别是 “Material”,“Pressure” 和 “Temperature”,以及3个按钮对应的脚本。
Fig. 04
进行如下配置:- 在变量“Material” (WString),“Pressure” (Int) 和 “Temperature”(Real) 对应的输入/输出域中输入相应的值,终止你的每个条目“Return”。
- 如有必要,可在输入/输入域中改变读/写XML文件的路径(有效的磁盘路径(手动写入))。
- 点击“Write to disk (手动)”按钮,通过“Write _XML_to_File”脚本将当前3个变量的值写入到文件中。
- 点击“Write to disk (XML)”按钮,通过“Write _XML_to_File_with_XML”脚本将当前3个变量的值写入到文件中。
- 点击“Read from disk”按钮,将存储在XML文件中的变量传送到Runtime的变量中。
- 点击“Exit”按钮,退出项目。
已生成的XML文件
Fig. 05
注意
本文提供的解决方案通常也适用于WinCC (TIA) RT Professional和支持脚本的操作员面板。然而,应根据 RT/Windows的版本去修改VBS的代码。
然而,应注意不同版本之间VBS的语法规则。
下载
Archived sample project for WinCC (TIA Portal) Advanced
109740374_WinCC_RT_Export_Import_in_XML_Format.zip (1.4 MB)
SHA-256 checksum of the ZIP archive:
a37d1cb5aa64ba5b666bf22c859ad5bcb5a4c855bd5cda4a86f94ea595a0884d
更多信息
- Introduction to XML DOMin the Microsoft Developers Network (English)
- Introduction to VBS scripting with XML DOMin the Microsoft TechNet (English)
https://support.industry.siemens.com/cs/cn/zh/view/109740374
剩余80%未阅读,请登录后下载/查看文档
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
- 如何在没有安装 WinCC (TIA Portal)的 PC 机上以图形的形式显示来自一个精智面板或者 WinCC Runtime Advanced
- 使用 WinCC (TIA Portal) V13,如何把 WinCC Advanced/Runtime Professional 的项目传送到没有直接数据连接的电脑上并进行自启动设置?
- 当使用Comfort面板或者WinCC (TIA Portal) Advanced Runtime连接AB控制器"SLC 5/05" 或者"SLC 5/05"或者"MicroLogix" 系列时, 如何实现最优化的访问?
- 如何在 WinCC(TIA 博途)中组态一个 WinCC Runtime Advanced 或 HMI 面板和 S7 控制器的工业以太网(PROFINET)连接?
- Siemens AG提供了哪些支持使得WinCC (TIA Portal)组态的WinCC Runtime Advanced, WinCC Runtime Professional 和面板能够符合 FDA规则?
- 如何在 WinCC flexible 或 WinCC (TIA Portal) 项目中插入变频器 (SINAMICS 和 MICROMASTER) 的错误信息?
- 如何在 WinCC flexible 或 WinCC (TIA Portal) 项目中插入变频器 (SINAMICS 和 MICROMASTER) 的错误信息?
- 在模拟输入模块6ES7 331-7PF01-0AB0中应该如何处理未使用通道和导线断线这两种问题?
- 如何把一个 WinCC flexible 创建的操作面板项目集成到一个 TIA Portal 项目中?
- 在WinCC(TIA Portal)项目中,如何正确的使用面板,模板,弹出窗口和滑入窗口?
{{item.nickName}}