PLC编程经验两则

[复制链接]
查看5989 | 回复24 | 2006-8-31 00:20:00 | 显示全部楼层 |阅读模式
PLC编程经验一则 有个朋友打电话询问:为什么用高速计数器累积编码器的脉冲,并对计数进行比较,有时马达可以停,有时马达不停?  我问是怎么比较的,回答:比较计数等于某个值时停。  解决:  当脉冲的周期时间小于plc扫描的时间时用普通的比较指令就不会得到正确的比较结果。在要求不严格时可以用大于或者等于比较指令就可以了。当对脉冲计数要求严格时可以用有立即输出的比较指令或者其他合适的有中断功能的指令。 以下是对《PLC编程经验一则》的回复: 匿名回复: 结论是对的。在普通的扫描程序中加比较指令根本无法及时的响应。    最好的方法是利用中断,启用中断:计数值=预设值,指定中断服务程序,要实现的动作放在中断程序里就可以了。注意:在中断程序中不要执行太多的功能,否则若中断程序的执行时间大于中断的事件间隔,就又可能来不及响应了。

PLC编程经验之二--双线圈输出
  几乎所有的plc的手册都会提醒用户注意不要双线圈输出,但很多初学的朋友还是不理解。看完下面的文字,你就可以理解,什么时候不可以,什么时候还是可以的:
   PLC的工作过程书和手册都会介绍,但很多人并没有多留意PLC工作过程会对编程产生什么影响。PLC的程序是在所谓的扫描时间内被执行的,这种扫描过程是从头到尾然再完成io等工作后循环反复。程序在扫描期间执行的中间结果比如,out y3 指令在执行时并没有将y3点亮,而是等到全部扫描完毕后再集中对所有io进行刷新,y3其实只对应一个内存bit位,那么其后的指令对y3的再操作就有可能让让前面的我们所需要的y3的状态发生改变,就是说前面的对y3进行操作的指令就不起作用了。这就是为什么我们不许双线圈操作的原因。
   在需要的场合可以使用set和reset来操作就是安全的做法。
   还有就是:我们知道程序扫描每次都要扫描主程序,没有主程序是不合法的。而子程序并不是每次扫描都执行,子程序只在条件满足的情况下才执行。所以每次扫描不同时执行的多个子程序就可以对某个线圈进行多次操作。
   说的很罗嗦,应该是讲明白了。有不对的,大家补充。

匿名回复:
没接触西门子PLC之前也一直认为在程序中不能对同一个输出点多次使用,编程时想方设法的把各个只路并联起来控制一个输出线圈。现在用西门子的东东后发现,有时候你不得不对同一输出地址进行多次操作,因为西门子的位操作指令各不相同

匿名回复:
你们好象对西门子的东西不是很熟悉吧?对于一个位最普通的操作是输出---(),另外有置位---(S),复位---(R),还有立即输出等等,你们可以看系统手册,就是对于同一个位地址,输出---()指令也经常多次用(看过别人的程序是这样的),
匿名回复:
提醒用set和rset的朋友,在set后一定要记得rset,否则可能出现非预料中的结果。以前我常用,但有时候就会忘记rset,结果不是想要的,还查不出是那里的问题,废时废力
匿名回复:
让中间继电器去推动线圈,N个中间继电器并联就解决问题了.
匿名回复:
什么叫双线圈输出?是一个梯级中有两个输出?还是在不同梯级中出现同一个输出。

不同梯级中出现同一个输出是允许的,不过IO更新在一个扫描周期只有一次,实际的输出状态由程序中最后一个梯级输出决定。

同一梯级是否允许有两个输出,是由不同PLC类型决定,有的支持,有的不支持。
匿名回复:
PLC的梯形图,不要用传统的继电器图来看它
继电器图不分元件摆放上下之分
而PLC的梯形图元件的摆放和程序有很大的关系
匿名回复:
上面的说得很好,确实如此,可以使用双线圈输出。本人以前也用过,现在做产品设计了,各位大虾,请问一下,做PLC自动控制是否有前途?我现在那不定主意,很想自己单干,但是远离了一段时间,很想听听大家的想法,现在打工觉得实在没有兴趣了,想从头再来!大家给点真诚的意见和建议好么??因为我现在基本是0起步了。
匿名回复:
上面的说得很好,确实如此,可以使用双线圈输出。本人以前也用过,现在做产品设计了,各位大虾,请问一下,做PLC自动控制是否有前途?我现在那不定主意,很想自己单干,但是远离了一段时间,很想听听大家的想法,现在打工觉得实在没有兴趣了,想从头再来!大家给点真诚的意见和建议好么??因为我现在基本是0起步了。
匿名回复:
我看过的有不少是双线圈输出的。
匿名回复:
是吗
匿名回复:
下面3中情况可以采用双线圈,但是这样多次使用会使程序可读性差,建议使用单线圈或用set、reset来使用多线圈。
(1)在跳步条件相反的两个程序段(如自动程序和手动程序)中,允许出现双线圈现象,即同一元件的线圈可以在两个程序段中分别出现一次。
(2)在调用条件相反的两个子程序中,允许出现双线圈现象,即同一元件的线圈可以在两个子程序中分别出现一次。在一个扫描周期内只能调用一个子程序,实际上只执行正在处理的子程序中双线圈元件的线圈输出指令。
(3)如果使用三菱PLC的STL(步进梯形)指令,由于CPU只执行活动步对应的STL触点驱动的电路块,使用STL指令时允许双线圈输出,即不同时闭合的STL触点可以分别驱动同一编程元件的一个线圈。

另外如用用顺序功能图方式编写的松下PLC程序,运行时需要配置PLC以允许双线圈输出。
匿名回复:
下图是一个双线圈的例子,尽量不要这么使用。
  

whb1981 | 2006-11-30 16:25:00 | 显示全部楼层

SET 、 RESET 的应用应该是很好的~

dg051222 | 2007-3-14 20:01:00 | 显示全部楼层

不熟悉PLC编程的最好别用,到了一定层次自然随心所欲。

dog76 | 2007-3-19 15:28:00 | 显示全部楼层
呵呵,学习学习
HoriZon8916 | 2007-3-23 15:03:00 | 显示全部楼层
xiexie
fxm_85 | 2007-3-24 21:19:00 | 显示全部楼层

谢谢.学习学习!

qzdong | 2007-5-13 13:23:00 | 显示全部楼层
好好学习
simbawang | 2007-5-14 09:35:00 | 显示全部楼层
学习一下!
huzicao | 2007-5-14 11:25:00 | 显示全部楼层

我最害怕用SET和RESET

搞不好就弄错拉

xuliang987 | 2007-5-14 21:37:00 | 显示全部楼层

学习中

sfzy0621 | 2007-9-17 23:17:00 | 显示全部楼层
经验之谈~!学习中[em07]
weiyehm | 2007-9-18 00:37:00 | 显示全部楼层

学习

yyhjxyc | 2007-9-18 09:24:00 | 显示全部楼层
我问一下楼主, 你这里所说的双线圈输出是指一个梯级有两个输出线圈还是一个输出线圈在两个梯级中出现?
panhua202 | 2007-9-20 06:51:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
9989abc | 2007-9-23 11:05:00 | 显示全部楼层
非常值得学习,顶下
autoc035 | 2007-9-26 16:21:00 | 显示全部楼层

是个好帖

yuanliang | 2007-9-26 17:33:00 | 显示全部楼层
双线圈也不是一定不能用,比如在步进程序时还是可以使用的 ,但是在使用时要特别注意,在同一步里是不能出现双线圈的
xuliang987 | 2007-9-26 22:19:00 | 显示全部楼层

我觉得还是可以理解的

baiyunyinkou | 2007-9-26 22:43:00 | 显示全部楼层

还没入门,但是很喜欢PLC。现在很多机器上都用到它。我想以后机器上面都会有它!

请问各位高手CNC里面的T型图是不是就是讲的PLC里的T型图?

谢谢!

xuliang987 | 2007-9-28 19:56:00 | 显示全部楼层
thank you
lyrrd | 2007-9-29 08:49:00 | 显示全部楼层

收藏

jiunengdao | 2007-10-6 09:34:00 | 显示全部楼层
好呀,涨见识了.
13679022789 | 2007-11-14 17:16:00 | 显示全部楼层

学习中

xjg555 | 2007-11-14 19:05:00 | 显示全部楼层

很好!谢谢!

我刚开始学PLC.谁能教我如何把电脑与PLC连接起来,是否要用通信协议,如何运用

jack267 | 2007-12-4 14:28:00 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则