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

.1.  回复:咨询中断的问题 
刘建阳(2010-09-06 19:51:40)  IP:125.124.5.*
是不是中断发生之后,X1的状态一直ON呢?
可以在 LBL X1+I 里面对中断次数进行跟踪累计

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

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

.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中的值始终不变。不知是什么原因。请老师指点!再次对您的帮助表示由衷的感谢!
.3.  回复:咨询中断的问题 
hnwhlk(2010-09-06 23:04:19)  IP:58.253.219.*
补充:程序中MOV用的P指令。如果MOV不用P指令,则中断程序可以执行。可我怎么能知道这个值就是在X1↑时的值呢?难道中断服务程序中不能用P指令。谢谢!还想请教 MA的机器如何才能启用中断。谢谢!

.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 一样。究竟是什么原因,我百思不解。盼望早点弄清原委。谢谢!
.5.  回复:咨询中断的问题 
hnwhlk(2010-09-07 18:44:19)  IP:58.253.219.*
我心急如火,可楼上的朋友为什么要这样呢。我盼望能有热心的老师给我指点迷津,当看到有回复时心情非常高兴,可看到的是些无关我的问题的帖子,让我心情就像是吃了个苍蝇。
.6.  回复:咨询中断的问题 
刘建阳(2010-09-07 21:16:17)  IP:122.231.194.*
中断子程序使用了脉冲执行型指令
当第一次中断发生时,子程序电路有上跳沿变化,执行 MOV \ RST 指令1次,此时电路状态1(得电);
当第二次中断又发生时,由于第一次中断执行后的结果,子程序电路状态为1,第二次中断发生,电路状态没有发生变化
这时候 MOV \ RST 不执行。
第3次~第N次,均不执行,因为电路状态没有0→1跳变。
若需要每次中断都执行,不要用P指令即可。
.7.  回复:咨询中断的问题 
刘建阳(2010-09-07 21:19:32)  IP:122.231.194.*
去好好理解plc的基本工作原理。
.8.  回复:咨询中断的问题 
hnwhlk(2010-09-08 7:25:05)  IP:58.253.219.*
何老师:您好!   
   您说的办法,我也试过了,我做的调试装置中X1的连接是用一个行程开关。正如前面我提到的那样,子程序中的结果完全不是中断上升沿的结果
   按照您说的:“当第一次中断发生时,子程序电路有上跳沿变化,执行 MOV \ RST 指令1次,此时电路状态1(得电);
          当第二次中断又发生时,由于第一次中断执行后的结果,子程序电路状态为1,第二次中断发生,电路状态没有发生变化”也就可以理解成子程序电路在第一次得电后就永远处于得电状态,能有办法改变子程序电路状态为1吗?当然是在程序运行的状态下改变。我在主程序中有146指令及145指令也不行。
   还想请教。中断程序一定要写在子程序里吗?
   说心里话,我早晨打开电脑看到何老师的回复心里第一想法就是尽快打开对应的网页,我是带着欣喜的期待去等着网页打开,可见我们这些PLC的中间用户是多么可怜!

.9.  回复:咨询中断的问题 
刘建阳(2010-09-08 19:20:33)  IP:125.124.103.*
中断程序只有中断事件发生了,PLC才会去执行中相应的中断子程序。
中断没有发生,PLC不会去执行。
永宏的中断子程序是必须写在副单元的。
.10.  回复:咨询中断的问题 
hnwhlk(2010-09-09 7:37:09)  IP:58.253.219.*
何老师:你好!
  当我把上面的程序注入机器并运行后,我按动行程开关,X1的指示灯会随着我按下与松开而闪亮与息灭,这应该算是中断发生了吧。我一年要用几十个永宏的PLC。这点最起码的常识我是知道的。上学的时候就学过什么叫中断,什么是中断服务程序,什么是中断的优先级。因此,请何老师如有可能上机做一下测试。我真的搞不懂,永宏的中断为什么这么不好用。
.11.  回复:咨询中断的问题 
hnwhlk(2010-09-11 21:42:00)  IP:58.253.219.*
再次请求永宏的高手老师帮助我解决中断的问题.并祝您们在帮助别人后能享受到助人为乐的幸福!
.12.  回复:咨询中断的问题 
hnwhlk(2010-09-26 17:29:34)  IP:58.253.219.*
坚持以人为本,奉行“客户第一”的服务宗旨,“与客户共同发展”的经营理念说的是真的吗.可为什么我的关于"咨询中断问题"在网上,用QQ,打电话,到目前为止没有解决!打电话问时说可以,可到目前没有回复让你无法接受,你如果给个回话,指出我的错或者说永宏不支持我所选的中断模式好让我有个底,我目前就像是飘浮在空中真着急!还请永宏能像所说的那样帮我们中间用户解决实际问题.要知道我们这些中间用户是永宏公司免费的推销员.
.13.  回复:咨询中断的问题 
刘建阳(2010-09-26 19:03:03)  IP:60.163.148.*
建议你去理解PLC的基本工作原理和中断执行方式,你说这些已经都明白,那还需要别人给你解释什么?
多看手册比在这里发牢骚有效的多。

.14.  回复:咨询中断的问题 
hnwhlk(2010-09-26 21:36:09)  IP:58.253.219.*
何老师:你好!
  我还是把我的任务简单的说一下,麻烦你仔细看看,指出我错在哪里,谢谢!
  机器现状:当机器每转动一周产生一个高电位信号送到X1,在WPROLAD环境里->专案->I/O组态里,将的X1设为正缘中断.(为了简单我在下面的陈叙里用了与上面不同的计时器的存储器的地址由此引起不便还请包涵)
主程序如下:
T1  32000
副程序如下:
LBL  X1+I
MOV T1  R3000
RST T1
(+1) R3002(这一句是我后来为检查为什么R3000里的值是"0"而增加的)
RTI
原意是:当X1高电位到来时,中断服务程序能将T1里的值存在R3000,后再将T1重置(为下周计时作准备).因为程序运行后发现:R3000里的值是"0",在何老师的提示下,我在中断服务程序里加了个第15号指令(+1),结果发现中断条件具备时,中断程序是执行了,可是不是执行一次而是执行了二次或二次以上,因为R3002中的值在中断产生时都增加了2或3.这样就不难理解为什么当中断发生时R3000里是"0"的原因了.这说明中断服务程序并不是按照从LBL..至RTI后就返回主程序,而是在副程序段扫描了一次后又扫描了一次,请问何老师,是这样吗,如果是这样的话我怎么办呢?如果不是这样的话,我的这个小程序在我的供应商哪里也这样的结果.为此,我与永宏的Q友用远程控制来演示也是这个结果.因为我不能上传文件所以无法将这个小程序发上来.如果您能给我个邮箱我发过去您给诊断一下.其他好心的老师也如果愿意帮助我,给我个邮箱我也把这个小程序发过去让您诊断.就当作时做了个助人为乐的游戏.
  我为了这个中断程序已经头痛了近二个月了,说实在话我不想发牢骚,只想解决问题.我打了很多电话,(为了不影响他们,我也提给哪些地方打电话),我只想得到:我应该如何做,才能将这个简单的问题搞定.真的!我不是最终用户,我是把我的控制理念通过PLC及机器手与机器有机地组合在一起,提供一个节能产品给最终用户.因此从某种层面上看,我真的是免费给永宏推销PLC.我认为永宏的编译环境比较好用,与欧母龙的近似.价格也低的多,所以选了永宏.
  在这个问题上我错在哪里也请热心的老师指点迷津.能给我一个方法.提示,我将表示由衷的感谢!
[返回]
[本主题共14回复 | 每页显示20回复]
按用户名:    按标题:   按内容:       包括所有回复
【首页】→ 【PLC】→ 回复:咨询中断的问题
帖子标题:
   未登录!    

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