STEP7中用STL编写程序的时候,对SET的用法理解不够,帮忙看看下。
刘玉蓉
发布于2014-11-05 17:34
2368
0
标签:
SET
= DB1.DBX0.1
和
SET
S DB1.DBX0.1
有什么区别?
自己感觉没什么区别,结果都是DB1.DBX0.1为1,大家点拨下,这2种写法有什么不一样?对结果有什么改变没。
佳答案
首先,就你所说的这两段代码来讲,DB1.DBX0.1都为1,所产生的结果都是一样的,对结果没有区别。但是我想还是着重从两个方面理解一下这一块的知识:
1.SET,作用是将RLO无条件置位1,也就是无条件将RLO=1.
2.再就是对S(置位指令)和=(赋值指令)的区别进行理解。
置位(S):如果前一条指令将RLO置为1,那么S指令将寻址触点或线圈的信号状态置1.
赋值(=):与RLO的状态无关,=指令把逻辑操作结果的值赋给其寻址单元(触点或线圈).
分析两段代码:
SET //将RLO置为1
= DB1.DBX0.1 //将逻辑操作结果RLO的值赋DB1.DBX0.1
SET //将RLO置为1
S DB1.DBX0.1 //因为上一条指令RLO=1所以将
//DB1.DBX0.1置为1
如果单单得到DB1.DBX0.1的结果,那么没有区别,都是1;但是真正是如何得到的这个1,和表示的意义的话,还是有区别的。就SET而言很好理解,就是无条件将RLO=1。
以上结论根据《S7-300.400语句表编程参考手册》5.7~5.9节