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

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 我想用寄存器寻址的方式编一个“单按钮”功能

我想用寄存器寻址的方式编一个“单按钮”功能

刘玉蓉 发布于2014-11-21 17:15 28 0 标签:

OB1  程序如下
   
      CALL  FC     1
       middle:=M0.0
       button:=M100.0

FC1   在in_out栏目下 建立两个bool型变量 ,button  与middle  
我的目标是是middle是button 控制的单按钮
FC1内容如下:
  程序段1:
      L     P##middle
      L     DW#16#FFFFFFF8
      AD    
      LAR1  
      A     #button
      FP    M    M [AR1,P#0.6]     //为什么这一条上升沿不能正常执行?
      JCN   _001
      L     1
      L     MB [AR1,P#0.0]
      +I    
      T     MB [AR1,P#0.0]
_001: NOP   0

程序段2:
     A     M [AR1,P#0.0]
      FN    M [AR1,P#0.5]    //但是这一条下降沿可以正常执行,
      JCN   _002
      L     0
      T     MB    20
_002: NOP   0

问题补充:
我FP后面多写了M,是我在这里写错了。但是我将FP后面的内容换成一个比如说M100.6,再执行程序,就能正常的执行啊。功能也能实现。
我上面的AD指令,按位求与,我是想将不管别人输M0.7~M0.0,我都是希望是M0.0啊,这里应该不会让M0.0始终为1 啊

佳答案

这种寻址不支持位变量,你监控时可以看到AR1是V区的变量,并不是M区的。你可以将#middle的类型改为字节即可。
感觉你的程序也不太严谨,可以去掉M标识,并且对MB [AR1,P#0.0]累积加1,上升沿用 M [AR1,P#0.6],累加值会出现错误。

若有收获,就点个赞吧!

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

微信扫一扫分享

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

相关推荐

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