【万泉河】WINCC C脚本变量查找替换,以及关于就事论事
昨天, 一个标准化学习营的学员,发个图,问我个问题
问:这个脚本可以根据报警情况改变背景颜色,但是每调用一次就得在脚本里面改变量吗?
你们大家看了问题可能未必一下子看懂头在问什么。
但我立马就懂了。
标准化的学员们,跟我一样,特别注重工作效率,而不是仅仅能实现目的。他这里是借来了别人的一段程序可以用,但想复制多个,如果要逐个进程序里面改变量名字,就累了。
所以来问我。
我想了一下,虽然我知道他要实现什么,跟他解释起来还是很难。所以索性把程序原文字要来,给改了一下,发回给他。
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
#define Tag_H "主减轴温1_H"
#define Tag_HH "主减轴温1_HH"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
int temp=GetTagBit(Tag_H)+GetTagBit(Tag_HH)*10;
switch( temp){
case 1 : return 64255; //黄
break;
case 10 : return 255; //红
break;
case 11 : return 255; //红
break;
default : return 1677786880;
}
}
然后他就可以用查找替换的方式修改变量了。
这样子:
关于WINCC中变量的查找替换, 以及文本的查找替换, 是一个基本功,不会的同学自己去学习一下,
非常重要,非常重要,非常重要!
这位学员就是因为平素我给他们讲的多,所以上瘾了, 这里没有这个功能,就傻眼了。
在C脚本中被使用过的变量, 要被能WINCC交叉引用查找到,并进行替换,是需要特殊处理的。
所谓的特殊处理,就是你在加入一段新的C脚本时冒出来的那一批注释。那是WINCC的特殊规范,或者说为了应对C脚本环节的缺陷专门设计的。
上面脚本中
// WINCC:TAGNAME_SECTION_START
和
// WINCC:PICNAME_SECTION_START
的那两段。
这部分知识我在我的上一本专著《西门子WINCC从入门到精通》中P129页详细讲解了此功能,但看来还是有很多人没学习到。
看看, 我又在卖弄推销我的书了。
为啥我说又呢?因为上一篇文章《【万泉河】PLC全局变量M正确使用大法-2》
https://mp.weixin.qq.com/s/zTVVi1YIECjwqg3U1bWfRg
我也同样提到过这本书中的知识点。
然后上一篇文章发出后,就有不少网友追问哪里能买到书。
而已经拥有此书的网友估计都赶紧去翻看原书了。
然而,我想, 一些知识点恐怕在谁的脑子里,就永远在谁的脑子里了。别人要学到,真的很难。那些知识点尽管我曾经写到了书里,然而也只有我一个人记得。别人哪怕是花了钱,买了书, 也认真看了,但一些重要的知识点,未必能发现,未必能get到!
作者总不能在书里到处划重点,这里是知识点,那里也很重要吧?那样,整本书都成了重点,也同样没了重点。
所以,我在想,大家更需要的还是一个开放的,能互相帮助互相提醒的交流平台。
遇到什么小问题, 无关企业技术机密以及核心竞争力的小问题, 一时间自己找不到答案的时候,平台里问一下,然后谁了解,谁就顺便给回答了。
然而,这不能是只盯着一个高手,即所谓的大佬,给人发问题问自己的问题。那样不对等,没人欠你的。
同时,平台也需要有一定的互信度。像楼上这个问题,是曾经交过学费的标准化学员问我,我感情上就比较亲近,就愿意多花一点精力帮他。然而,如果是泛泛而交的网友,恐怕连翻书告诉他在书的第几页的精力都不会舍得投入。搞不好还会被骂趁机卖书。
后面内容比较火爆。 请移步看原文
https://mp.weixin.qq.com/s/CifRWY8osbojuzXs6l8a3A