SIMATIC西门子授权代理商丨沧州市西门子变频器一级代理
- 供应商
- 上海跃韦科技集团有限公司
- 认证
- 西门子
- 西门子变频器总代理
- 西门子变频器
- 西门子变频器总代理商
- 德国
- 西门子变频器一级总代理
- 联系电话
- 18674345958
- 手机号
- 18674345958
- 经理
- 李经理
- 所在地
- 上海跃韦科技集团有限公司
- 更新时间
- 2024-11-14 07:00
西门子step7在使用stl指令编程时,状态位的状态极其重要,有些指令的执行与状态位有关,比如“位逻辑指令a”,而大部分指令的执行却与状态位无关,比如“装载指令l”。对于刚刚接触step7的朋友们来说很难理解。
指令的执行与状态位有关的指令有如下:
位逻辑指令、定时器指令、计数器指令;
这些指令在执行前,状态位的相关位的状态会影响到执行结果,比如如下程序:
a m 0.0
cu c 0//m0.0有上升沿时,计数器c0就加1
a m 0.1
l c#5
s c 0
a m 0.2
r c 0
a c 0
= m 0.7
如果将以上程序改为如下程序,则结果完全不同:
a m 0.0
clr
cu c 0//m0.0有上升沿时,因为有了clr指令将状态位rlo位置0,所以计数器c0不在计数
l c#5
指令的执行与状态位有关的指令有如下:
无论状态位是什么状态,这些指令在每个扫描周期都会被执行,因此,在指令前加位逻辑限制条件没有用。比如:l指令,无论l指令执行之前是什么位逻辑指令,在每个扫描周期l指令都会被执行,只有在l指令前加跳转指令,才会不被执行。比如如下指令:
l mw0 //装载mw0的数据到accu1-l中,每个扫描中期都会执行
t mw10 //将accu-l中的数据输出到mw10,每个扫描中期都会执行
如果将以上程序改为如下:
a m100.0
clr
l mw0 //装载mw0的数据到accu1-l中,无论m100.0状态如何,均会执行
t mw10 //将accu-l中的数据输出到mw10,无论m100.0状态如何,均会执行
因此,无论m100.0状态如何,l mw0和tmw10始终都会执行。
如果不想让l mw0和t mw10指令执行,则应该改为如下:
a m100.0 //
jc _001 //当m100.0为1时,程序跳转到_001处;如果m100.0为0时,往下执行
l mw0 //装载mw0的数据到accu1-l中,当m100.0为1时不执行
t mw10 //将accu-l中的数据输出到mw10,当m100.0为1时不执行
_001: bld 0 //程序跳转到此处继续执行