高手西门子300热电阻热电偶模拟采集程序SCL编程求解释或转换成FBD功能或LAD梯形图,急!

L     #IN
      ITD   
      DTR   
      L     #FACTOR
      *R    
      L     #OFFSET
      +R    
      T     #OUT

      L     #IN                         // if(IN_REAL<K1)
      L     #LO_LIM                     //   .
      >=I                               //   .
      JC    EL02                        // {
//   error
      S     #RET_VAL                    //     .
      L     0                           //     ACC1=LO_LIM
      T     #OUT                        //   OUT=ACC1
      JU    FAIL                        //   error
EL02: POP                               // } else {
      L     #HI_LIM                     //   if(IN_REAL>K2)
      <=I                               //     .

      JC    EI04                        //   {
//     error
      S     #RET_VAL                    //       .
      L     #HI_LIM                     //       ACC1=HI_LIM
      T     #OUT                        //     OUT=ACC1
      JU    FAIL                        //     error
EI04: NOP   0                           //   }
      NOP   0                           // }


// set BR bit : no error-set BR bit to 1; with error-set BR bit to 0.

// return error code 0
      R     #RET_VAL
      SET                               // RLO = 1 (NO ERROR)
      JU    SVBR                        // 
FAIL: CLR                               // RLO = 0 (ERROR)
SVBR: SAVE                              // BR = RLO

最佳答案

L     #IN
      ITD    ------------整数转双整数
      DTR   -----------双整数转实数
      L     #FACTOR
      *R    
      L     #OFFSET
      +R    
      T     #OUT
这段是#OUT=#IN*#FACTOR(系数)+#OFFSET(偏差),通过系数和偏差的设定,可以调节你的输出值。
下面的程序是判断输入值并报警的。
   L     #IN                        
      L     #LO_LIM    低限制                 .
      >=I                                 .
      JC    EL02           若输入>=低限制,则跳转至EL02,不满足则向下执行           
//   error
      S     #RET_VAL       若输入<低限制,则置位 #RET_VAL  .
      L     0                         
      T     #OUT                若输入<低限制,则输出为0       
      JU    FAIL                 跳转到FAIL      
EL02: POP  
      L     #HI_LIM     高限制  
      <=I                                 .
      JC    EI04          若输入<=高限制,则跳转至EL04,不满足则向下执行
//     error
      S     #RET_VAL          .若输入>低限制,则置位 #RET_VAL
      L     #HI_LIM                    
      T     #OUT                    若输入>低限制,则输出为0 
      JU    FAIL                     跳转到FAIL    
EI04: NOP   0                      
      NOP   0                       

      R     #RET_VAL       若输入>=低限制且输入<=高限制,输入数据正常,复位#RET_VAL
      SET                              置位RLO = 1 (NO ERROR)
      JU    SVBR                      跳转到SVBR
FAIL: CLR                            复位RLO = 0 (ERROR)
SVBR: SAVE                    BR = RLO,当正常时你的块监视为绿色,有超范围时块为虚线

提问者对于答案的评价:
解释很到位,谢谢!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc238799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午6:12
下一篇 2018年12月1日 下午6:12

相关推荐