表达式应用

第一个问题:::变量A和B是从PLC里取得的,想创建窗口输出一个值,大小为A除以B,所以我创建输出域 用表达式 写为A/B   设备运行起来的时候有输出值为A/B但是 设备没运行的时候因为取值是0所以 显示一直是***  可能因为B值取到的是0,, 
 请教高手 怎么避免此问题。
 第二个问题::WINCC中能创建一个按钮控制多个变量吗,比如说A,B,C,D变量在赋值为1时设备动作,我想做个按钮点击后将A,B,C,D同时赋值为1.   请教下是否有方法搞定这个!!
 谢谢!
 

问题补充:
对第一个问题而言,是否有方法可将A/B的值输入给新建的内部变量C啊?

最佳答案

一、可通过判断被除数(变量B)是否为零,如果B=0.0,则内部变量C=0.0;否则,C=A/B。其中C脚本示例如下:
  float x;
  if (GetTagFloat("B")=0.0)
   {
    SetTagFloat("C",0.0);
   }
  else
  {
    x=GetTagFloat("A")/GetTagFloat("B");
    SetTagFloat("C",x);
  }
 二、创建一个按钮控制多个变量A、B、C、D赋值为1,是可以的。其中C脚本示例如下:
  SetTagBit("A", 1); 
  SetTagBit("B", 1); 
  SetTagBit("C", 1);
  SetTagBit("D", 1);
 三、但问题时,按钮点击后将变量A、B、C、D置1后,就置位(Set)再也保持不变了,无法对变量进行再次置位操作。难道就不需要对变量A、B、C、D复位(Reset)置0吗!
 四、因此,应在操作画面按钮的鼠标按下左键事件(Press Left)中,将变量A、B、C、D置1。C脚本示例如下:
  SetTagBit("A", 1); 
  SetTagBit("B", 1); 
  SetTagBit("C", 1);
  SetTagBit("D", 1);
  而在操作画面按钮的鼠标释放左键事件(Press Left)中,将变量A、B、C、D置0复位,才是实用的方案。C脚本示例如下:
  SetTagBit("A", 0); 
  SetTagBit("B", 0); 
  SetTagBit("C", 0);
  SetTagBit("D", 0);

提问者对于答案的评价:
非常感谢!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午6:56
下一篇 2019年6月11日 上午6:56

相关推荐