回复:帮忙解释下面程序段的意思。

Barret.Ma

  • 帖子

    8
  • 精华

    0
  • 被关注

    13

论坛等级:游民

注册时间:2016-12-28

普通 普通 如何晋级?

发布于 2017-01-05 09:08:21

8楼

 想请教这段程序是如何将DB3里面的所有PIW读出来的,是如何读的,然后是怎么讲读出来的参数放进DB4里面的。请详细讲解。

谢谢!




   L     #DB_SCALE                                                //3
      T     #DB_SCALE_TEMP                                 //DB3
      L     #DB_RESULT                                            //4
      T     #DB_RESULT_TEMP                               //DB4,区别DB,使用DI4
      OPN   DB [#DB_SCALE_TEMP]                     //打开DB3
      OPN   DI [#DB_RESULT_TEMP]                    //打开DI4



      L     P#DBX 0.0                                                 //地址寄存器AR1,P#DB3.DBX0.0
      LAR1 
      L     P#DIX 0.0                                                  //地址寄存器AR2,P#DI4.DIX0.0
      LAR2 

      L     #START_ADD                                          //128
      SLD   3                                                             //左移3位,变指针格式
      T     #ADD                                                        


      L     #COUNT                                                    //循环数34
NEXT: T     #COUNT_TEMP

      L     DBD [AR1,P#0.0]                                      //DB3.DBD0给到#HI_LIM
      T     #HI_LIM
      L     DBD [AR1,P#4.0]                                       //DB3.DBD4给到#LOW_LIM
      T     #LOW_LIM
      A     DBX [AR1,P#8.0]                                      //DB3.DBX8.0
      =     #BIPOLAR

      L     PIW [#ADD]                                               //PIW128    硬件组态里边去看对应的模拟量
      T     #INPUT

      CALL  "SCALE"                                                 //上边各种赋值在这里的应用
       IN     :=#INPUT
       HI_LIM :=#HI_LIM
       LO_LIM :=#LOW_LIM
       BIPOLAR:=#BIPOLAR
       RET_VAL:=#RET_RE
       OUT    :=#OUTPUT


      L     #OUTPUT                     // the result will be saved on the DB_RESULT
      T     DID [AR2,P#0.0]           //DB4.DBD0
      L     #RET_RE                     // the state word will be saved on the DB_RESULT
      T     DIW [AR2,P#4.0]         //DB4.DBW4

      L     #ADD                        // outside input address will be accusumed and saved in the temp val
      L     P#2.0                       
      +D   
      T     #ADD                     // //P#130    循环开始前的赋值工作

      +AR1  P#10.0                      //Address offset accumulation for input   新的AR1, P#DB3.DBX10.0
      +AR2  P#6.0                       //Address offset accumulation for output  新的AR2,   P#DI4.DIX6.0

      L     #COUNT_TEMP                 // cyclely get the values          34次循环开始
      LOOP  NEXT                        // cyclely get the values
      BEU  

 

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54619条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。