QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
18小时前
查看: 3817|回复: 25
收起左侧

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

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

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

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

x
如何在西门子PLC中实现如下功能:& I& l  T/ M* M' X

$ Y. @/ @" G) r5 w$ f) w    在整个运行中,若20秒钟内如出现5次某一触点信号输入,实现一个输出。运行时持续检测上述工况是否出现。
' Y( w; ^- Q3 C& X" S0 X   (这里定时器好像不好用,我要的是计时器,且可能要用到先进先出的队列)8 i9 H; r5 I/ R+ x# s% N  f
: u& B/ N7 z7 K3 T$ `$ i: j% [
如何编程实现,望指教。
发表于 2008-10-31 12:12:37 | 显示全部楼层 来自: LAN
我不知道哦,帮你顶顶
发表于 2008-10-31 15:48:16 | 显示全部楼层 来自: 中国湖北襄阳
可以用中断嘛,若20秒钟内如出现5次某一触点信号输入则产生一次中断,在中断程序里面设置输出,就OK了
 楼主| 发表于 2008-10-31 21:16:35 | 显示全部楼层 来自: 中国浙江宁波
我要问的问题就是:7 e3 O! ~; W) h% `9 _; z8 }9 z( Q

4 ^9 }$ f& c  a! K$ H    如何实现20秒钟内出现5次某一触点信号输入即产生一个输出。/ i. w1 D! D1 T- S9 S
   (关键在20秒 时间 内5次信号的识别)!!!* M8 b1 C  L1 e; ~) p; b
   如果用定时器的话,只能把时间切分为一个个20秒,但如果出现在第一个20秒没有达到5次输入,但在第一个和第二个之间有5次输入,就检查不出来。5 w$ s, T7 n3 f$ l5 K3 c3 z

" {# R$ b) S+ o* i8 s# D   望指教!
发表于 2008-11-1 10:04:04 | 显示全部楼层 来自: 中国广东广州
可能要做5个定时器了。7 g# j$ [- v8 Q
RUN后的第一次信号输入,开始T0计时,20秒内看有没有5次(T0用于第一次、第六次、第11次。。。。下面的一次类推,20秒到了后就复位重新开始计数了)
7 T& h+ [& |( _; {       第二次信号输入,开始T1计时$ T* o6 K6 @9 ^! j# E) ?* ^; J
     第三次信号输入,开始T2计时3 `/ V+ c7 l% i6 |+ M, Q
    第四次信号输入,开始T3计时/ [* d+ G1 c+ {0 g
   第五次信号输入,开始T4计时
$ }2 m) q( I) _: ~% ^比如第一次与第五次之间是21秒,但是第二次与第六次之间为19秒,这样就可以通过T1来识别了。不会漏掉; O; ]# c; H0 e; {
注意定时复位定时器就可以了。
发表于 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 | 显示全部楼层 来自: 中国四川成都
同意楼上的说法   就是两个条件同时满足  
. c- Y8 H" ?" `) D* j% K6 X7 |, s  F  b* _5 V3 d; K! U( f% c
  若T1小于20秒  M0接通    计数器到5     C0接通
1 H/ c& q( w5 v/ ^      3 Q* ~3 @6 t, @: c  X. h) m
  ------11----------11-------------Y0  p/ U  q" p- w
            M0             C0
发表于 2008-11-1 19:09:39 | 显示全部楼层 来自: 中国浙江温州
是有点 难度哦 titter
 楼主| 发表于 2008-11-1 20:51:30 | 显示全部楼层 来自: 中国浙江宁波
二楼的方法好像可以。但不太现实。为什么呢。, j* `8 N/ g/ {3 z
如果我要实现1分钟20次,那我不就要做20个定时器了吗?!!!  a/ V! Y2 J) z! d4 h

) C) X) e- D% H3 m+ e1 Y% R- U三楼和四楼的方法,恕我愚钝,还不太能理解。感觉太简单,实现不了。呵。 望深解之。
发表于 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# 超海天一色 的帖子

不太懂,仅供参考!
: |* j4 t7 S+ S& U20秒内,I0.0 五次输入,Q1.0一次输出,不知道对不对。
1 a+ ]5 W- X" |# l  n' X' n) F7 y) \8 B! f2 B
[ 本帖最后由 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
% O+ J  a3 A" `) a# f7 A/ ^你可以用系统时间,设置5个变量,s1、s2、s3、s4、s5每个脉冲来时记忆当时系统时间,以s5-s1
" M2 s4 Z2 j; {  h- \
3 w4 z2 E" N) K% L. D! p

5 @4 ~5 t! p4 z; u  n* ^% I' X
7 f2 p: a& L8 [' \8 g' g; k这个主意好,我本来还只想到用一个定时器计时,用四个地址记录间隔时间,如果他们的时间和小于20S就输出,用堆栈最好(就是要把最早的时间替换为最近的时间),不过不知道PLC中有吗
, n! T! b6 X# F4 c
4 P, A: W, e/ y6 z[ 本帖最后由 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
同意采用记录时间时隔的方法是目前我可以想到的最好的方法。$ Q& `; X% ^8 w  K. e
不过我认为楼主如能深入分析一下具体工况,或许不用引出这么复杂的问题。
发表于 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 )

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