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日
下一篇 2017年10月31日

相关推荐

  • VBS动作问题

    见图片,大家帮我看看,这是不是一段把数据存在"C:\Documents and Settings\Administrator\Desktop\Grap…

    2017年11月29日
  • WINCC开关量边沿触发报警

    1、比如:I0.0从0到1,要报警,并对应一条消息文本,从1到0报警,出现另一条消息文本。这个怎么做? 问题补充:没有看到在哪做开关量报警,也没看到哪做边沿触发报警 最佳答案 在报…

    SIMATIC WinCC 2019年6月10日
  • Wincc中如何在提示文本内显示多个变量

    用wincc7做上位机,想在某个对象的提示文本中,动态同时显示多个变量的值,是否需要做C脚本?我查了一下,应该是要用SetPropChar这个脚本。那么定义这个脚本应该是对该对象的…

    SIMATIC WinCC 2021年7月5日
  • 如何在触摸屏上显示历史数据表

    如何在触摸屏上显示历史数据表?触摸屏是MP277,在触摸屏上以表格形式显示出历史数据 问题补充:最好是在flexible编辑的界面中显示出来 最佳答案 显示表格不太容易,触摸屏没有…

    SIMATIC WinCC 2019年6月11日
  • WinCC中的C动作

    请各位大侠帮忙看看我的代码有什么问题: int x; BOOL s; s=GetTagBit("lx");&n…

    SIMATIC WinCC 2019年6月11日
  • wincc如何实现使数据按固定行程归档

    wincc 如何实现使数据按固定行程归档,例如每走200米归一次档,非周期的归档。 最佳答案 在PLC里见一个变量,比较200M行程,然后在WINCC上建立这个变量,并作…

    SIMATIC WinCC 2019年6月11日
  • wincc6.2 变量导入导出

    变量比较多,一个一个填比较麻烦,是不是可用configuration tool,我的安装wincc只有文档,没有应用工具。具体怎么用,谁能介绍下。 最佳答案 插入安装光盘…

    SIMATIC WinCC 2019年6月11日
  • 这个C脚本的作用是什么?

    #include "apdefap.h"void OnLButtonDown(char* lpszPictureName,&nbs…

    SIMATIC WinCC 2021年7月5日
  • wincc flexible仿真模拟器无法运行

    刚做了个项目,本想仿真运行一下的,结果发生这样的错,不知道是怎么回事,有人遇到过吗?这里声明一下,不是.fwx文件出错,重新编译了也没用,是模拟器软件的问题。原来还能仿真的,现在就…

    2017年11月19日
  • S7-1200如何与精智屏tp700时钟同步

    我用下面的办法做时钟同步,但总是和电脑上的相差8小时这是为什么呢?http://www.diangon.com/wenku/renji/201308/00005830.html 问…

    SIMATIC WinCC 2017年5月31日