技术论坛

一段数据转移程序,请大神们解释一下

作者 主题
游士

经验值: 154
发帖数: 14
精华帖: 0
主题:【求助】一段数据转移程序,请大神们解释一下


只看楼主 楼主 2017-10-12 08:46:55

 

 

 

 

 

 

 

 

 

    L     W#16#1002
      T     LW     0
      L     #Length
      T     LW     2
      L     #Source_DB_Num
      T     LW     4
      L     #Source_start_adr
      SLD   3
      T     LD     6
      L     B#16#84
      T     LB     6

 

      L     W#16#1002
      T     LW    10
      L     #Length
      T     LW    12
      L     #Dest_DB_Num
      T     LW    14
      L     #Dest_start_adr
      SLD   3
      T     LD    16
      L     B#16#84
      T     LB    16


      CALL  "BLKMOV"
       SRCBLK :=#INT_POINTER1
       RET_VAL:=#Return_Value
       DSTBLK :=#INT_POINTER2

 

 

 

 

 

 

 

 

这是公司员工编写的一段用于把约定长度的数据从一个DB块转移到另一个DB块,看不懂这个程序的思路以及实现功能的原理。请大神们解释下。


没有个性,不需要签名!
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1429719&b_id=4&b_sid=0&s_id=23&num=3&myreply=1

至圣

经验值: 19840
发帖数: 8834
精华帖: 39
回复:一段数据转移程序,请大神们解释一下


只看楼主 1楼 2017-10-12 09:16:10

就是根据ANY数据类型的结构,把源地址和目标地址 分解后放入INT_POINTER1和INT_POINTER2的各个部分中。

可以查看编程手册中any类型的结构


 
以下网友喜欢您的帖子:

  
至圣

经验值: 17406
发帖数: 1003
精华帖: 1
回复:一段数据转移程序,请大神们解释一下
推荐帖


只看楼主 2楼 2017-10-12 10:35:26

首先,这个是利用ANY指针的一段程序,LB0开始的10字节和LB10开始的10字节分别代表了一个来源的指针和一个目标地址的指针,然后用到了SFC20

      L     W#16#1002
      T     LW     0       //数据的格式是以字节位单位
      L     #Length
      T     LW     2       //数据的长度
      L     #Source_DB_Num
      T     LW     4       //DB块的号
      L     #Source_start_adr   //数据开始的地址
      SLD   3
      T     LD     6            //去除位地址的干扰,可能#Source_start_adr是一个直接的数字   

      L     B#16#84      
      T     LB     6            //这段的目的是因为DB块开始的指针结构是DW#16#84*******开始的 

ANY指针的结构:





一个人在战斗
以下网友喜欢您的帖子:

  
游民

经验值: 66
发帖数: 15
精华帖: 0
回复:一段数据转移程序,请大神们解释一下


只看楼主 3楼 2017-10-12 14:05:49

需要对指针比较熟悉才能看懂


随便写上点
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
一段数据转移程序,请大神们解释一下
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。