技术论坛

第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假

作者 主题
侠客

经验值: 872
发帖数: 128
精华帖: 0
主题:【求助】第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 楼主 2021-05-06 23:49:07

if (b[0]==a[0] and n) then 

m0[0]=1

else

m0[0]=0 


end if

SetData(m0[0], "Local HMI", LB, 0, 1)


if (b[1]==a[1] and n)  then

m0[1]=1

else

m0[1]=0


end if

SetData(m0[1], "Local HMI", LB, 1, 1) 



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1694363&b_id=64&s_id=0&num=8

至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 1楼 2021-05-07 08:51:37

你这是什么语言脚本?VBS脚本不支持a[b]这种数组寻址方式,C脚本不支持 and 操作符。

那么,这是你自己开发的脚本,出了问题只能你自己解决了。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4243
发帖数: 583
精华帖: 3
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 2楼 2021-05-07 10:23:02

这是SCL语句吧,

if (b[0]==a[0] and n) then 

    m0[0]=1;

else

    m0[0]=0;

end if;

SetData(m0[0], "Local HMI", LB, 0, 1);


if (b[1]==a[1] and n)  then

    m0[1]=1;

else

    m0[1]=0;

end if;

SetData(m0[1], "Local HMI", LB, 1, 1);


两个If语句没有什么关系,关键的是两if结束不管结果如何都调用了SetData(**)函数,结果以最后一次调用的为准了,逻辑没有设计好吧?你是不是想SetData函数在一种情况下被调用,而不是两种情况都被调用。



 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6784
发帖数: 1108
精华帖: 1
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 3楼 2021-05-07 11:55:24

威纶通的宏功能,IF里在嵌套ELSEIF试一下。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67550
发帖数: 14784
精华帖: 100
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 4楼 2021-05-08 18:50:58

肯定不是本程序的原因。上下两部分程序都没有关系的。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 19304
发帖数: 3875
精华帖: 1
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 5楼 2021-05-10 14:40:53

 威纶的宏指令写法。

第一段和第二段没有联系。

SetData(**)函数是置位

SetData(m0[0], "Local HMI", LB, 0, 1);不管m0[0]=0或者1,不影响LB0,1.

SetData(m0[1], "Local HMI", LB, 1, 1);不管m0[1]=0或者1,不影响LB1,1.

你查下有没有使用LW0的数据了?


弘扬中华传统美德,无私奉献为根本,助人为乐为根源。
以下网友喜欢您的帖子:

  
侠客

经验值: 872
发帖数: 128
精华帖: 0
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 楼主 6楼 2021-05-21 21:18:49
这是维纶触摸屏的宏指令,这是独立的两个,现在改了lw的编号按字开排就没有问题了。
 
以下网友喜欢您的帖子:

  
侠客

经验值: 872
发帖数: 128
精华帖: 0
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 楼主 7楼 2021-05-21 21:23:14
实际上是lw0和lw1互相影响了,改成lw0 lw2 这样子就没有问题了。谢谢各位的指点,用得少,容易忽略16位和32位的影响关系。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 67550
发帖数: 14784
精华帖: 100
回复:第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假


只看楼主 8楼 2021-05-22 08:13:09

我想知道这里哪里跟16位32位扯上关系?这又哪来的LW?


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
第二个if 语句 怎么会影响第一的结果?(就是第一个if语句结果为真时,但第二个if 语句为假时导致第一个的结果也为假
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。