wincc C脚本组态

#include

问题补充:
#include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

if (GetTagBit("UP_UP_AL")||GetTagBit("UP_AL")||GetTagBit("LOW_AL")||GetTagBit("LOW_LOW_AL"))
return RGB(255,0,0);
else
return RGB(0,255,0);
}

在保存时出现了性能警告:

说这个循环动作导致系统的高负载。如果可能,请使用触发器变量
如果把上面的c脚本删掉就没有这个警告了
如果用这个脚本的话,还会影响到同一个画面的其它组态连接不到变量(我用的是带前缀的组态方法)
1.用什么办法解决这个问题
2.如果我想"UP_UP_AL"、"LOW_LOW_AL"、"UP_AL"或"LOW_AL"触发时显示一个颜色
只有"UP_AL"或"LOW_AL"触发时显示一个颜色
一个没有时显示一个颜色怎么办
谢谢

最佳答案

根据你的程序可以猜出:
你是想显示一个模拟量变量的状态,这个状态分成三种:
1.高高报警或低低报警 红色
2.高报警或低报警  黄色
3.正常范围内  绿色
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
if(GetTagBit("UP_UP_AL")||GetTagBit("LOW_LOW_AL"))
return RGB(255,0,0);//如果高高低低报警则返回红色,跳出程序。
if(GetTagBit("UP_AL")||GetTagBit("LOW_AL"))
return RGB(255,255,0);//如果高低报警则返回黄色,跳出程序。
else
return RGB(0,255,0);//没有任何报警,返回绿色
}
选择触发变量的时候,触发周期选择为change(变量有变化时)这样会节省很大的资源消耗,也不会报警。
这三条语句的判断前后顺序不能颠倒!

提问者对于答案的评价:
xiexie 

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc265566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐