QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 3795|回复: 25
收起左侧

[讨论结束] 请教一个较难的PLC编程问题

 关闭 [复制链接]
发表于 2008-10-30 20:43:56 | 显示全部楼层 |阅读模式 来自: 中国浙江宁波

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
如何在西门子PLC中实现如下功能:2 F! X* D$ f" F  ]7 e: l
& a9 P6 x( c" h, C5 D& v6 u
    在整个运行中,若20秒钟内如出现5次某一触点信号输入,实现一个输出。运行时持续检测上述工况是否出现。9 U" u! M$ U. f; N( M% f' d* k
   (这里定时器好像不好用,我要的是计时器,且可能要用到先进先出的队列); `$ y, Q/ l% }( p0 s1 b! P% D" ^

8 f- ]! m, P! n) U1 x0 J如何编程实现,望指教。
发表于 2008-10-31 12:12:37 | 显示全部楼层 来自: LAN
我不知道哦,帮你顶顶
发表于 2008-10-31 15:48:16 | 显示全部楼层 来自: 中国湖北襄阳
可以用中断嘛,若20秒钟内如出现5次某一触点信号输入则产生一次中断,在中断程序里面设置输出,就OK了
 楼主| 发表于 2008-10-31 21:16:35 | 显示全部楼层 来自: 中国浙江宁波
我要问的问题就是:& P! n9 E: S6 B7 x/ O
$ d! [" y9 l8 i4 Q! S
    如何实现20秒钟内出现5次某一触点信号输入即产生一个输出。3 C3 M5 [, m* }
   (关键在20秒 时间 内5次信号的识别)!!!
' c5 h7 _! f2 k/ c$ p8 q   如果用定时器的话,只能把时间切分为一个个20秒,但如果出现在第一个20秒没有达到5次输入,但在第一个和第二个之间有5次输入,就检查不出来。
! M) s9 h& \4 B
$ n" r: H3 N1 f) d- O3 w   望指教!
发表于 2008-11-1 10:04:04 | 显示全部楼层 来自: 中国广东广州
可能要做5个定时器了。
2 ^/ b+ n) g' N- }RUN后的第一次信号输入,开始T0计时,20秒内看有没有5次(T0用于第一次、第六次、第11次。。。。下面的一次类推,20秒到了后就复位重新开始计数了)
* u  c3 e) l6 X: D7 Z3 u       第二次信号输入,开始T1计时
; e5 q" ]( L- m% Z4 B     第三次信号输入,开始T2计时0 t+ J$ A% p- h7 V8 m, W" U) e0 h" [
    第四次信号输入,开始T3计时- X, x. U9 R7 t/ m5 g$ f4 O
   第五次信号输入,开始T4计时
; a, e+ Z8 s7 p& L& w' q- v+ ]8 }$ N比如第一次与第五次之间是21秒,但是第二次与第六次之间为19秒,这样就可以通过T1来识别了。不会漏掉
3 L4 x9 _  m& R) F4 B+ |: G注意定时复位定时器就可以了。
发表于 2008-11-1 17:51:21 | 显示全部楼层 来自: 中国陕西汉中
用计数器C1计数来处理5次输入,用定时器T1来控制20s延时,如果C1=5 and T1=1,z则输出一个结果,然后用定时器T2来控制输出结果时间,同时T1,C1复位重复工作即可.
发表于 2008-11-1 18:38:50 | 显示全部楼层 来自: 中国四川成都
同意楼上的说法   就是两个条件同时满足  
) n. D0 ^( n7 o+ T' g: p+ s% z6 Q0 X2 ]
  若T1小于20秒  M0接通    计数器到5     C0接通
! j. i# h  u5 }$ a      
' L) |2 t$ Q; {, X% V  ------11----------11-------------Y0
3 {% U( ~2 p3 `! ]. S            M0             C0
发表于 2008-11-1 19:09:39 | 显示全部楼层 来自: 中国浙江温州
是有点 难度哦 titter
 楼主| 发表于 2008-11-1 20:51:30 | 显示全部楼层 来自: 中国浙江宁波
二楼的方法好像可以。但不太现实。为什么呢。  `, w6 _4 j  s  C' _% Y% @
如果我要实现1分钟20次,那我不就要做20个定时器了吗?!!!7 `7 k) A' V1 w% {/ j% c/ F, e
2 e* {  C1 L. d. p
三楼和四楼的方法,恕我愚钝,还不太能理解。感觉太简单,实现不了。呵。 望深解之。
发表于 2008-11-2 18:22:44 | 显示全部楼层 来自: 中国天津
用上升沿计数  闭合一次记一次数 设定五次输出
发表于 2008-11-2 21:04:18 | 显示全部楼层 来自: 中国江苏常州
还没学,帮你顶下
发表于 2008-11-3 09:59:23 | 显示全部楼层 来自: 中国山东青岛
好像有个指令 是三菱 的pls 也就是 10楼说的 上升沿触发命令
 楼主| 发表于 2008-11-3 20:17:43 | 显示全部楼层 来自: 中国浙江宁波
我要的是20秒5次, 不是单单的5次计数,!
发表于 2008-11-3 20:57:41 | 显示全部楼层 来自: 中国广东韶关

我知道怎样做

能否给点积分
发表于 2008-11-3 21:05:03 | 显示全部楼层 来自: 中国广东韶关
你可以用系统时间,设置5个变量,s1、s2、s3、s4、s5每个脉冲来时记忆当时系统时间,以s5-s1<=20,输出,然后s1=s2,s2=s3,s3=s4,s4=s5,s5等于第六个脉冲,不停循环。
发表于 2008-11-4 00:38:16 | 显示全部楼层 来自: 中国上海

回复 1# 超海天一色 的帖子

不太懂,仅供参考!
% Q" y. F) {( {* a20秒内,I0.0 五次输入,Q1.0一次输出,不知道对不对。( M$ p" e+ _) j; `
3 V4 |) G7 ?7 R' @0 I8 y
[ 本帖最后由 evtepe 于 2008-11-4 00:42 编辑 ]
20秒钟内如出现5次某一触点信号输入,实现一个输出.jpg
screenshot.jpg
发表于 2008-11-4 20:16:01 | 显示全部楼层 来自: 中国广东韶关
原帖由 zhg309 于 2008-11-3 21:05 发表 http://www.3dportal.cn/discuz/images/common/back.gif  j: Y$ e: `6 ~, S; f% ^1 Z
你可以用系统时间,设置5个变量,s1、s2、s3、s4、s5每个脉冲来时记忆当时系统时间,以s5-s1
3 _) b! Y; f4 v4 P  k4 h" B

4 ~2 {( I% ?8 h; K& n$ E) y/ r
* v  _# v9 c- `7 P9 {
8 Q; Y) _: M  @6 k8 u" n& I$ G这个主意好,我本来还只想到用一个定时器计时,用四个地址记录间隔时间,如果他们的时间和小于20S就输出,用堆栈最好(就是要把最早的时间替换为最近的时间),不过不知道PLC中有吗, j8 D3 B  o5 C" U4 ]" y; O
8 V  L, A; ^1 J2 w, p, E% q
[ 本帖最后由 wjx6205 于 2008-11-4 21:43 编辑 ]
发表于 2008-11-5 17:28:22 | 显示全部楼层 来自: 中国山东淄博

回复 6# ahxinny 的帖子

正确的很!!!!
发表于 2008-11-15 22:02:49 | 显示全部楼层 来自: 中国上海
想问一下兄弟解决了吗?想问问如何解决的?
发表于 2008-12-3 17:38:06 | 显示全部楼层 来自: LAN
同意采用记录时间时隔的方法是目前我可以想到的最好的方法。
1 h3 ]$ @6 r, u9 C不过我认为楼主如能深入分析一下具体工况,或许不用引出这么复杂的问题。
发表于 2008-12-4 15:39:08 | 显示全部楼层 来自: 中国浙江绍兴
有难度,好好考虑以下
发表于 2008-12-12 11:00:12 | 显示全部楼层 来自: 中国江苏盐城
楼主解决了的话,希望分享下,小弟也想学习下!!!
发表于 2008-12-18 20:04:19 | 显示全部楼层 来自: 中国河南南阳
非要用西门子的吗,用三菱的PLC行吗
发表于 2008-12-22 10:27:10 | 显示全部楼层 来自: 中国北京
长了见识,不错不错!
发表于 2008-12-22 17:12:35 | 显示全部楼层 来自: 中国河北唐山
利用20S计时器的上升沿给计数器清零,然后开始计数,在计时器下降沿是判断计数器是否大于5即可。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表