STEP7中用STL编写程序的时候,对SET的用法理解不够,帮忙看看下。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STEP7中用STL编写程序的时候,对SET 的用法理解不够,帮忙看看下。

SET

=DB1.DBX0.1

SET

SDB1.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

SDB1.DBX0.1//因为上一条指令RLO=1所以将

//DB1.DBX0.1置为1

如果单单得到DB1.DBX0.1的结果,那么没有区别,都是1;但是真正是如何得到的这个1,和表示的意义的话,还是有区别的。就SET而言很好理解,就是无条件将RLO=1。

以上结论根据《S7-300.400语句表编程参考手册》5.7~5.9节

相关文档
最新文档