回复:应用探讨——西门子指针编程使用探讨

火麒麟

西门子1847工业学习平台

  • 帖子

    571
  • 精华

    18
  • 被关注

    20

论坛等级:侠圣

注册时间:2006-09-21

普通 普通 如何晋级?

发布于 2011-11-30 11:58:43

15楼

FB里IN_OUT参数为复杂数据类型时寻址
STE7 V5.5编程手册第27.3.4.8节: FB的IN_OUT参数
当FB的IN_OUT参数为复杂数据类型时,比如ARRAY、STRUCT、UDT等,实际传送的是变量的地址,由6字节的Pointer类型来表示:
如下图,FB2中有2个IN_OUT变量,FB2的背景数据块为DB5



现在打开背景数据块DB5,如下图:



我们可以看到,在背景数据块中,ARRAY类型的变量是用6个字节的POINTER指针形式来表示的,这与基本数据类型不同,所以如果试图在程序中对其赋值,肯定是错误的
现在我们在OB1中调用FB2,并赋给实际地址:





运行仿真后,我们在变量表中观察背景数据块中DB5中的地址



可以清晰的看到其中所存的地址和DB块号信息,从而在程序中可以这么处理:



如果是在多重背景FB里编写程序,只需要在头一句后加上下面2句即可:
TAR2
+AR1
业精于勤,行成于思
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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