寻求P#寻址学习资料
刘玉蓉
发布于2014-10-08 17:41
17
0
标签:
比如关于高速计数模块的应用:
方法1
L 272 //高速计数模块硬件里I/O的起始地址
T DB2.DBW6 //高速计数模块地址设置
L P#272.0
T DB2.DBD8 //高速计数模块通道设置
方法2
L W#16#110
T DB2.DB6
L DW#16#880
T DB2.DBD8
方法1和方法2后的结果都是一样的,因为高速计数模块(FM350-1)是8通道(以字为单位),所以DBD8里的内容是DBW6的8倍,终需要的是以16进制的方式。在方法1中,L P#272.0 载入到累加器1中就是880了(16进制),在这个地方我想了好长时间,P#272.0没有标记该地址是I?M?Q? L?类型的,这个地方到底是怎么定义的(后面的程序中没有定义该类型到底是什么)?第二这个P#272.0载入到累加器1中是880,说白了这个十六进制的880终计算方式还是二进制的,如果把880转二进制的,该二进制该怎么和P#272.0进行高低位排列的?? 第三这个P#272.0应该算是起始地址,那么它到底包含多少个位或字节呢?
我一直是自学的散游人士,大侠能否给小弟提供个 只针对于P#的寻址方式的讲解呢?
图片说明: 1,西门子资料中的FM350-1例子程序
佳答案
P#x.y是属于不包含存储区域的内部32位地址指针,第19位~第31位为9,x是字节地址(第3位~第18位),y是位地址(第0位~第2位),P#x.y=x*8+y,P#272.0=272*8+0=880H(16进制),详见图片
若有收获,就点个赞吧!
文章来源于网络及文献如有侵权请联系站长
分享到:
微信扫一扫分享
阅读与本文标签相同的文章