上海跃韦科技集团有限公司
西门子PLC.西门子变频器 , 西门子电机.西门子触摸屏.西门子电缆.西门子变压器.西门子高压变频器。
SIMATIC西门子授权代理商丨沧州市西门子变频器一级代理
观看SIMATIC西门子授权代理商丨沧州市西门子变频器一级代理视频:

西门子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不在计数

      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和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  //程序跳转到此处继续执行


展开全文
相关产品
拨打电话 微信咨询 发送询价