您好!欢迎光临工博士商城

西门子工控专卖

   产品:7670    

咨询热线:18500649881

QQ QQ
您当前的位置:首页 » 新闻中心 » 西门子STEP 7在使用STL指令编程时,哪些指令执行与状态位无关
产品分类
新闻中心
西门子STEP 7在使用STL指令编程时,哪些指令执行与状态位无关
发布时间:2017-12-24        浏览次数:635        返回列表
        西门子STEP 7在使用STL指令编程时,状态位的状态极其重要,有些指令的执行与状态位有关,比如“位逻辑指令A”,而大部分指令的执行却与状态位无关,比如“装载指令L”。对于刚刚接触STEP 7的朋友们来说很难理解。
 
       指令的执行与状态位有关的指令有如下:

       位逻辑指令、定时器指令、计数器指令
 
       这些指令在执行前,状态位的相关位的状态会影响到执行结果,比如如下程序:
      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不在计数
      A     M      0.1
      L     C#5
      S     C      0
      A     M      0.2
      R     C      0
      A     C      0
      =     M      0.7
 
       指令的执行与状态位有关的指令有如下:

       转换指令、数据块指令、逻辑控制指令、整数运算指令、浮点型数学运算指令、转载与传送指令、程序控制指令、移位和循环指令、字逻辑指令、累加器指令。、
 
       无论状态位是什么状态,这些指令在每个扫描周期都会被执行,因此,在指令前加位逻辑限制条件没有用。比如: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和T MW10始终都会执行。
 
       如果不想让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  //程序跳转到此处继续执行
 



 

联系热线:18500649881   联系人:王芯蕊 联系地址:北京市朝阳区东土城路4号3幢4层

技术和报价服务:星期一至星期六8:00-22:00 西门子工控专卖