多个变量为一个数值时,来改变颜色有没有简单的写法。我有50个变量

#include "apdefap.h"
 long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
#define TAG_1 "座椅1接收数据块_r_r9"
#define TAG_2 "座椅2接收数据块_r_r9"
#define TAG_3 "座椅3接收数据块_r_r9"

#define TAG_7 "座椅7接收数据块_r_r9"


// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END

if  ( GetTagWord(TAG_1)==1401 || GetTagWord(TAG_1)==1500 || GetTagWord(TAG_1)==1510 || GetTagWord(TAG_1)==1600|| GetTagWord(TAG_1)==1700 || GetTagWord(TAG_1)==2200 || GetTagWord(TAG_1)==2500|| GetTagWord(TAG_1)==2501 || GetTagWord(TAG_1)==2502|| GetTagWord(TAG_1)==2510|| GetTagWord(TAG_1)==2520 || GetTagWord(TAG_1)==2530 || GetTagWord(TAG_1)==2600|| GetTagWord(TAG_1)==2610 || GetTagWord(TAG_1)==2620 || GetTagWord(TAG_1)==2630|| GetTagWord(TAG_1)==2631 || GetTagWord(TAG_1)==2640|| GetTagWord(TAG_1)==2645|| GetTagWord(TAG_1)==2650 || GetTagWord(TAG_1)==2660|| GetTagWord(TAG_1)==2661 || GetTagWord(TAG_1)==2900 || GetTagWord(TAG_1)==3000 || GetTagWord(TAG_1)==3100 || GetTagWord(TAG_1)==3110 || GetTagWord(TAG_1)==3600 || GetTagWord(TAG_1)==3601 || GetTagWord(TAG_2)==1401 || GetTagWord(TAG_2)==1500 || GetTagWord(TAG_2)==1510 || GetTagWord(TAG_2)==1600|| GetTagWord(TAG_2)==1700 || GetTagWord(TAG_2)==2200 || GetTagWord(TAG_2)==2500|| GetTagWord(TAG_2)==2501 || GetTagWord(TAG_2)==2502|| GetTagWord(TAG_2)==2510|| GetTagWord(TAG_2)==2520 || GetTagWord(TAG_2)==2530 || GetTagWord(TAG_2)==2600|| GetTagWord(TAG_2)==2610 || GetTagWord(TAG_2)==2620 || GetTagWord(TAG_2)==2630|| GetTagWord(TAG_2)==2631 || GetTagWord(TAG_2)==2640|| GetTagWord(TAG_2)==2645|| GetTagWord(TAG_2)==2650 || GetTagWord(TAG_2)==2660|| GetTagWord(TAG_2)==2661 || GetTagWord(TAG_2)==2900 || GetTagWord(TAG_2)==3000 || GetTagWord(TAG_2)==3100 || GetTagWord(TAG_2)==3110 || GetTagWord(TAG_2)==3600 || GetTagWord(TAG_2)==3601 ||GetTagWord(TAG_3)==1401 || GetTagWord(TAG_3)==1500 || GetTagWord(TAG_3)==1510 || GetTagWord(TAG_3)==1600|| GetTagWord(TAG_3)==1700 || GetTagWord(TAG_3)==2200 || GetTagWord(TAG_3)==2500|| GetTagWord(TAG_3)==2501 || GetTagWord(TAG_3)==2502|| GetTagWord(TAG_3)==2510|| GetTagWord(TAG_3)==2520 || GetTagWord(TAG_3)==2530 || GetTagWord(TAG_3)==2600|| GetTagWord(TAG_3)==2610 || GetTagWord(TAG_3)==2620 || GetTagWord(TAG_3)==2630|| GetTagWord(TAG_3)==2631 || GetTagWord(TAG_3)==2640|| GetTagWord(TAG_3)==2645|| GetTagWord(TAG_3)==2650 || GetTagWord(TAG_3)==2660|| GetTagWord(TAG_3)==2661 || GetTagWord(TAG_3)==2900 || GetTagWord(TAG_3)==3000 || GetTagWord(TAG_3)==3100 || GetTagWord(TAG_3)==3110 || GetTagWord(TAG_3)==3600 || GetTagWord(TAG_3)==3601  )
  return 255;

else
  return 65280;
}

问题补充:
能不能直接用wincc来写,因为plc是别人做的。

最佳答案

定义一个变量数组和数值的数组
使用for循环判断,一旦判断有等于的,直接返回就好了
工作量就是定义变量数组和数值数组的工作了,毕竟这个是少不了的
晚上写个大概的程序~
char *tag[4]={"TEST1","TEST2","TEST3","TEST4"};
int value[5]={1401,1500,1501,1600,1700};
int i,j;

for (i=0;i<4;i++)
{
  for(j=0;j<5;j++)
  {
    if( (GetTagWord(tag[i]))==value[j] )
      {
      return 255;
      } 
   }
}
return 65280;

经测试好使~,有数值相等是红色,否则是绿色

提问者对于答案的评价:
先谢谢了,我试试

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午11:55
下一篇 2021年7月5日 上午11:55

相关推荐

  • wincc脚本如何计时

    我有一个氧气电磁阀,我在wincc里做一个按钮,在做一个内部变量和I/O域,点击按钮,电磁阀工作,I/O域开始计时间,在点击按钮,时间停止并复位,但不知道怎么做。 最佳答案 最好是…

    SIMATIC WinCC 2019年6月11日
  • winccflexible sp4安装

    我在安装wincc flexible sp4安装不了,删除了注册表但是安装就会报一个STEUP启动不了。 钻石用户推荐最佳答案 你先看看你的电脑是否支持该软件安…

    SIMATIC WinCC 2021年7月5日
  • winccflexible如何通过按钮按下启动数据记录

    在winccflexible中,如何通过按钮按下进行数据记录?比如变量process,对应数据记录record,process记录属性采集模式设置为“根据命令”,然后在按钮事件“单…

    SIMATIC WinCC 2017年6月11日
  • 如何让wincc VBA只运行一次

    如何让wincc VBA只运行一次 最佳答案 定义一个变量a(初始值为0)在脚本执行的最前面添加IF语句if a==0 then…a=1endif…

    SIMATIC WinCC 2021年7月5日
  • WinCC项目保存时提示性能警告

    警告如图片所示,这种情况对项目的运行会有什么影响。 图片说明:    最佳答案 警告是提示你,你的的这些是周期触发的,会增加wincc的负担;红×后面的组,你要…

    2021年7月5日
  • 在PC station内组态HMI画面与触摸屏有什么不同

    我在PC station里做画面和在触摸屏上有什么不同吗?是否可以将它用在项目里,代替触摸屏? 图片说明:       最佳答案 …

    2021年7月5日
  • wincc安装完不正常

    按照教程安装完新建项目成这样了,谁知道啥情况 图片说明:       最佳答案 WinCC软件对操作系统、杀毒软件、其它西门子软件等都有严格…

    2021年7月5日
  • wincc总是在报错

    我的wincc是v6.0 sp3 在新建项目中,打开图形编辑器,只要一操作就会报错误: StgOpenStorage hr=80030002…

    SIMATIC WinCC 2019年6月11日
  • 声控报警

    在wincc中如何制作声控报警? 最佳答案 WinCC V6.0可以用Horn组态实现声音报警,不用编程。 打开Horn,在Message assig…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4 sp1访问独立置顶窗口中控件的问题

    对于嵌入窗口使用vbs访问对象可以采用这样的格式:Set  Obj1= HMIRuntime.Screens(基础窗口.画面窗口控件:画面窗口名称.二…

    2021年7月5日

发表回复

登录后才能评论