POINTER数据类型指针.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
POINTER数据类型指针

AD AS CS2 FA Systems Support AD CS2 FA 崔坚 SIMATIC Technical Consulting Page * 2007 8月 寻址方式 直接寻址 存储区地址指针 寄存器间接寻址 POINTER数据类型指针 ANY数据类型指针 FB块形参的编程 POINTER数据类型指针 POINTER数据类型指针用于向被调用的函数FC及函数块FB传递复合数据类型(如ARRAY、STRUCT及DT等)的实参。在被调用的函数FC及函数块FB内部可以间接访问实参的存储器。 在参数里传递的指针不能直接用于存储器间接寻址。 用于存储器间接寻址而传递的指针,在访问之前必须拷贝到临时变量里。 POINTER指针占用48位地址空间,数据格式如下: POINTER数据类型指针 POINTER指针数据区的表示 : POINTER数据类型指针 POINTER数据类型指针 16进制代码 数据区 简单描述 B#16#81 I 输入区 B#16#82 Q 输出区 B#16#83 M 标志位 B#16#84 DB 数据块 B#16#85 DI 背景数据块 B#16#86 L 区域数据区 B#16#87 V 上一级赋值的区域数据 POINTER数据类型指针表示方法,例如: P# DB2.DBX12.0 //指向DB2.DBX12.0。 P#M12.1 //指向M12.1。 也可以选择使用地址声明或符号名(不使用符号P#)的方式进行赋值,例如: DB2.DBX12.0 //指向DB2.DBX12.0。 M12.1 //指向M12.1。 POINTER数据类型指针 POINTER数据类型指针使用示例 编写一个计算功能的函数FC3,输入首地址“In_Data”及连续浮点格式变量的个数“NO”后,输出几个变量的平均值“OUT_VAL”。OB1中调用函数FC3的程序如下: CALL FC 3 // 调用函数3。 In_Data:=P#M 100.0 //输入的首地址。 NO :=4 //变量的个数。 OUT_VAL:=MD20 //计算结果。 完成的计算功能相当于MD20:=(MD100+MD104+MD108+MD112)/4 数据接口 名称 数据类型 地址 IN In_Data Pointer IN NO INT OUT OUT_VAL REAL TEMP BLOCK_NO INT 0.0 TEMP NO_TEMP INT 2.0 TEMP ADD_TEMP REAL 4.0 FC3接口参数 POINTER数据类型指针 POINTER数据类型指针使用示例 L 0 //初始化临时变量#ADD_TEMP。 T #ADD_TEMP L P##In_Data //指向存储地址指针P#M100.0的首地 址,并装载到地址寄存器AR1中。 LAR1 L 0 //判断OB1中赋值的地址指针是否为数 据块(参考POINTER的数据格式)。 L W [AR1,P#0.0] ==I JC M1 T #BLOCK_NO OPN DB [#BLOCK_NO] //如果是DB块,打开指定的DB块。 M1: L D [AR1,P#2.0] //找出需要计算数据区的开始地址, POINTER数据中,后4个字节包含内部 交叉指针,将P#M100.0装载到AR1中。 LAR1 L 0 L #NO //如果输入变量个数为0,结束FC3的 执行。如果不等于0作为循环执 ==I 行的次数(NO_TEMP)。 JC END

文档评论(0)

2752433145 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档