wincc项目函数color如何显示三种以上颜色的?

画面中某静态文本背景颜色的C动作:
#include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
#define P "VK_hy_mpu3_sta"
return Color(P,11); //Return-Type: long int
 }
 
当P=0000 0001 0000 0110,颜色为洋红(近于FF80FF);
当P=0000 0001 0000 0001,颜色为纯绿  (近于00FF00);
当P=0000 0000 0000 0000,颜色为灰  (近于808080);

问题:Color函数中case 11中的三种return,颜色没有纯绿色啊?小弟C语言基础不好,麻烦哪位大哥给详细讲讲,Color是怎么实现上述功能的?万分感谢!!

问题补充:
只有一次补充机会,实在不舍得用,有太多想问。
一楼zhangli0,非常感谢,小弟试过,好用,应变灵活,简洁适用,膜拜,佩服!二楼letham,解答详尽,尤其让我知道项目函数Color是设计人员自己编写的,我新建一个项目,果然项目函数是空的。我这里画面背景颜色转变都是通过Color函数实现的,所以我还是想知道它是怎么通过Color(p,11),实现我问题中的三种颜色转变的,图片11是Color项目函数的代码,麻烦大师给点拨点拨,万分感谢!

图片说明:

wincc项目函数color如何显示三种以上颜色的?   

最佳答案

你先用动态对话框连接一个bool量为1显示颜色1,为0显示颜色2.然后转换成c脚本,把里面的变量换成你实际的变量,判断变量值等于你的三个值返回颜色,按照上面的格式增加一行,然后把脚本触发变量也改成你实际的变量就行了。如果用vbs表示颜色就简单了直接是:
rgb=(255,128,255)
rgb=(0,255,0)
rgb=(128,128,128)

补充:你的color(p,11),其中p就是color函数中的status参数,11就是type参数,即返回的是case11的颜色代码,其中如果p为1(0x1),则返回7985527,如果p为2(0x2)返回颜色16744703,后面的另一个返回值没有条件则不会返回。

提问者对于答案的评价:
为了节省图片量,程序中很多的//的部分被我删了,不小心把case11 最后一个return的条件:else给删了。case11返回的三种颜色,洋红和灰没错,但没有实际所显示的那种纯绿色,我不明白的地方就是这里:难道跳转到其他地方执行出个纯绿色?不是,肯定是哪个地方我忽略了,没有提供出有用的关键信息。

第一次在网站提问题,两位的回答详细、实用,对我帮助非常大,收获不小啊!非常感谢!!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月31日 上午12:37
下一篇 2017年10月31日 上午12:37

相关推荐