找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: thenblue

PLC定时器和计数器

  [复制链接]
发表于 2016-4-13 08:17:07 | 显示全部楼层
你的目的是 控制动作周期  而不是时间延时的  就会用计数器组合 而非  时间继电器。

点评

好像就是作者的编程习惯,他的目的并不是控制动作周期,比如延时30分钟关机等。  发表于 2016-4-14 17:40
发表于 2016-4-14 16:22:46 | 显示全部楼层
初学者  来看看
发表于 2016-4-16 08:54:46 | 显示全部楼层
有的PLC的定时器是有限制的,最大值32767转换过来45秒,再长的定时就需要用计数器。
发表于 2016-4-16 09:24:31 | 显示全部楼层
其实所有的定时器都是用计数器做的,PLC也是由单片机构成的。看看单片机的定时程序就明白了
( U- v  G" k& B- f& `' S /****************************中断子程序_定时***************************************/
1 z4 M- G" V1 j; P) T4 Tvoid Timer0() interrupt 1" C- ?9 @4 x) e, A: F2 f
{
# B3 e& G6 s  t: y1 u% a, N1 ^         static         Count1=0,Count2=0;          //静态变量计数器1
/ |& {+ Q: B% J) X        Count1++;                      //每次中断计数器加1
# [/ ], L8 F8 b1 _        Count2++;                      //每次中断计数器加1
7 X! k$ v! m9 g* C8 P8 F        if(Count1>=12)                   //如果计数器1超过12+ P: T/ p& d& E& d) X# W8 M3 P# A
        {( I& K, w, k( d4 r$ e8 c
        time_led_sansuo=!time_led_sansuo;) T5 V9 y' F! a; t6 B
        Count1=0;9 U( v6 w* ~; d; @8 I* M
        }" y# t6 \$ r1 ~  R$ A, |
        if(time_led_sansuo)
& }% C0 @) b2 U3 ?        led_dis &= 0xbf;
1 p& H* \0 i. ?6 ^! ~        else
; E7 W  H. l6 F' v. _        led_dis |= 0x40;               
. H! x/ c( H5 K3 P* U0 Q        if(Count2>=100)                   //如果计数器2超过100
6 @! q; S! ^( O        {        4 |- L  V" j% x
    time_run--;0 J, f/ U* A2 o1 W
        if(time_run==0)
5 v6 N0 `, m( e1 K% q6 L5 t         {" A) X1 E3 h& v7 C+ {9 q+ Z7 b
         ET0=0;                                                          //关定时器03 w* ?0 {" \. C, e
         Time_on=2;3 m' v' |! \% E
         EX0=1;                                          //开外部0中断;
; H* X' K/ x8 W$ I         }4 P* e$ r, P6 ^7 d' j) Y, L
        Count2=0;                      //计数器清零7 m* e8 Q+ ]9 Q- d2 q: j
        }- \+ r0 O$ o6 `$ S) v8 b( x
0 p) n8 `' y, ]+ z' [& c
        TH0=0x28;                       //重置定时初值; _' l& ^0 w; R8 J
        TL0=0x4b;( z( A4 Z  K4 Q, K, T7 m
}

点评

赞,这样就清除了。谢谢啦!  发表于 2016-4-16 12:12
发表于 2016-4-22 11:41:03 | 显示全部楼层
我也觉得这个跟写程序的人的习惯有关吧
发表于 2016-5-4 17:00:46 | 显示全部楼层
硬件程序的设计一是依靠片内资源,二就是设计者的编程习惯,在数字电路中'定时器的本质就是对时钟信号进行计数到指定值然后>进入对应的中断服务程序。所以没有必要特意区分二者区别,在实际案例中可以主要是否有其他子功能使用定时器,为了避免冲突二而采用计数器作为定时元件?
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-9-22 13:58 , Processed in 0.070458 second(s), 13 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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