WinCC 交叉索引的使用

1 2 2.1 wincc 交叉索引的使用

在短暂的初始化后,交叉索引程序将被启动。注意:如果交叉索引无法正常启动,请参考 FAQ:https://www.php.cn/link/8e3187c1c7ad8ec804b4d2fcd7c25bd4

WinCC 交叉索引的使用左侧框显示“项目对象”列表,其中包含了 WinCC 项目中的所有引用对象,如变量、画面和文本等。右侧框显示对象使用位置列表,列出了对象名称及其使用位置。可以通过点击中间的“链接”按钮将两个表关联起来。关联后,左侧选中的对象的具体信息将会在右侧列表中显示。如图 03

WinCC 交叉索引的使用从图 03 中可以看到,左右两表关联后,右侧列表中显示了左侧表中选中对象 float3 的相关信息。该对象被使用在文件或编辑器中,如“picture01.PDL”画面和 VBS 全局动作“GlobalVBAction2.bac”。在画面中使用的具体位置为“脚本中的变量”和“VBS 动作”。使用 float3 对象的具体对象包括“按钮”和“VBS 函数”。在左侧项目对象列表框中,可以设置过滤器,默认无过滤。过滤器如图 04

WinCC 交叉索引的使用可以在第一列过滤器中输入对象名称进行过滤,交叉索引会精确过滤出包含所输入字符的所有对象。也可以通过第二列和第三列的过滤器选择,索引出指定类型的项目对象,如变量或画面,还可以索引出未使用或已使用的对象。

WinCC 交叉索引的使用2.2 2.2.1 索引未使用的变量在项目最终完成后,一些客户希望清理未使用的变量,以避免对项目运行造成不良影响。此时可以通过交叉索引过滤出未使用的变量进行清理。但在清理过程中需要特别注意。首先通过对象类型过滤器和使用状态过滤器将未使用的变量过滤出来,如图 05。

WinCC 交叉索引的使用从图 05 中可以看到项目对象列表中列出了一些变量,并被标记为未使用状态。清理时需要注意:1. 蓝色框中以 @ 开头的均为系统自动创建的系统变量,请勿删除。2. 绿色框中的为结构变量。对于结构变量需要注意,从 WinCC V7.5 SP1 开始,可以通过面板(Faceplate)直接关联结构变量而无需逐一关联结构变量中的结构元素变量。因此在对列表中列出的结构元素变量清理时,也需要特别注意这些结构变量是否已经被关联到了面板实例,如图 06,如果已被关联则不能删除。

WinCC 交叉索引的使用图中的两个面板实例实际已经关联了“Tank1”及“Tank2”两个结构变量,因此这两个结构变量中的所有结构元素变量会被标记为“未使用”状态,均不可以删除。3. 红色框中的变量为普通变量。虽然在列表中被标记为未使用状态,但在清理时也需要注意。因为在 WinCC 脚本编写中使用变量时需要按照规范进行编写,如果未按规范编写则会出现在交叉索引中无法正确索引出变量的情况。例如使用变量“unused1”时不规范的 VB 脚本编写如图 07。

WinCC 交叉索引的使用例如使用变量“unused2”时不规范的 C 脚本编写如图 08。

WinCC 交叉索引的使用如果使用了图 07 及图 08 中不规范的脚本编写,脚本可以正确执行,但会导致图 05 中变量“unused1”及“unused2”都被标记为未使用状态的情况。规范的 VB 脚本以及 C 脚本如图 09。

WinCC 交叉索引的使用修改为如图 09 的规范脚本编写后,交叉索引的结果将变为如图 10。

WinCC 交叉索引的使用2 FAQ titleEntry-ID: Entry ID, V 0.0, mm/yyyy 12 Siemens AG copyright year All rights reserved变量“unused1”及“unused2”变为已使用状态。在 VB 脚本的编写过程中必须人为按照规范进行编写。而如果 C 脚本的编写未能按照规范编写,在后期可以通过交叉索引助手程序进行脚本转换,从而使得变量能够正确的被索引。交叉索引助手将在 2.4 章节介绍。2.2.2 索引已使用的变量在项目最终完成后,经常需要知道变量在什么地方被使用,以便项目调试和排错。此时可以通过交叉索引过滤出已使用的变量,通过链接便可知道变量在什么位置被使用。首先通过对象类型过滤器和使用状态过滤器将已使用的变量过滤出来,如图 11。

WinCC 交叉索引的使用从图 11 中可以看到项目对象列表中列出了一些变量,并被标记为已使用状态。例如变量“Tag1”,通过点击“链接”按钮后,在右侧使用位置列表中即可显示出变量“Tag1”所使用的地方。在“pic1.PDL”及“pic2.PDL”中均被使用到。并且清楚地标识出了在画面中使用该变量的对象:“按钮 1”、“圆 1”及“输入/输出域 1”。包括使用的位置也非常明确,例如脚本、变量或者直接连接。而要找到这些相应的位置,并不需要手动打开这些画面进行查找。只需要按照图 11 中的鼠标操作步骤,即可快速打开画面并定位到所使用的位置上,结果如图 12。

WinCC 交叉索引的使用从图 11 中也可以看出在画面“pic1.PDL”及“pic2.PDL”中均使用了变量“Tag1”。如果希望将画面“pic2.PDL”所使用的变量“Tag1”全部替换为“Tag2”,使用交叉索引进行操作也会变得非常简单。操作步骤如图 13。

WinCC 交叉索引的使用在执行图 13 中的操作之前,使用到索引对象的编辑器需要全部关闭,否则将会看到提示信息,如图 14。

WinCC 交叉索引的使用替换完成后,交叉索引中的结果将变为如图 15。

纳米搜索 纳米搜索

纳米搜索:360推出的新一代AI搜索引擎

纳米搜索 30 查看详情 纳米搜索

WinCC 交叉索引的使用使用这种替换方式,可以同时将多个编辑器或多个画面中的变量进行统一替换,不会在项目中引起不一致问题。2.2.3 索引不存在的变量在项目组态过程中,有时需要修改变量名称,或者有些变量会被删除。而修改或删除后可能会遗忘曾今在项目的某些地方使用过这些变量。这样的结果可能会导致项目运行过程中出现不必要的错误。在这种情况下,交叉索引可以很方便地解决这样的问题。例如,将变量“Tag1”在变量管理器中重命名为“Tag01”。然后就通过交叉索引过滤的方式找出已被使用但却已不存在的变量“Tag1”,如图 16。

WinCC 交叉索引的使用此时,即可通过图 13 的操作方法将变量替换为新的变量“Tag01”。如果项目中不再需要,则可以通过图 11 中的跳转方法跳转到具体使用位置,将其删除。

2.3 与变量的使用情况类似,在交叉索引中也可以索引出所有画面以及它们的使用情况。如图 17。

WinCC 交叉索引的使用如图 17 中所示,同样存在以下 3 种情况:1. 已使用的。当画面在画面窗口中被引用时会被标记为已使用,如图 17 中的画面“popupScreen.PDL”。按钮中调用了也会被标记为已使用,如图 18 中的画面“dynamicType.PDL”。

WinCC 交叉索引的使用包括通过 VB 脚本或 C 脚本加载的画面,如图 19。

WinCC 交叉索引的使用前提是 VB 及 C 脚本都按照规范进行编写,如图 20。

WinCC 交叉索引的使用2. 未使用的。在项目中没有被关联的画面以及 VB 及 C 脚本调用时未按规范进行编写,如图 21,也会被标记为未使用状态。

WinCC 交叉索引的使用未按规范编写的脚本可以正确执行,但交叉索引中则无法正确索引出画面的使用状态,如图 22。

WinCC 交叉索引的使用2.4 WinCC 交叉索引的使用

然后根据向导进行操作,如图 24。

WinCC 交叉索引的使用操作开始前将脚本编辑器以及画面编辑器关闭。操作完成后,全局脚本和画面脚本中的 C 脚本对变量与画面的引用将会转换为规范的编写,如图 25

WinCC 交叉索引的使用经过转换的变量及画面引用,在交叉索引中即可正确索引到,如图 26。

WinCC 交叉索引的使用

以上就是WinCC 交叉索引的使用的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/454834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 00:55:49
下一篇 2025年11月8日 01:00:19

相关推荐

  • Go语言中探测字符串底层内存共享的方法与风险

    go语言字符串在表面上是值类型且不可变,但其底层数据存储可能存在共享。本文将探讨如何利用`reflect.stringheader`和`unsafe.pointer`技术来检测字符串是否共享同一块底层内存。同时,文章将着重强调该方法属于go语言内部实现细节,不具备可移植性,不推荐在生产环境中使用,并…

    2025年12月16日
    000
  • Go语言XML解析:处理time.Time字段的自定义日期格式

    在go语言中,当使用`encoding/xml`包解析xml数据时,`time.time`字段默认不支持自定义日期格式,导致非标准日期字符串解析失败。本文将详细介绍如何通过实现`xml.unmarshaler`接口,创建一个嵌入`time.time`的自定义类型,从而灵活处理各种自定义日期格式的xm…

    2025年12月16日
    000
  • 使用 Go 语言高效生成大型随机 CSV 测试文件

    本文详细阐述了如何使用 Go 语言高效地生成指定大小(例如 10GB)的随机 CSV 文件,其数据格式为 prefix:username:timestamp, number。通过结合 bufio 包进行缓冲写入、math/rand 包生成随机数据以及 time 包处理时间,本教程提供了一个实用的代码…

    2025年12月16日
    000
  • Go 语言中日期与时间的精确处理机制

    Go 语言通过其内置的 time 包提供了一套强大且精确的日期时间处理机制。它将时间表示为具有纳秒精度的瞬时点,不包含闰秒,从而简化了内部计算。Go 依赖 IANA 时区数据库来管理复杂的时区和夏令时规则,确保了全球范围内的准确时间解释。其核心 Time 结构体封装了秒、纳秒偏移量以及地理位置信息,…

    2025年12月16日
    000
  • Go 语言日期与时间处理:time 包详解

    Go 语言通过其内置的 time 包提供一套强大且精确的日期与时间处理机制。它将时间表示为具有纳秒精度的瞬间,并明确不包含闰秒。Go 依赖 IANA 时区数据库处理时区和夏令时,其核心 Time 结构体内部存储秒、纳秒偏移量以及关联的时区信息,旨在提供一个稳定、可靠的时间管理方案,有效应对日期时间处…

    2025年12月16日
    000
  • Golang time时间操作与格式化实践

    Go语言中time包通过time.Time类型处理时间,使用time.Now()获取当前时间并用Format按“2006-01-02 15:04:05”参考时间格式化,Parse解析字符串,Add、Sub进行时间计算,In切换时区,建议统一UTC存储时间。 Go语言中的time包提供了丰富的时间处理…

    2025年12月16日
    000
  • Go语言XML解析教程:高效处理多项数据与字段导出策略

    本教程深入探讨Go语言encoding/xml包在解析包含多项数据的XML时遇到的常见问题,特别是关于结构体字段导出(大小写)的限制。我们将详细解释xml.Unmarshal函数的工作原理,并提供一个实用的解决方案,通过结合导出字段和xml标签来确保数据正确反序列化。文章包含示例代码、关键注意事项及…

    2025年12月16日
    000
  • Golang适配器模式第三方接口兼容示例

    适配器模式通过定义统一SMSSender接口,为阿里云和腾讯云短信服务分别实现AliyunAdapter和TencentAdapter适配器,使不同SDK接口标准化,业务层可透明切换服务商,提升扩展性与维护性。 在使用 Golang 开发项目时,经常会对接第三方服务,比如支付、短信、物流等。不同第三…

    2025年12月16日
    000
  • Go语言日志滚动方案:实现文件大小限制的日志切割

    Go语言标准库 log 包提供了一套简单的日志记录方案,但在实际应用中,它缺少一项关键功能:日志滚动。这意味着日志文件会无限增长,最终可能耗尽磁盘空间或影响系统性能。本文将深入探讨如何在Go语言中实现日志滚动,特别是基于文件大小限制的日志切割。 Go标准库日志的局限性 Go语言标准库 log 包的优…

    2025年12月16日
    000
  • Go语言中字符串到时间对象的转换:time.Parse() 深度解析

    本文旨在详细讲解Go语言中如何将日期字符串转换为time.Time类型。我们将重点介绍time.Parse()函数的使用方法,特别是其核心参数——格式化字符串的构造规则,并通过具体代码示例展示如何安全高效地完成字符串到时间对象的转换。 在go语言的开发实践中,我们经常会遇到需要将各种格式的日期字符串…

    2025年12月16日
    000
  • Go语言:解析Epoch毫秒时间戳字符串的实用指南

    在Go语言中,直接解析形如“Epoch毫秒数”的时间戳字符串并非time包的内置功能。本教程将详细介绍如何通过strconv.ParseInt将字符串转换为整数,并结合time.Unix函数,将其准确转换为time.Time对象,从而实现后续的格式化输出,弥补标准库在特定时间格式解析上的不足。 挑战…

    2025年12月15日
    000
  • Go语言:将毫秒级Unix纪元时间戳字符串转换为time.Time对象

    本教程探讨Go语言中解析毫秒级Unix纪元时间戳字符串的有效方法。鉴于time包的Parse函数不直接支持此格式,我们将演示如何将毫秒字符串手动转换为整数,然后利用time.Unix函数构建time.Time对象,从而实现时间数据的精确处理与格式化。 在go语言中处理时间数据时,我们经常会遇到来自不…

    2025年12月15日
    000
  • 使用 Go 语言构建上下文无关文法 (CFG) 解析器

    本文将指导您如何使用 Go 语言构建上下文无关文法 (CFG) 解析器。goyacc 是一个非常有用的工具,虽然它本身不是一个库,而是一个代码生成器,但它提供了一种标准且高效的方式来处理 CFG 解析问题。 goyacc 简介 goyacc 是 Go 语言自带的 Yacc (Yet Another …

    2025年12月15日
    000
  • Golangtime包日期时间操作技巧

    Go语言time包使用“2006-01-02 15:04:05”格式化时间,通过time.Now()获取当前时间,Parse解析字符串,Add/Sub进行时间计算,Sleep和Ticker实现休眠与定时任务。 Go语言的 time 包提供了丰富的日期和时间处理功能,掌握一些常用技巧可以大幅提升开发效…

    2025年12月15日
    000
  • Golangtime.Parse与Format时间格式化方法

    Go时间处理基于“布局时间”Mon Jan 2 15:04:05 MST 2006,time.Format将时间对象转为字符串,time.Parse按布局解析字符串为时间对象,需注意时区与格式匹配。 在Go语言中,time.Parse 和 time.Format 是处理时间字符串与时间对象之间转换的…

    2025年12月15日
    000
  • MongoDB JavaScript字段值评估:深入理解与实践

    本文探讨了在MongoDB中动态评估JavaScript以设置文档字段值的挑战与解决方案。它明确指出,MongoDB的insert操作不直接支持服务器端JavaScript字段值评估,而是将代码作为对象存储。文章详细介绍了如何通过eval命令进行服务器端JavaScript执行,并提供了Go语言mg…

    2025年12月15日
    000
  • MongoDB服务器端JavaScript执行:动态字段值与eval命令实践

    本文深入探讨了在MongoDB中执行服务器端JavaScript以获取动态字段值的机制。我们阐明了直接在插入操作中嵌入bson.JavaScript类型无法自动评估代码的限制,并详细介绍了如何利用eval命令进行服务器端JavaScript执行。文章还涵盖了system.js集合用于存储可复用函数,…

    2025年12月15日
    000
  • MongoDB中JavaScript代码的服务器端执行与字段值动态赋值

    本文深入探讨了在MongoDB插入文档时,如何实现JavaScript代码的服务器端评估而非直接存储,以动态生成字段值。我们将解析MongoDB对JavaScript的处理机制,介绍使用eval命令和system.js集合进行服务器端代码执行的方法,并强调其性能、安全考量及推荐的替代方案,旨在提供一…

    2025年12月15日
    000
  • Golangregexp正则表达式匹配与替换方法

    Go语言中regexp包支持正则表达式操作,需导入”regexp”包;使用regexp.Compile编译模式,或regexp.MustCompile用于固定模式;MatchString判断是否匹配,FindString返回首个匹配,FindAllString返回所有匹配;通…

    2025年12月15日
    000
  • Golang的time包中如何进行时间和日期的格式化

    Go语言用“Mon Jan 2 15:04:05 MST 2006”作参考时间,通过匹配其格式字符串实现时间格式化,如“2006-01-02 15:04:05”输出标准时间,支持自定义布局和预定义常量如time.RFC3339。 在Go语言中,time包使用一种独特的方式来格式化时间和日期,它不采用…

    2025年12月15日
    000

发表回复

登录后才能评论
关注微信