西门子LC指针编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ANY数据类型指针使用示例 ANY数据类型指针 L 0 //初始化临时变量#ADD_TEMP。 T #ADD_TEMP L P##In_Date //指向存储地址指针In_Date首地址,并 LAR1 装载到地址寄存器AR1中。 L B [AR1,P#1.0] //如果数据类型不是REAL,跳转到END。 L B#16#8 D JC END L 0 L W [AR1,P#4.0] //判断OB1中赋值的地址指针是否为数据 ==I 块(参考 ANY的数据格式)。 JC M1 T #BLOCK_NO OPN DB [#BLOCK_NO] //如果是DB块,打开指定的DB块。 M1: L W [AR1,P#2.0] //判断ANY指针中数据长度,本例中为 T #DATA_LEN REAL变量的个数。 L D [AR1,P#6.0] //找出需要计算数据区的开始地址,本例 中为DB1.DBX0.0。 LAR1 ANY数据类型指针使用示例 ANY数据类型指针 L #DATA_LEN NO: T #DATA_NO //循环执行加运算,本例中循环执行的次 数为8。 L D [AR1,P#0.0] //装载DB1.DBD0到累加器1中。 L #ADD_TEMP //与临时变量#ADD_TEMP相加后将计算结果 +R 再存储 #ADD_TEMP中。 T #ADD_TEMP +AR1 P#4.0 //地址寄存器加4,地址偏移量。 L #DATA_NO //LOOP 指令固定格式。 LOOP NO //跳回“NO”循环执行,执行完定义在变 量#NO_TEMP的次数后自动跳出循环程序。 L #ADD_TEMP //求平均值,装载运算结果到累加器1中。 L #DATA_LEN DTR //将变量个数转变为浮点值便于运算。 /R T #OUT_VAL //输出运算结果。 END: NOP 0 FB块在多重数据块中的寻址 FB块形参的编程 FB块在多重数据块中的寻址 FB块形参的编程 如果在FB1、FB2中使用POINTER或ANY数据类型指针进行拆分时,不考虑在多重背景DB块中的位置,将会造成错误,例如在FB1中定义输入接参数FB1_POS,数据类型为POINTER,在FB1中的程序如下: L P##FB1_POS //指向存储地址指针FB1_POS首地址。 LAR1 //存储于地址寄存器1中。 L D [AR1,P#2.0] //装载实参赋值的地址指针,并传送到 MD20中。 T MD 20 同样在FB2中定义输入接参数FB2_POS,数据类型为POINTER,在FB2中的程序如下: L P##FB2_POS //指向存储地址指针FB2_POS首地址。 LAR1 //存储于地址寄存器1中。 L D [AR1,P#2.0] //装载实参赋值的地址指针,并传送到

文档评论(0)

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

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

1亿VIP精品文档

相关文档