回复:关于ANY指针应用的几个疑问?

xkqxwhz

  • 帖子

    1178
  • 精华

    10
  • 被关注

    40

论坛等级:奇侠

注册时间:2009-03-26

普通 普通 如何晋级?

发布于 2014-06-09 18:52:06

6楼

展开查看
以下是引用Automann在2014-06-09 07:15:33的发言 >3楼:程序没有问题。为了帮助大家理解,给出了ANY指针的结构图。


程序中ANY的第一个字表示数据类型为字节,第2个字表示字节数为12,第3个字表示不是DB,第
4个字表示I区。因为起始地址(iDriveBaseINAddress)是字节地址(图中用16个b表示),需要将它左移3位,相当于乘以8(一个字节8位),作为间接寻址的指针的基础,再用OD指令叠加上指针最高字节的地址区信息16#81。
ANY用的是I区,不是PI区。
假设I区的起始地址(iDriveBaseINAddress)为X,SFC20的输入参数(ANY)的实际地址为P#IX.0 BYTE 12。
当然也可以在调用SFC20时直接写P#IX.0 BYTE 12,不过老外这种模板的优点是通用,灵活。但是要看懂程序的门槛比较高。
如果没有接触过ANY的内部结构,建议找有例程的书来看看(例如《S7-300/400 PLC应用技术》第3版P165)。
谢谢老师的指点,ANY指针的程序我倒是看明白了,知道它是指向的I地址区的12个字节,我不明白的是它指向的地址区是从站伺服控制器的地址区,这个地址区不是属于外部地址吗?难道可以把它当成映像区的地址使用吗?所以有点糊涂还望老师多指点,谢谢!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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