galil的问题又来了,怎样判断数字输入的上下沿 点击:446 | 回复:8



竹石

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2008-07-05 03:21:20
楼主

我想用两个按钮,接到galil的数字输入接口上(@IN【1】、@IN【2】),分别定义为加速、减速。

按一下加速键,电机速度就以一定的幅度增加一下,连续按住2秒不放,就一每秒一定的幅度连续增加(类似仪表上设置数据的方式)。同样的,减速的按钮也要实现减速的功能。

我以前在PLC下,通过判断输入的上下沿做过这样的设计,在galil下,傻了。

好像galil的数字输入不分上下沿似的。

我现在自己想了两个方案,不知道是否可行:

1、使用II,输入中断,自己写程序,但具体怎么实现还没想好。

2、外接一个PLC

还请高手们不吝指教!

 




wzg1234

  • 精华:0帖
  • 求助:0帖
  • 帖子:69帖 | 237回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2006年5月29日
发表于:2008-07-05 14:00:47
1楼

II -1或者是II 1

就是数字量度1的下降沿与上升沿,

应该是这样

至于如何判断连续2秒,就不知道了

 

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2008-07-05 22:50:29
2楼

用II这个指令,在判断“连续2秒”实在是很麻烦的事情,至少我一下字还想不到方案。如果我要处理这个问题,还是会在卡上单开一个线程,循环查询输入点状态。

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2008-07-06 17:52:39
3楼
好像手册上没有II-1、II1这样的程序啊。

Motion_Control

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 537回
  • 年度积分:0
  • 历史总积分:1576
  • 注册:2003年9月17日
发表于:2008-07-06 19:13:39
4楼

能否在循环程序里通过逻辑判断来实现。

例如:

LOOP:

IF IN(1)=0 THEN

WAIT(1) '等一毫秒

IFIN(1)=1 THEN

。。。

ENDIF

ENDIF

GOTO LOOP

。。。部分就是要上升沿实现的程序。

GALIL应该有类似的办法吧?

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2008-07-07 17:55:57
5楼

指令II 的用法,手册上还是有的.

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2008-07-07 18:27:33
6楼
手册上说的II只是输入中断,好像跟上下沿没有关系啊

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2008-07-08 17:29:07
7楼

所谓 输入中断,就是在输入有变化时执行#ININT的程序,所谓输入有变化,就是上升下降沿了。

不过,就您的应用,我不建议使用这个指令。

竹石

  • 精华:0帖
  • 求助:0帖
  • 帖子:45帖 | 306回
  • 年度积分:0
  • 历史总积分:1036
  • 注册:2003年9月13日
发表于:2008-07-08 21:49:08
8楼
我现在专门开了一个线程实现了,不过我把定义改了一下,改成输入连续接通0.1秒,速度增加2%,5秒加到100%。这样,加速的按钮,就跟汽车的油门一样了。

热门招聘
相关主题

官方公众号

智造工程师