状态显示的设置 点击:144 | 回复:4



PLC酷客

    
  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2014-02-26 11:46:15
楼主

状态显示的设置


在画面中做了一个状态显示。状态显示三个画面,1-本地状态画面,2-远程状态画面,3-故障状态画面。其中本地远程状态是由a变量控制的,故障状态是由b变量控制。<BR>我想实现以下功能:无论是本地状态还是远程状态,只要有故障信号,状态显示为3-故障状态画面。若没有故障信号,则由变量a控制显示,分别显示本地状态和远程状态。<BR>请教大家如何用c脚本或者vb脚本来实现这种功能呢?不用那种两个画面叠加,变量设置可见的方法。

问题补充:
可能我没表达清楚意思,我是想不用画中画的办法。是用智能对象里的状态显示插件。状态显示三个图标,分别为问题中所提到的1、2、3图标。不知道这样的动态脚本怎么写呢?



楼主最近还看过



PLC酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2014-02-26 11:46:22
1楼

对于"状态显示"可以直接设置属性中,状态,当前状态:"动态对话框"。
表达式:'a'*1+'b'*2
数据类型:直接
这样,在"状态显示"组态的表格中,根据状态值:
0。本地状态画面
1。远程状态画面
2。故障状态画面
3。故障状态画面

PLC酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2014-02-26 11:46:45
2楼

写全局c脚本:
{
if (GetTagBit("a")==0&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",TRUE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("a")==1&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",TRUE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("b")==1)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",TRUE);
}


PLC酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2014-02-26 11:47:03
3楼

写全局c脚本:
{
if (GetTagBit("a")==0&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",TRUE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("a")==1&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",TRUE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("b")==1)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",TRUE);
}


PLC酷客

  • [版主]
  • 精华:9帖
  • 求助:31帖
  • 帖子:1460帖 | 7990回
  • 年度积分:457
  • 历史总积分:59176
  • 注册:2004年7月13日
发表于:2014-02-26 11:47:57
4楼

写全局c脚本:
{
if (GetTagBit("a")==0&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",TRUE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("a")==1&GetTagBit("b")==0)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",TRUE);
SetVisible(lpszPictureName,"故障状态画面",FALSE);
}
{
if (GetTagBit("b")==1)
SetVisible(lpszPictureName,"本地状态画面",FALSE);
SetVisible(lpszPictureName,"远程状态画面",FALSE);
SetVisible(lpszPictureName,"故障状态画面",TRUE);
}



热门招聘
相关主题

官方公众号

智造工程师