切换为不分页显示
【首页】→ 【PLC】→ 主题:咨询中断的问题
字体:    评论
咨询中断的问题
发表:hnwhlk  (2010-09-06 16:09:23)
分类:PLC  |  阅读:20332  |  评论:17  |  最新评论:2010-09-26 21:36:09 By hnwhlk
何老师及各位老师:我最近的项目要用到外部中断。可是遇到的问题如下:
    我用的PLC是10MC机型。 我的工况是:机器大约2秒转动一周,产生一个位置到达信号,接入PLC的X1点。
   因为在我的主程序中,用作其它功能例如几只机器手的动作等,其程序所占用的时间比较长,为了确保机器位置到达信号能及时准确,我用到了外部中断X1↑。
   我在I/O组态里,将该点设定上升沿中断。因为每一个中断间隔时间很长(远远大于中断服务程序所占用的时间)按理,这个中断服务程序应该在每一个X1↑到来的时候,都进入中断程序。可是,我编的这个中断程序只在系统启动后,第一个X1↑时执行一次,以后无论多少个X1↑时,中断都不响应。不知是什么原因,难道是我的MC的PLC有问题。如果您能将我在附件中的模拟程序在机器上运行一下,就很清楚了。它的接线非常简单,接上电源、并将24V一端按入S/S,另一端作为信号间断地碰一下X1.请您告诉我应该如何解决。谢谢您的帮助!祝好人永远快乐!
   因为我没有权上传文件。哪位老师肯给个邮箱,我把我编的中断练习程序发过去。再次表示由衷的感谢!

评论 | 引用

本文共14条评论
.4.  回复:咨询中断的问题
hnwhlk(2010-09-06 23:53:22)  IP:58.253.219.*
再次补充:
   当我把MOV不用P指令时,下面一句用RST*P T1 时,R3000会随着X1的动作而刷新,但T0则也只能重置一次,X1第二次ON时,因为RST*P 不动作,T1里的值一直都在增加,因此R3000里的值是在不断的增大。
  如果我把RST指令也不用P指令,其结果是T1每次都能重置,但R3000里的值一直都是“0”,就仿佛是先RST T1,后MOV T1 R3000 一样。究竟是什么原因,我百思不解。盼望早点弄清原委。谢谢!
.3.  回复:咨询中断的问题
hnwhlk(2010-09-06 23:04:19)  IP:58.253.219.*
补充:程序中MOV用的P指令。如果MOV不用P指令,则中断程序可以执行。可我怎么能知道这个值就是在X1↑时的值呢?难道中断服务程序中不能用P指令。谢谢!还想请教 MA的机器如何才能启用中断。谢谢!

.2.  回复:咨询中断的问题
hnwhlk(2010-09-06 22:47:38)  IP:58.253.219.*
何老师:您好!
  我编的中断模拟学习程序已经发到您的邮箱。这个模拟我是在办公室用一个开关,通过手动开、闭来模拟现场情况,因此不存在X1一直ON的可能,可实际感觉就像是X1一直ON。程序大致如下:
在主单元一:
        M1
│───││──────T0
           X1
│───│/│──────DIS X1+i
│─────────EN X1+I
│─────────END
在副单元一:
│─────────LIB X1+I
│─────────MOV T1 R3000
│─────────RST T1
│─────────RTI
当程序运行后,激活ON M1, T0开始计时。第一次将X1 ON后,中断程序动作将当时的时间差送到R3000.可此后无论如何通断X1,R3000中的值始终不变。不知是什么原因。请老师指点!再次对您的帮助表示由衷的感谢!
.1.  回复:咨询中断的问题
刘建阳(2010-09-06 19:51:40)  IP:125.124.5.*
是不是中断发生之后,X1的状态一直ON呢?
可以在 LBL X1+I 里面对中断次数进行跟踪累计

|----------------------------------------INC R0

就可知晓中断是否只发生过一次。

 [返回]
<< [1] [2] [3] >>

按用户名:    按标题:   按内容:       包括所有回复
【首页】→ 【PLC】→ 评论:咨询中断的问题
帖子标题:
   未登录!    

您的权限:
发表回复:×
UBB功能:×
文件上传:×
 
 
  图示说明: 24小时新发主题  最近被编辑的主题  超过24小时普通主题
页面执行时间:234.375毫秒 | 在线:24 今日:674 合计:8973102 | 清除COOKIE |