WINCC 上升沿取反
劉玉蓉
發(fā)布于2014-12-12 17:21
7
0
標(biāo)簽:
一、如題,有一個(gè)按鈕(這個(gè)按鈕為按1松0),次按下上升沿時(shí),a=1;再按一次上升沿時(shí),a=0;第三次按下上升沿時(shí),a=1······反復(fù)不斷
二、當(dāng)這個(gè)按鈕變?yōu)槟硞€(gè)變量b時(shí),即系統(tǒng)檢測(cè)到有b的上升沿時(shí),均取反a的狀態(tài)(b、a均為bool型)······不斷
這個(gè)功能的實(shí)現(xiàn)為多地控制一個(gè)燈,任何一個(gè)地方都可以對(duì)燈開或關(guān)(比如一樓開燈、到達(dá)五十樓后關(guān)燈)
請(qǐng)指點(diǎn)以上兩種情況下簡(jiǎn)單的方法!
問(wèn)題補(bǔ)充:
可否有鏈接或關(guān)鍵詞,我找不到!
佳答案
一、按鈕用c腳本:SetTagBit("tag",!GetTagBit("tag"));每次給變量取反
二、全局腳本,用vbs腳本,執(zhí)行周期1s:
定義一個(gè)wincc內(nèi)部變量(如果wincc要退出的話建議你用外部變量)保存變量的上一個(gè)周期的狀態(tài),tag:觸發(fā)變量,tag_sav,上一個(gè)周期的狀態(tài)。
dim tag(2)
tag(0)=hmiruntime.tags("tag").read
tag(1)=hmiruntime.tags("tag_sav").read
tag(2)=hmiruntime.tags("tag1").read
if tag(0)=1 and tag(1)=0 then
if tag(2)=0 then
hmiruntime.tags("tag1").write 1
else hmiruntime.tags("tag1").write 0
end if
end if
hmiruntime.tags("tag_sav").write tag(0)