個(gè)人感覺(jué)好像用R、S更復(fù)雜一些,要考慮條件,經(jīng)常出現(xiàn)R和S條件同時(shí)滿足的情況,導(dǎo)致控制出問(wèn)題。
答:采用賦值(=)還是R/S S/R要根據(jù)實(shí)際情況來(lái)確定的, R S指令能實(shí)現(xiàn)的功能,賦值(=)指令不一定可以實(shí)現(xiàn),而賦值指令能實(shí)現(xiàn)的功能就一定可以用 R S指令來(lái)做到。
然而如果用 R S指令來(lái)替代賦值指令功能,則會(huì)導(dǎo)致程序指令數(shù)量大幅增加,使得簡(jiǎn)單程序變得更復(fù)雜,程序變得很冗長(zhǎng),也無(wú)形中加長(zhǎng)了循環(huán)周期時(shí)長(zhǎng),對(duì)小程序來(lái)說(shuō)影響不大,但對(duì)于復(fù)雜的大型程序來(lái)說(shuō)這是不可取的,程序越精簡(jiǎn),執(zhí)行就越精準(zhǔn),用無(wú)謂的語(yǔ)句來(lái)使程序變復(fù)雜是編程的忌諱。就如樓上所舉的例子,用賦值指令二條語(yǔ)句就能完成的,用R、S指令就至少需要4條指令。
“經(jīng)常出現(xiàn)R和S條件同時(shí)滿足的情況,導(dǎo)致控制出問(wèn)題?!边@就要看你的實(shí)際需要來(lái)選擇R/S(置位優(yōu)先)還是S/R(復(fù)位優(yōu)先)了,選擇R/S當(dāng)條件同時(shí)滿足時(shí)結(jié)果是1(置位),而選擇S/R則當(dāng)條件同時(shí)滿足時(shí)結(jié)果為0(復(fù)位)。明白了這一點(diǎn),就不會(huì)導(dǎo)致控制出問(wèn)題了。
賦值指令和S R指令無(wú)所謂哪一個(gè)更好,要根據(jù)你的程序所需來(lái)確定。編程的原則是越簡(jiǎn)單越好,千萬(wàn)不要簡(jiǎn)單語(yǔ)句復(fù)雜化。
你需要了解r,s以及線圈的功能。線圈的功能就是保持線圈的值和狀態(tài)位一致,r是狀態(tài)為1復(fù)位輸出,s狀態(tài)為1置位輸出。r,s可以保持輸出狀態(tài)狀態(tài),知道下一個(gè)指令改變輸出值。
如果你用
A M0.0
S Q0.1
AN M0.0
R Q0.1
那么和
A M0.0
=Q0.1
的結(jié)果是一樣的。
為了不讓他們同時(shí)滿足,你需要加跳轉(zhuǎn)指令。










