圖片:
之前提過(guò)一個(gè)問(wèn)題,就是讓操作者自行輸入一個(gè)點(diǎn)進(jìn)行監(jiān)控,達(dá)到設(shè)備排查故障時(shí)同畫面可以監(jiān)控必要的輸入輸出點(diǎn)的問(wèn)題
后來(lái)一位大哥提點(diǎn)了一下用宏指令,最近閑余的時(shí)候研究了一下,做了一個(gè)點(diǎn)實(shí)驗(yàn),功能上基本能完成
但是用PC連接PLC在線模擬的時(shí)候發(fā)現(xiàn)問(wèn)題
第一個(gè)版本是用的select case 的方式選擇輸出,由于點(diǎn)太多的話語(yǔ)句太復(fù)雜,只做了少量的點(diǎn)。直接關(guān)聯(lián)PLC輸入的指示燈和宏指令管來(lái)的指示燈都可以迅速反應(yīng)。
第二個(gè)版本用的數(shù)組的方式,由于語(yǔ)句比較簡(jiǎn)單,所以添加了64個(gè)點(diǎn),這時(shí)問(wèn)題就來(lái)了。宏指令關(guān)聯(lián)的指示燈對(duì)比直接關(guān)聯(lián)PLC的指示燈慢0.5-1秒的樣子。這是什么原因呢?
請(qǐng)各位大神指導(dǎo)指導(dǎo)
附上第二版本的指令
macro_command main()
char X1scan = 0
bool Xstate[64]
char i = 0
bool Xled = 0
GetData(X1scan, "Local HMI", LW, 0, 1)
GetData(Xstate[0], "Mitsubishi FX3U/FX3G/FX3GA", X, 0, 64)
i = X1scan
Xled = Xstate
SetData(Xled, "Local HMI", LB, 0, 1)
end macro_command