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

关于三菱plc的脉冲指令周期问题 点击:0 | 回复:21



luw816

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 65回
  • 年度积分:0
  • 历史总积分:777
  • 注册:2010年2月09日
发表于:2010-06-04 22:02:05
楼主
初学plc  正在做一个步进电机控制的项目,用plsy指令。目前遇到一点困难,plsy指令需要一个完整的扫描周期之后才能再次有效,目前的程序在执行此后,下一个周期plsy没有输出,其他的输出会有,虽然通过其他的输出触点与外部继电器结合解决了问题,但是多一个扫描周期的时间,效率下降了,想提高一下效率,让plsy每个扫描周期都有输出,希望前辈们赐教!小弟先谢过!



芳季

  • [版主]
  • 精华:6帖
  • 求助:8帖
  • 帖子:130帖 | 5331回
  • 年度积分:0
  • 历史总积分:20053
  • 注册:2003年1月31日
发表于:2010-06-04 23:22:21
1楼

请你放心。

这个是不可能的。脉冲指令有一部分功能只有在执行END指令的时候起作用。所以不可能在执行END之前让他产生作用。

luw816

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 65回
  • 年度积分:0
  • 历史总积分:777
  • 注册:2010年2月09日
发表于:2010-06-05 20:22:23
2楼
回复内容:
对:芳季 关于

请你放心。

这个是不可能的。脉冲指令有一部分功能只有在执行END指令的时候起作用。所以不可能在执行END之前让他产生作用。

内容的回复:前辈您好,可能是我上面的表述不清楚。我的意思是现在第一个周期y0(y0为脉冲数出口)有输出第二个周期y0就没有输出了而其他的输出口有输出,第三个周期y0有输出,现在y0是间隔周期输出,我想调整为每个周期y0都有输出,这个怎么解决啊,我用的是步进顺控梯形图,前辈帮帮忙啊!我把plsy  y0指令换成out y0一切就是我所想象的那样了,每个周期都有输出,plsy y0每个周期都要有输出,这是我所希望的,这怎么解决啊????

芳季

  • [版主]
  • 精华:6帖
  • 求助:8帖
  • 帖子:130帖 | 5331回
  • 年度积分:0
  • 历史总积分:20053
  • 注册:2003年1月31日
发表于:2010-06-05 22:17:05
3楼
不明白。看完了之后更加不明白你说什么。你是说PLSY指令吧。为什么一个周期有一个周期没有?

luw816

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 65回
  • 年度积分:0
  • 历史总积分:777
  • 注册:2010年2月09日
发表于:2010-06-06 21:26:42
4楼
回复内容:
对:芳季 关于不明白。看完了之后更加不明白你说什么。你是说PLSY指令吧。为什么一个周期有一个周期没有? 内容的回复:

现在就是这个问题啊   间隔一个周期有输出 啊   怎么解决啊

求知者01

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 11回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2010年4月15日
发表于:2010-06-06 21:32:29
5楼
plsy,有时脉冲输出时看不到的,但他确实有输出

luw816

  • 精华:0帖
  • 求助:1帖
  • 帖子:9帖 | 65回
  • 年度积分:0
  • 历史总积分:777
  • 注册:2010年2月09日
发表于:2010-06-07 17:34:33
6楼
回复内容:
对:求知者01 关于plsy,有时脉冲输出时看不到的,但他确实有输出 内容的回复:


我可以确定是没有的。因为机器已经用上了,只是效率很低。因为两个周期(每个周期大约2s)电机才前进一次。前辈们帮帮我啊!!!!

hailost

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2008年1月23日
发表于:2010-06-08 11:05:28
7楼

你这个是循环周期的问题,你把产生脉冲条件的点的线圈移动到你这句程序前,或者把带脉冲这句话一动到最后试试(第二种好一点),就看这样对你的这段程序逻辑关系会不会有影响。。。

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-21 14:07:33
8楼

 

  7楼的方法是可行的。楼主的问题说得不够明白,这个“周期”的概念应该加以明确的说明!要不然,很容易使人误解成程序的“扫描周期”。而实际上楼主所谓的“周期”是指SFC程序中所有的“工序S”的任务都进行完毕所用的整个时间为一个“周期”。

 

  为了与程序的“扫描周期”的概念相区别,可以将楼主讲的这个“周期”叫成“任务周期”,即完成一“轮”所有“工序任务”的“周期”。

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-21 14:30:50
9楼

 

   楼主实际上要求解的问题是:在“步进梯形图程序”(即SFC程序)中运用<plsy>指令,第1“轮”的“任务周期”里,<plsy>指令可以正常的输出指定频率的脉冲。但在第2“轮”的“任务周期”里,<plsy>指令连一个脉冲都不能输出,而与<plsy>指令同在一个STL‘工序’片断里的其它输出指令都能正常输出。到了第3“轮”的“任务周期”,<plsy>指令又回归于正常的脉冲输出。出现这种情况的原理是什么?谁能帮助解决?让每一“轮”的“任务周期”里都能叫 <plsy>指令正常执行脉冲输出的任务。

 

  我们把楼主需要求解的这个问题简单的叫成:<plsy>指令在SFC程序里出现的“隔轮输出”。

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-21 14:39:54
10楼

 

  下面我把楼主提供的需要找问题的SFC程序贴过来供大家参考:

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-22 15:10:45
11楼

 

  楼主<luw816>还贴得有<步进梯形图>出来,他是用了7 张图片来拼合的梯形图比较凌乱。转贴过来供网友们参考:

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 13:18:10
12楼

 

  我抽空把它给整理成了一张比较规范一些的<STL 步进梯形图>,贴出来方便那些不习惯看指令表程序的网友们参考: 

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 14:36:45
13楼

 

   再把这个STL梯形图转化成SFC图形更加通俗易懂:

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 14:51:41
14楼

 

  楼主<luw816>遇到的这个<PLSY>指令“隔轮有效”问题的成因是<PLSY>指令在某些系列PLC(譬如 FX1s)上,再次启动<PLSY>指令的脉冲输出时须有一个前提条件。这个“前提条件”是:

 

  前次驱动的脉冲输出指令的“脉冲中监视(Y000:[M8147],Y001:[M8148])处于OFF状态后,必须经过1次以上演算周期才能再次执行。

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 15:12:29
15楼



  而“步进顺序功能程序”的每一个“工序片断”都相似于一段“跳转程序片断”。首次执行“工序S21”内的程序片断时,Y0有脉冲输出。当“工序”转移条件成立,由X12选择转移到以“工序S22”或“工序S24”为起始的“分支”中去。这时“工序S21”自动关闭,成为一个“相似于跳转的片断”。在跳转的期间<PLSY >这条指令没有经过OFF演算。当第2轮的“任务周期”执行到“工序S21”内的程序片断时,<PLSY >驱动信号再出现的这个“前沿”在<PLSY >指令未经OFF运算时是无效的。这一次的驱动“前沿”虽不能再次启动<PLSY >指令输出脉冲,但它却使M8147的状态复位成OFF了,为下一“轮”的“再启动”预备了必须的“前提条件”。所以第3轮的“任务周期”执行到“工序S21”内的程序片断时,<PLSY >指令又回归于正常的脉冲输出了。这就是楼主所说的“隔周期”输出。

        

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 15:26:47
16楼

 

  SFC程序“工序转移”有一个明显的特点:当某“工序”结束转入下一“工序”时前“工序”自动关断,但与其STL触点连通的片断内正在输出的指令还要经过一个程序扫描周期才会关断。我们可以根据SFC程序的这一个特点,在保持楼主原有的程序功能的前提下稍作改动就能实现他要求的<PLSY>指令在每一轮的“工序S21”被选通时都能正常的输出脉冲!

 

  改动的部分,我用红色给大家凸显出来与未改动前的相应部分做个对比:

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 15:44:32
17楼

 

  <STL    S20> 所连通的片断中插入一条“OUT   M0”,当“工序”从S20转移至S21时,S21自动关断,但M0的ON还要持续一个扫描周期。我们将这个M0的闭接点去更换原程序中X11的闭接点(这个X11是“工序S21”的完毕标志,用它作S21向S22的转移条件就足够了,这里用不着来关闭<PLSY>指令。)以M0闭接点持续的一个扫描周期的OFF给<PLSY>指令建立“再启动”的必要“前提条件”。

 

  <STL S26> 所连通的片断中也插入一条“OUT   M0”,当“工序”从S26转移至S21时,这个M0所起的作用同上。

 

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 15:56:51
18楼

 

  把<PLSY>指令移放到SFC程序范围之外,让<PLSY>指令在每个扫描周期里都能运算。也可以达到建立脉冲输出“再启动”的前提条件之目的:

wanggq

  • 精华:3帖
  • 求助:0帖
  • 帖子:79帖 | 5342回
  • 年度积分:0
  • 历史总积分:10401
  • 注册:2004年8月21日
发表于:2010-11-24 16:47:40
19楼

 

  另外,还要讲一点:<PLSY>指令的功能就只是“输出指定频率的占空比为50%的方波脉冲”,除此之外没有其它“功能”,而且这个“功能”(指脉冲的输出过程)不受程序的扫描周期的制约(即,不需要等程序扫描到END,<PLSY>在运算之后就立即执行)!因为它是以“中断方式”执行的“高速指令”。

                               

填写您喜欢的笔名

  • 精华:2帖
  • 求助:5帖
  • 帖子:32帖 | 197回
  • 年度积分:3
  • 历史总积分:581
  • 注册:2004年9月26日
发表于:2012-02-08 17:47:27
20楼

谢谢了  受益匪浅


相关主题

官方公众号

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