回复:指针程序问题

老学童

  • 帖子

    765
  • 精华

    32
  • 被关注

    65

论坛等级:奇侠

注册时间:2011-06-22

普通 普通 如何晋级?

发布于 2013-09-19 09:17:48

3楼

纯粹从英文字面上理解‘AcutalDateTime’数据的类型应该是DT(DATE_AND_TIME),那么它的数据由8个字节组成,用十六进制的值表示十进制的数,例如:B#16#12 = 12 (十进制)
下面西门子关于DT手册下载地址:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0019
L LD 12
L P#1.0
+D
T LD 12
L P##AcutalDateTime //取DT数据(实际日期)的指针
LAR1 //将DT数据(实际日期)的指针存入地址寄存器1
L 40
T LD12
L LD [AR1,P#0.0] //将DT数据前4个字节读入累加器1
T DID [LD 12] //存入背景数据块DID40
SRD 16 //将累加器1中的DT数据前4个字节右移16位(剩下后2个字节,小时和日,过滤掉月和年)
L P#576.7(重点不理解) //P#576.7 = 00010010 00000111 = B#16#12和B#16#7 (7日12时)
L LD 12
L P#4.0
+D
T LD 12
哈哈,这里P#576.7的确有点蒙人哪,主要是为了表示一个32位数用了另一种手段,也算经典手段之一吧!可能表示成DW#16#1207更好一些,反正是个常数,否则,程序可读性变差,不知道作者是怎么想的!
人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54699条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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