http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=110180&cid=1032
以上是我上次提出的问题!感谢 迷失中原 学长的回答!学长的回答如下:
C脚本是可以实现的。
以内部变量TEMP为例,类型32位浮点数。
1、画面上建立输入输出域,连接变量TEMP,然后建立一个棒图,连接变量TEMP。棒图量程可设为0-120.0
2,在棒图颜色-写上以下C脚本
float a;
a=GetTagFloat("TEMP"); //Return-Type: float
if(a>=100.0) return CO_YELLOW;
if((a<100)&&(a>=80)) return CO_RED;
if((a<80)&&(a>=40)) return CO_BLUE;
if(a<40) return CO_GREEN;
3、对输入输出域设置不同的数值,分别显示黄色、红色、蓝色。
现在想问的是:wicc里有没有闪烁报警颜色的代码,而不是静态的!如果没有,怎么实现呢?在此谢谢各位了!
最佳答案
1.我看了楼主上次提问的问题,用C脚本可以实现,不过在表达式/公式里也可以实现文字闪烁字体颜色变化的功能,我现在电脑里没有装WINCC,请参考我以前回答过的类似问题,里面有我抓的4张图片。
链接:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=97059&cid=1032
2.简单说一下方法吧:
一、在输入输出域对象属性里,输入输出里,域类型:输出,输出值:动态里选择你要显示的温度值的变量(比如P_1),数据类型:模拟量。其它根据需要选择。
二、在输入输出域对象属性里,闪烁里,激活闪烁文字:静态:否,动态:打开动态对话框,表达式/公式里:''''p_1''''>=80数据类型:布尔型,为真时激活闪烁文字,为假时否。这一步可以实现当温度>=80时文字进行闪烁。
三、 在输入输出域对象属性里,闪烁里,闪烁文本颜色关:静态:红色,动态:打开动态对话框,表达式/公式里:''''p_1''''>=80&''''p_1''''<100数据类型:布尔型,为真时闪烁文本颜色关设为黄色,为假时闪烁文本颜色关设为黑色,(说明:温度值的颜色为黄色文字进行闪烁)。
四、在输入输出域对象属性里,闪烁里,闪烁文本颜色开:静态:浅蓝,动态:打开动态对话框,表达式/公式里:''''p_1''''>=100数据类型:布尔型,为真时闪烁文本颜色开设为红色,为假时闪烁文本颜色开设为黑色,(说明:温度值的颜色为红色文字进行闪烁)。
在输入输出域对象属性里,闪烁里,文本闪烁频率根据需要选择,可设为快。
另外注意在输入输出域对象属性里,颜色里,设置字体的颜色(如:浅蓝)要与闪烁的二种颜色(黄、红)尽量对比鲜明。这样设置完后,当温度>=80时,文字进行闪烁显示,当温度大于等于80小于100时,温度值显示颜色在黄黑之间变化,当压力大于100时,温度值显示颜色在红黑之间变化。
3.剩下的温度范围,楼主按要求自己试一试。需要注意的是:在表达式/公式里常用的加减乘除大于小于等于计算外,还有︱是或运算,&是与运算,!是非运算,/是取模(余数),你都可以灵活运用。
4.最后说一下个人观点:在使用WINCC时,能用PLC处理的就尽可能用PLC来处理,向这些报警最好在PLC中进行判断,在WINCC中直接调用,这样报警范围还方便修改,通过通讯传输速度快,而且占用资源较少,也减轻了wincc负担。再举一个例子,一个按钮,用鼠标左键点击时置1,松开时置0,WINCC里可以只实现左键点击时置1,而松开时置0也可由PLC用复位来处理,由其在点数庞大的组态画面里对WINCC可以减轻很多负担。
提问者对于答案的评价:
谢谢你的回答!很详细!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc216679.html