技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 请教FC中的语句

请教FC中的语句

刘玉蓉 发布于2014-10-31 17:39 128 0 标签:

L     DBNO
      T     #TEMP27
      L     DINO
      T     #TEMP28
      TAR1  #TEMP29
      TAR2  #TEMP30
      OPN   DB [#TEMP27]
      OPN   DI [#TEMP28]
      LAR1  #TEMP29
      LAR2  #TEMP30
这是在被调用FC中的语句,请问有什么作用

佳答案

由于功能FC没有自己的背景数据块,每次调用时必须指定FC的形式参数的实际参数值,其中前面加#为FC中变量声明表中的形式参变量(暂态变量TEMP),在局部变量前必须加#,表示是局部变量。
这段FC中的语句的作用是关于功能调用时的堆栈操作。因为当发生块的调用时,就有相关的块信息存储在块堆栈(B堆栈)里,并影响部分内存的寄存器。
一般在调用功能FC时,会有以下事件发生:调用块的地址和返回位置存储在块堆栈中,调用块的临时变量压入堆栈、数据块DB寄存器内容与DI寄存器内容交换、新的数据块地址装入DI寄存器、被调用块的实参装入DB和L堆栈上部、当功能FC结束时,先前块的现场信息从块堆栈中弹出,临时变量弹出L堆栈、DB和DI寄存器内容交换。
L    DBNO //把数据块号DBNO装入累加器1的低字中
T     #TEMP27 //把数据块号DBNO传送到暂态变量 #TEMP27
L     DINO //将数据块号DINO装入累加器1中的低字中,同时将数据块号DBNO移到累加器2的低字中
T     #TEMP28 //将数据块号DINO传送到暂态变量#TEMP28
TAR1  #TEMP29 //将地址寄存器1中的值直接传送到暂态变量 #TEMP29
TAR2  #TEMP30 //将地址寄存器2中的值直接传送到暂态变量 #TEMP30
OPN   DB [#TEMP27] //打开数据块号为DBNO的数据块
 OPN   DI [#TEMP28] //打开数据块号为DINO的数据块
 LAR1  #TEMP29 //将暂态变量 #TEMP29的值装入地址寄存器1中,即恢复AR1中的值
 LAR2  #TEMP30//将暂态变量 #TEMP30的值装入地址寄存器2中,即恢复AR2中的值

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签