xueli521
生而無畏學(xué)至終章
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 75 個(gè)
工控威望: 158 點(diǎn)
下載積分: 10474 分
在線時(shí)間: 37(小時(shí))
注冊時(shí)間: 2019-07-22
最后登錄: 2022-01-11
查看xueli521的 主題 / 回貼
樓主  發(fā)表于: 2019-11-04 14:12
威綸通宏指令,使用while后,無法停止。


macro_command main()

bool a,b,c = 1 ,d = 0
int e

GetData(a,"HMI",LB,2,1)
GetData(b,"HMI",LB,3,1)

while (a == true and b == false)
  SetData(c,"HMI",LB,0,1)
  SetData(d,"HMI",LB,1,1)
  DELAY(1000)
  SetData(d,"HMI",LB,0,1)  
  SetData(C,"HMI",LB,1,1)
  DELAY(1000)
  if b == true then
  break
  end if
  wend
end macro_command
xueli521
生而無畏學(xué)至終章
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 75 個(gè)
工控威望: 158 點(diǎn)
下載積分: 10474 分
在線時(shí)間: 37(小時(shí))
注冊時(shí)間: 2019-07-22
最后登錄: 2022-01-11
查看xueli521的 主題 / 回貼
1樓  發(fā)表于: 2019-11-09 12:45
引用
引用第1樓fjqz00于2019-11-04 17:46發(fā)表的  :
在 DELAY(1000)與 if b==true then之間,再加一句  GetData(b,"HMI",LB,3,1) 應(yīng)該就可以了。
要不然你的b一直不會(huì)刷新,那么while就出不來了

這樣要停止,也需要B一直true才行,有沒有哪個(gè)函數(shù)可以直接在B  true的瞬間,就可以把整個(gè)while停止,而不是要等到while循環(huán)結(jié)束后,再檢測WHILE里面有沒有滿足條件?