按照手册里写的方法,创建了UDT格式的数据块 DB1 和DB2,分别为俩通道。
再给DB1 和DB2分配模块地址和通道地址。当前模块的地址为512。
给DB1的模块地址赋值:
L 512
T “通道1”.MOD_ADR
给DB1的通道地址赋值:
L P#512.0
T "通道1".CH_ADR
我在DB块里监控 实际的通道地址为16#1000。
请问下这个P#512.0 跟这个16#1000是怎么关联的?
最佳答案
P#512.0 是一个32 位的指针常数。
先说前面 512(十)=2#0000 0000 0000 0000 0000 0010 0000 0000
P#512.0 这个指针常数就是将上面的二进制数左移3位,则得到
P#512.0 = 2#0000 0000 0000 0000 0001 0000 0000 0000
将上面的二进制码转换为十六进制,从最右边数,每四位对应一位十六进制位
则得:
P#512.0= 16#00001000,去除前导0 ,则为 16#1000
可参考下面手册,子解指针结构。如图示的内容
https://support.industry.siemens.com/cs/document/79632832
图片说明:
提问者对于答案的评价:
谢谢您。我懂了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc284500.html