QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 5557|回复: 8
收起左侧

[求助] 请问PLC扫描时间对程序运行有什么影响?

[复制链接]
发表于 2010-11-3 15:11:19 | 显示全部楼层 |阅读模式 来自: 中国河北秦皇岛

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

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

x
PLC扫描时间是什么意思?一般是多少?对程序有没有影响,会不会导致误动作?应该如何避免扫描时间造成的误动作?还有,PLC扫描时间是由什么决定的?如果一段程序过长,执行时间超过扫描时间,PLC是如何处理的?
发表于 2010-11-3 16:00:53 | 显示全部楼层 来自: 中国安徽安庆
本帖最后由 瞧你那小样 于 2010-11-3 16:01 编辑   b+ s$ E6 L( g; R5 p1 n

! w7 d2 R% ]& @3 V! X) Q$ r* h- g$ t一、PLC扫描时间是指从程序第一步开始扫描到END指令结束为一个扫描周期
7 }+ B  z+ ~' [3 l7 M9 E二、PLC的循环扫描时间一般在数十到一百多ms之间
' ^& I% J$ R8 V  _1 X三、一般来说没有影响,有些脉冲输入信号宽度小于循环扫描周期,这时宜采用高速模块,便不会带来输入信号丢失引发的故障
; i5 B2 J# Z' P1 n# r2 s4 y四、PLC的扫描时间取决于:1、CPU执行指令的速度,2、执行每条指令占用的时间,3、程序中指令条数的多少& T3 v9 {. m8 t% b. n5 M
五、可采用监视定时器指令WDT ,WDT指令的功能是对PLC的监视定时器进行刷新. k: X  G% M2 G2 @0 l+ X
FX系列PLC的监视定时器缺省值为200ms(可用D8000来设定),正常情况下PLC扫描周期小于此定时时间。如果由于有外界干扰或程序本身的原因使扫描周期大于监视定时器的设定值,使PLC的CPU出错灯亮并停止工作,可通过在适当位置加WDT指令复位监视定时器,以使程序能继续执行到END。
8 a9 b+ A, d6 `# X! [+ R; b使用WDT指令时应注意:/ N/ x* X1 X: p3 p* v
1)如果在后续的FOR-NEXT循环中,执行时间可能超过监控定时器的定时时间,可将WDT插入循环程序中。
" P9 h6 o" P1 S6 P/ r8 m# [2)当与条件跳转指令CJ对应的指针标号在CJ指令之前时(即程序往回跳)就有可能连续反复跳步使它们之间的程序反复执行,使执行时间超过监控时间,可在CJ指令与对应标号之间插入WDT指令。

评分

参与人数 1三维币 +5 收起 理由
pangpang + 5 应助。热心,认真。

查看全部评分

发表于 2010-11-4 08:15:21 | 显示全部楼层 来自: 中国江苏无锡
从某种程度上讲,PLC扫描时间就是PLC速度快买,这主要取决于CPU的执行速度,以及所编程序的优化程度,一般在几十毫秒到一百多毫秒。

评分

参与人数 1三维币 +2 收起 理由
pangpang + 2 应助

查看全部评分

发表于 2010-11-4 16:02:21 | 显示全部楼层 来自: 中国湖北武汉
PLC是循环扫描执行程序的,一个循环就是一个扫描周期。通常为ms级,除非你对实时性有很高的要求,一般来说,是没有什么影响的。

评分

参与人数 1三维币 +2 收起 理由
pangpang + 2 应助

查看全部评分

 楼主| 发表于 2010-11-5 10:28:54 | 显示全部楼层 来自: 中国河北秦皇岛
我遇见一种情况:在第一段程序的末尾,有一个置位指令,将一些输出置位,然后进入第二段程序。但是程序运行的时候,那个置位指令却发生在了第二段程序的开头。单纯从程序上看绝对不会有这种可能,但是事实却的确如此。后来编程序的人说是因为PLC扫描时间的问题。我不是很明白,这到底是如何产生的,应该如何避免这样的问题?

评分

参与人数 1三维币 +2 收起 理由
pangpang + 2 积极参予

查看全部评分

发表于 2010-11-14 05:51:53 | 显示全部楼层 来自: 中国台湾
本帖最后由 BSLee 于 2010-11-14 05:58 编辑 + J2 C. }9 k+ D) p) t

. e% U( }' L. u7 \1 @0 |To 5樓的樓主:
2 B6 l% T& d6 f  p1 A我在猜你的問題是不是重覆輸出(我們的稱呼)??
0 g0 h  `8 h+ c( `% L: J  }" p6 W6 {; Y4 Y& g) J; s
例如在程式的有一段程式,
  D5 I+ \5 w( Q; T9 ?/ j1 V0 ?然後根據程式計算的結果把A變成ON或OFF狀態,* P  v6 @1 u$ m" O% {
但是後面又有一段不同的程式,( u& V4 X1 Z' G" W
然後也是根據計算的結果把A變成ON或OFF狀態,; }* r2 k' h; j, N
換句話說,
8 ]' b9 N% Y/ e( H6 ~+ H有兩段不同的程式都在決定或控制A的狀態,& B- |; g- p& P7 w. W+ S
但是它們在程式中不同的位置出現.! V$ a9 ^) f2 F
6 l# G: w& K& g
如果寫出這種程式的話(不管是有意或無心),# R2 w& H1 B9 ~* z- f% z
就會發A的ON與OFF會出現很多無法預測的情形.7 |: S4 r5 D; e7 m
我的師父告誡我們絕對不會寫出這種程式,+ {* N. [! A" S
萬一A代表是氣壓缸之類的真實的輸出,
( [% C) X2 s4 M. c% K那可能會撞車的.

评分

参与人数 1三维币 +3 收起 理由
pangpang + 3 应助,技术讨论。

查看全部评分

发表于 2010-11-14 08:09:02 | 显示全部楼层 来自: 中国江苏无锡
当然有影响,主要涉及实时性以及编程调试
发表于 2010-11-15 11:14:35 | 显示全部楼层 来自: 中国浙江杭州
2楼已经回复得很详细了。这里还有几句话要说:
1 A0 f0 _0 _- u. d0 y1、要区分“扫描”与“执行”的区别:PLC的整个工作过程一般来说是这样的:诊断硬件--扫描系统代码(包括对外通讯)--读输入(缓冲区)--扫描程序--输出扫描结果。大致都差不多,但各个品牌的PLC的工作顺序不完全一样,比例西门子的S7就把输出扫描结果放到每个扫描周期的最前面。但执行的概念一般指的是输出扫描结果去控制执行元件的过程。所以,我们一般上把扫描作为系统工作,把执行作为I/O工作。
# p) ^3 e; K: _& i9 t2、由于PLC的扫描与机械执行件(或气动,液压执行件)来说是很快的,一个机械动作从开始到结束要秒级的时间,这个时间段里,PLC已经扫描了几百次程序了,所以,在编制程序时要注意考虑到这点,对于计算的条件要控制好,不然会出现执行结果不正确甚至混乱的情况。2 z6 B0 }5 S6 x9 |
3、对于一此特别的指令要注意其适用范围:比哪脉冲沿获取,循环指令,通讯指令,浮点数运算指令,跳转指令等,要注意其与扫描周期的影响,如果考虑不周会导致扫描结果有误或者出现系统故障。
  w% ^$ f8 `, G* v- Y; Q4、程序的安排也要注意,刚才楼上提到的问题,辅助点重复使用了就会造成执行结果出错。所以要养成良好的编程习惯。当然现在的编程环境提供了很多辅助工作帮助编程员检查这些结果的。
: b1 E* B9 y: ]! w! N, e: e$ r7 z* S仅供大家参考!

评分

参与人数 1三维币 +3 收起 理由
pangpang + 3 应助,技术讨论。

查看全部评分

发表于 2010-11-22 16:32:30 | 显示全部楼层 来自: 中国江苏常州
五楼的问题六楼回答的很好,一个程序不应该有多重输出,如果有一般是以最后一个为准。PLC扫描时间在大部分场合下是不需要考虑的。有一些地方可能有影响,比如高速开关信号、毫秒级定时器等,不过这些问题可以用其他方法解决,比如硬件中断或定时中断。

评分

参与人数 1三维币 +2 收起 理由
pangpang + 2 应助,讨论。

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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