机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6634|回复: 15
打印 上一主题 下一主题

PLC定时器和计数器

[复制链接]
跳转到指定楼层
1#
发表于 2016-4-7 22:49:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
最近在学习西门子300系列的PLC,参考的是一个大型控制系统的PLC程序,发现其中所有的定时功能都没有使用定时器,而是用1Hz的脉冲和计数器实现,之前也看过用循环中断和计数器实现定时功能,请问一下为什么要这么使用呢?这样有什么好处吗?/ {( k0 g! ]1 y5 u3 ?0 b; i
* w6 K8 l+ N8 w* z

, V% b% x- @$ j7 x  N补充内容 (2016-9-3 08:47):
( [3 f$ A7 _. y6 ~: ^在实际使用中,发现使用系统脉冲和加减器可以记录运行时间,这样功能块因为错误或者什么原因跳出仍然可以保留运行时间,在下次使用时可以继续计时
回复

使用道具 举报

16#
发表于 2016-5-4 17:00:46 | 只看该作者
硬件程序的设计一是依靠片内资源,二就是设计者的编程习惯,在数字电路中'定时器的本质就是对时钟信号进行计数到指定值然后>进入对应的中断服务程序。所以没有必要特意区分二者区别,在实际案例中可以主要是否有其他子功能使用定时器,为了避免冲突二而采用计数器作为定时元件?
回复 支持 反对

使用道具 举报

15#
发表于 2016-4-22 11:41:03 | 只看该作者
我也觉得这个跟写程序的人的习惯有关吧
回复 支持 反对

使用道具 举报

14#
发表于 2016-4-16 09:24:31 | 只看该作者
其实所有的定时器都是用计数器做的,PLC也是由单片机构成的。看看单片机的定时程序就明白了4 j2 X+ U* |9 G8 J- y
/****************************中断子程序_定时***************************************/1 M% l3 {! C, [# J( o
void Timer0() interrupt 1
$ G" l  j' z% T- ?5 K {' i' |+ f' r5 _- M( L
        static         Count1=0,Count2=0;          //静态变量计数器1+ k- K! o8 X; P, [; g
        Count1++;                      //每次中断计数器加1
) e% H  j- g% J/ N7 Z- W! n* j% V        Count2++;                      //每次中断计数器加1$ K% N" G. x( z5 W- T! s& W
        if(Count1>=12)                   //如果计数器1超过12
& `2 h+ i5 g: n. ]5 `        {0 m8 b5 m+ y) D
        time_led_sansuo=!time_led_sansuo;
5 d  v" s+ D" D& D$ p        Count1=0;
9 o4 o2 ]) D, l3 I        }
; }& r% V1 y9 Q- D+ A7 f, X        if(time_led_sansuo)
6 z1 U5 @7 T( i        led_dis &= 0xbf;1 g# {' `7 C% G2 h( v+ I' G
        else" J6 r4 V" U5 ]; U. k# F* @
        led_dis |= 0x40;                & A1 u/ @2 x2 e3 E7 K1 o
        if(Count2>=100)                   //如果计数器2超过100
+ ]8 @! k  C& T! A$ x        {       
0 N/ M9 _, A; D/ Y$ l/ ~, n    time_run--;9 Q4 x9 ?; x& r1 G
        if(time_run==0)
# N" \: R+ j  K: `1 S, \3 M         {
" m6 p+ ~% U( g         ET0=0;                                                          //关定时器0
  W4 A1 d. W! k, M7 m. S         Time_on=2;, q5 o- m1 b# V# O# {
         EX0=1;                                          //开外部0中断;
! X! {9 e: Y; N9 t$ K5 L         }
8 P% k  }: c/ K        Count2=0;                      //计数器清零% i! X# L  ^1 a/ q
        }
8 l- ~  \& d+ p+ J% B5 |3 J* U6 @- I8 q  G3 P  S9 c
        TH0=0x28;                       //重置定时初值
4 X4 D: {0 Q/ }8 u: }/ b8 N        TL0=0x4b;
( E  Q/ z, K' [- J' o }

点评

赞,这样就清除了。谢谢啦!  发表于 2016-4-16 12:12
回复 支持 反对

使用道具 举报

13#
发表于 2016-4-16 08:54:46 | 只看该作者
有的PLC的定时器是有限制的,最大值32767转换过来45秒,再长的定时就需要用计数器。
回复 支持 反对

使用道具 举报

12#
发表于 2016-4-14 16:22:46 | 只看该作者
初学者  来看看
回复 支持 反对

使用道具 举报

11#
发表于 2016-4-13 08:17:07 | 只看该作者
你的目的是 控制动作周期  而不是时间延时的  就会用计数器组合 而非  时间继电器。

点评

好像就是作者的编程习惯,他的目的并不是控制动作周期,比如延时30分钟关机等。  发表于 2016-4-14 17:40
回复 支持 反对

使用道具 举报

10#
发表于 2016-4-12 16:15:45 | 只看该作者
17567410 发表于 2016-4-12 15:35 $ r# V7 Z. ^1 g: p
这个跟写程序的人的习惯有关吧

6 l. T3 ^- o6 O" X2 [$ ?5 L  |4 e觉得还是脉冲的比较随意3 {- \) i+ c( C& p3 J* Q  n
回复 支持 反对

使用道具 举报

9#
发表于 2016-4-12 15:35:55 | 只看该作者
这个跟写程序的人的习惯有关吧

点评

我问下来得到的结论就是这个,跟个人的习惯有关,=。=  发表于 2016-4-12 16:06
回复 支持 反对

使用道具 举报

8#
发表于 2016-4-8 08:48:10 | 只看该作者
使用定时器往往受到诸多限制,而计数器就不一样了。定时器:保持性延时接通,延时断开,延时接通。条件与结果就限制了。

点评

啥意思?  发表于 2016-4-8 08:53
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-25 02:25 , Processed in 0.061332 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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