热门搜索:
个人感觉好像用R、S复杂一些,要考虑条件,经常出现R和S条件同时满足的情况,导致控制出问题。
答:采用赋值(=)还是R/S S/R要根据实际情况来确定的, R S指令能实现的功能,赋值(=)指令不一定可以实现,而赋值指令能实现的功能就一定可以用 R S指令来做到。
然而如果用 R S指令来替代赋值指令功能,则会导致程序指令数量大幅增加,使得简单程序变得复杂,程序变得很冗长,也无形中加长了循环周期时长,对小程序来说影响不大,但对于复杂的大型程序来说这是不可取的,程序越精简,执行就越,用无谓的语句来使程序变复杂是编程的忌讳。就如楼上所举的例子,用赋值指令二条语句就能完成的,用R、S指令就至少需要4条指令。
“经常出现R和S条件同时满足的情况,导致控制出问题。”这就要看你的实际需要来选择R/S(置位)还是S/R(复位)了,选择R/S当条件同时满足时结果是1(置位),而选择S/R则当条件同时满足时结果为0(复位)。明白了这一点,就不会导致控制出问题了。
赋值指令和S R指令无所谓哪一个好,要根据你的程序所需来确定。编程的原则是越简单越好,千万不要简单语句复杂化。
你需要了解r,s以及线圈的功能。线圈的功能就是保持线圈的值和状态位一致,r是状态为1复位输出,s状态为1置位输出。r,s可以保持输出状态状态,知道下一个指令改变输出值。
如果你用
A M0.0
S Q0.1
AN M0.0
R Q0.1
那么和
A M0.0
=Q0.1
的结果是一样的。
为了不让他们同时满足,你需要加跳转指令。