回复:PLC中的32位指针寻址困惑

已锁定

冬日

  • 帖子

    3360
  • 精华

    56
  • 被关注

    45

论坛等级:奇侠

注册时间:2005-09-01

白金 白金 如何晋级?

发布于 2021-06-09 22:52:18

13楼

展开查看
以下是引用大魔王111在2021-06-08 09:26:33的发言 >9楼

感谢你的热心帮助,只是目前资源有限,有些不懂的地方,周围没有人解惑。

比如贴中所示:


为什么整数100,用32位指针表示,需要左移3位,得到P#100.0,但为什么整数320,转化位指针的时候,不需要再左移3位,得到了P#40.0,


现在的困惑在于,整数转化为32位指针的时候,什么时候,需要左移3位,什么时候不需要。我问了一些人,都不甚了解。

以下是引用幸福的小石头在2021-06-08 02:51:43的发言 >8楼:前几年学STL时候...

引用8楼详细内容:

前几年学STL时候,也是很迷惑过这个问题,其实,弄STL,你得先看看基础知识,不能自己硬搞,毕竟这个地方都是根据规则来的,以现在仅仅是对为什么左移有疑问,到时候你还会遇到Any和Pointer类型拆分的疑问,会迷惑于为什么要拆分那么细,然后各个部分比较,其实都是基础知识,仔细看一下规则和定义即可,另外,你得转换一下思路,将十进制的思路,转换到二进制来,如32位寻址,你得仔细看人家介绍的每个字,尤其是,32位怎么划分的区域,每个区域表示什么



左移只是过程,不是目的,目的是得到正确的值。

比如下面的eg1,写成这样效果是一样的

L         L#800            //Accu0装入32位整形100
//SLD         3               //左移3位
T        LDO                //LDO得到P#100.0指针常数


eg1

********************************************************
L         L#100            //Accu0装入32位整形100
SLD         3               //左移3位
T        LDO                //LDO得到P#100.0指针常数

********************************************************

这个eg2,写成这样效果也是一样的:

L            40                   //320转换指针为P#40.0并装载到MD28中。

L 8(或者SLD 3)

*I
T         MD28


eg2

********************************************************
L            320                   //320转换指针为P#40.0并装载到MD28中。
T         MD28

********************************************************


If anything can go wrong, it will.
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54619条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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