首先来看看什么情况会导致交叉索引无法索引到变量和画面呢?
这种情况会出现在脚本中使用变量和画面时,由于脚本编写没有参照 WinCC 中的规范,则会出现交叉索引无法索引到变量和画面的问题。
1. 无法索引到变量的情况:
这通常会出现在 C 脚本中使用的变量,如果没有按照 WinCC 规范编写则会出现,如下图所示的情况
从图中可以看到,明明在 C 脚本中使用了 2 个变量,并且编译和执行都没有问题,而在交叉索引中这 2 个变量的使用状态却仍为“未使用”状态。
如果使用 VB 脚本操作变量情况则相对好一些,如果没有按照规范编写倒是也能索引出来。
2. 无法索引到画面的情况:
C 脚本中使用的画面,如果没有按照 WinCC 规范编写则会出现如下图所示的情况
可以看到在 C 脚本中使用了画面“CRScreen1”,并且编译和执行也都没有问题,而在交叉索引中这 2 个画面的使用状态也是“未使用”状态。
如果使用 VB 脚本实现同样的功能,而编写时也没有参照 WinCC 的编写规范,就不会像在 VB 脚本中使用变量那么幸运了,同样也是无法被正确索引出来的。
可以看到在VB脚本中使用了画面“CRScreen1”,并且编译和执行也都没有问题,而在交叉索引中这 2 个画面的使用状态也是“未使用”状态。
可能很多工程师会有疑问,用了这么些年的 WinCC ,写了这么多的脚本,功能执行也都没有什么问题,为什么要遵循 WinCC 的脚本编写规范?规范在哪里有描述呢?
是的,在实际应用中没有完全按照 WinCC 的脚本规范编写,确实也不太会影响实际的执行结果。但是一旦需要通过交叉索引查找在脚本中使用过的变量和画面时,麻烦就会出现。那这个编写规范在哪里呢?
1. C 脚本的 WinCC 编码规则
打开WinCC 目录和索引(在线帮助系统) > 使用 WinCC > 用于创建函数和动作的 ANSI-C > 创建和编辑动作 > WinCC 编码规则
在这为了阅读方便也就不摘抄了。只要按照规范修改之前的 C 脚本,交叉索引也就能正确的索引到脚本中使用的变量和画面了。修改后如下图。
从图中可以看到,按照规范修改了变量“CRTag1”的使用之后,交叉索引就可以正确索引出变量的使用状态并链接到其使用的位置了。而仍未按规范修改的变量“CRTag2”则还是无法被正确索引。
2. VB 脚本的 WinCC 编码规则
打开WinCC 目录和索引(在线帮助系统) > 使用 WinCC > 用于创建过程和动作的 VBS > CrossReference 的使用
从实际测试效果来看,对于变量在 VBS 中的使用却没有那么严格。而对于画面的使用,如果没有按照规范编写确实是无法正确索引出来。按照规范修改之前的 VB 脚本之后,也就能正确索引出脚本中画面的使用了。修改后如下图。
由此可见,程序编写的规范化是多么的重要。有个好消息是,如果 C 脚本之前未按 WinCC 规范编写而导致交叉索引无法正确索引时,有个小工具可以帮到大家。那就是 Cross Reference Assistant(交叉索引助手)。
通过开始菜单打开交叉索引助手程序,打开时,会有关于交叉索引助手的相关说明,如下图:
然后根据向导进行操作,如下图。
操作开始前将脚本编辑器以及画面编辑器关闭。操作完成后,全局脚本和画面脚本中的 C 脚本对变量与画面的引用将会转换为规范的编写,如下图。
关于交叉索引更详细的内容请参考:
https://support.industry.siemens.com/cs/cn/zh/view/109780818
欢迎访问西门子1847工业学习平台,这是一个官方的学习平台,能够帮助您高效获得实用和权威的资料。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.