最新天堂中文在线丨午夜嘿嘿嘿影院丨亚洲国产精品高清久久久丨中文字幕人成乱码熟女app丨www91亚洲丨97成人资源丨成人中文字幕+乱码+中文字幕丨一区二区三区在线 | 日丨日韩免费大片丨亚洲欧美一区二区三区丨国产在线观看a丨亚洲成人第一区丨国内免费视频成人精品丨亚洲综合色网站丨午夜精品美女久久久久av福利丨国产午夜人做人免费视频网站丨国产又黄视频丨97se狼狼狼狼狼亚洲网丨狠狠亚洲婷婷综合色香五月丨中国一级毛片黄丨国产女人十八毛片丨国产色视频在线播放丨国产亚洲精久久久久久无码苍井空丨天天摸日日摸爽爽狠狠丨久久综合香蕉国产蜜臀av

xueli521
生而無畏學至終章
級別: 探索解密
精華主題: 0
發帖數量: 76 個
工控威望: 158 點
下載積分: 10474 分
在線時間: 37(小時)
注冊時間: 2019-07-22
最后登錄: 2022-01-11
查看xueli521的 主題 / 回貼
樓主  發表于: 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
fjqz00
級別: 論壇先鋒
精華主題: 1 篇
發帖數量: 1234 個
工控威望: 1467 點
下載積分: 8016 分
在線時間: 375(小時)
注冊時間: 2007-04-16
最后登錄: 2025-12-04
查看fjqz00的 主題 / 回貼
1樓  發表于: 2019-11-04 17:46
在 DELAY(1000)與 if b==true then之間,再加一句  GetData(b,"HMI",LB,3,1) 應該就可以了。
要不然你的b一直不會刷新,那么while就出不來了
海你好咸
級別: 略有小成
精華主題: 0
發帖數量: 315 個
工控威望: 395 點
下載積分: 2785 分
在線時間: 210(小時)
注冊時間: 2018-12-22
最后登錄: 2025-10-15
查看海你好咸的 主題 / 回貼
2樓  發表于: 2019-11-05 15:10
如樓上所說,在while語句中間加“GetData(a,"HMI",LB,2,1),GetData(b,"HMI",LB,3,1)”讓“a,b”保持刷新即可

while (a == true and b == false)
~~~
GetData(a,"HMI",LB,2,1)
GetData(b,"HMI",LB,3,1)
~~~
wend
ren1823
級別: 工控俠客
精華主題: 0
發帖數量: 363 個
工控威望: 3034 點
下載積分: 4469 分
在線時間: 520(小時)
注冊時間: 2019-08-01
最后登錄: 2025-12-08
查看ren1823的 主題 / 回貼
3樓  發表于: 2019-11-05 17:02
閃爍周期執行就可以了,沒必要while
xueli521
生而無畏學至終章
級別: 探索解密
精華主題: 0
發帖數量: 76 個
工控威望: 158 點
下載積分: 10474 分
在線時間: 37(小時)
注冊時間: 2019-07-22
最后登錄: 2022-01-11
查看xueli521的 主題 / 回貼
4樓  發表于: 2019-11-09 12:45
引用
引用第1樓fjqz00于2019-11-04 17:46發表的  :
在 DELAY(1000)與 if b==true then之間,再加一句  GetData(b,"HMI",LB,3,1) 應該就可以了。
要不然你的b一直不會刷新,那么while就出不來了

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