首页 上一页 1 2 下一页 尾页

我不会中断编程 点击:1389 | 回复:30



春华★秋实

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-08-23 08:52:00
楼主
大家帮我看看这样行不?
主程序:
LD     SM0.0
ATCH   INT_0:INT0, 0
ENI
中断程序INT_0:
LD     SM0.0
S      Q0.0, 1
我用仿真,一运行就出错,出错信息是乱码,看不懂。。。



工控学徒

  • 精华:5帖
  • 求助:0帖
  • 帖子:218帖 | 1663回
  • 年度积分:0
  • 历史总积分:9769
  • 注册:2002年12月13日
发表于:2007-08-23 08:59:00
1楼
SM0.0是PLC运行的常闭点,PLC在运行时一直为闭的状态。
因此,你用它来调中断程序,PLC一直在调为断。不应该这样。你可以用电脑的上升沿来调。

工控学徒

  • 精华:5帖
  • 求助:0帖
  • 帖子:218帖 | 1663回
  • 年度积分:0
  • 历史总积分:9769
  • 注册:2002年12月13日
发表于:2007-08-23 08:59:00
2楼
你可以用SM0.0的上升沿来调。

hanyun

  • 精华:2帖
  • 求助:0帖
  • 帖子:75帖 | 237回
  • 年度积分:0
  • 历史总积分:526
  • 注册:2006年2月21日
发表于:2007-08-23 09:39:00
3楼
也可以用SM0.1来调用中断。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-08-23 09:39:00
4楼
TO zhyo:
首先感谢你的指点!
可事件0不是I0.0的上升沿吗?如果不遇到I0.0的上升沿,怎么会中断呢?

CLJ007

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 48回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2002年7月09日
发表于:2007-08-23 19:04:00
5楼
你对中断理解错啦,中断是事件

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2007-08-23 20:08:00
6楼
当中断条件满足时,才会中断当前的程序去执行中断程序;
这个中断条件不是每时每刻发生的,只是一个条件;
如果不遇到I0.0的上升沿,当然不会中断。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-08-23 22:35:00
7楼
TO  老菜鸟: 
按照您说的,我这样编制程序也不算错吧?当检测到I0.0时才会运行中断程序.没有I0.0上升沿时程序就往下运行啊

一只孤雁

  • 精华:0帖
  • 求助:0帖
  • 帖子:48帖 | 389回
  • 年度积分:0
  • 历史总积分:772
  • 注册:2006年4月27日
发表于:2007-08-24 15:14:00
8楼
楼上的!你理解错误了!SM0.0是一个特殊标志位存储器,在上电的情况下,它一直是处于接通状态,当你需要调用INT中断程序时,不需要它一直是处于接通状态,只要你有一个足够宽度的脉冲信号来激活INT程序就可以了!如果你是一直接通的话,就像"老菜鸟"高手说的一样啊!

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-08-24 16:30:00
9楼
那就请大家帮我写一个,我学习一下。
当检测到I0.0上升沿时,调用中断程序,使Q0.0置1
谢谢

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-09-25 11:26:00
10楼
只改一个,把SM0.0改为SM0.1,这样可以吗?(就是,一遇到I0.0上升沿就置位Q0.0)
主程序:
LD     SM0.1
ATCH   INT_0:INT0, 0
ENI
中断程序INT_0:
LD     SM0.0
S      Q0.0, 1

老愚者

  • 精华:1帖
  • 求助:0帖
  • 帖子:9帖 | 2253回
  • 年度积分:0
  • 历史总积分:10007
  • 注册:2006年8月20日
发表于:2007-09-25 15:56:00
11楼
你的第一个程序从语法上来说是无问题的,也能工作,只不过没有实际价值。我没有过使用仿真器,不知道问题出在哪。如果你有PLC,还是直接实验效果好。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-09-26 08:18:00
12楼
TO 老愚者:
我主要是想知道,连接中断时是不是只需要一个扫描周期 ?以后扫描再遇到中断条件,仍然调用中断程序

张向阳

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 99回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2007-09-26 09:31:00
13楼
西门子的大家庭啊,以后有难题可以来这里请教大家了。另外有一个西门子的技术交流和产品推荐的QQ群。群号码是9719730。欢迎大家来聚。繁多的产品,丰富的经验,可以在群里交流和推广。

老愚者

  • 精华:1帖
  • 求助:0帖
  • 帖子:9帖 | 2253回
  • 年度积分:0
  • 历史总积分:10007
  • 注册:2006年8月20日
发表于:2007-09-26 11:26:00
14楼
to春华★秋实
  连接中断时是只需要一个扫描周期 ,以后扫描再遇到中断条件,仍然调用中断程序.
  如果你的程序还有中断禁止之类的指令存在,请在中断调用的能使位使用SM0.0

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-09-26 15:21:00
15楼
TO 老愚者:
非常感谢您!讲的非常清楚。

春华★秋实

  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 1038回
  • 年度积分:0
  • 历史总积分:3013
  • 注册:2007年5月17日
发表于:2007-09-26 16:06:00
16楼
另外请各位大虾帮我看看这段程序能否完成测速要求:(用高速计数器1,每200MS中断一次,结果VD1000乘以300放入结果VD1004中)
主程序:
NETWORK1
LD     SM0.1
MOVB   16#F8, SMB47
HDEF   1, 0
NETWORK2
LD     SM0.0
MOVD   0, SMD48
MOVB   200, SMB34
ATCH   INT_0:INT0, 10
ENI
中断程序0:
NETWORK1
LD     SM0.0
MOVD   HC1, VD1000
NETWORK2
LD     SM0.0
MOVD   VD1000, VD1004
*D     300, VD1004
NETWORK3
LD     SM0.0
MOVD   0, SMD52

T22

  • 精华:1帖
  • 求助:0帖
  • 帖子:21帖 | 145回
  • 年度积分:0
  • 历史总积分:347
  • 注册:2006年5月23日
发表于:2007-10-06 22:39:00
17楼
你应该在你的中断程式中重新定义一下高速计数器才行.

heidai

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 1835回
  • 年度积分:0
  • 历史总积分:2824
  • 注册:2007年5月23日
发表于:2007-10-06 23:16:00
18楼
支持

不怕下雨的风

  • 精华:3帖
  • 求助:0帖
  • 帖子:68帖 | 337回
  • 年度积分:0
  • 历史总积分:936
  • 注册:2007年1月25日
发表于:2007-10-07 14:22:00
19楼
d

yuhaichengong

  • 精华:0帖
  • 求助:0帖
  • 帖子:17帖 | 173回
  • 年度积分:0
  • 历史总积分:272
  • 注册:2007年5月09日
发表于:2007-10-07 22:21:00
20楼
学习了.

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页