找回密码
 注册会员

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也是由单片机构成的。看看单片机的定时程序就明白了' R6 Y* W$ a* ^# Z5 n. k6 j* m
/****************************中断子程序_定时***************************************/" l1 T$ s1 s! [6 d& V" X+ P8 E
void Timer0() interrupt 14 P+ `: y1 G) [  O1 U
{
& c* P" B& M, {/ h+ A         static         Count1=0,Count2=0;          //静态变量计数器15 U8 z+ M% d9 d
        Count1++;                      //每次中断计数器加1
  V2 h) }0 K/ t+ [) ^        Count2++;                      //每次中断计数器加15 m9 C" M2 |  D6 H5 }6 \5 P
        if(Count1>=12)                   //如果计数器1超过12
! v2 F& u& S" Y5 R6 r6 y$ g        {
( G- k+ q8 u/ G- B4 W/ d; l( h        time_led_sansuo=!time_led_sansuo;
! o  o# P4 Y2 D; m        Count1=0;
/ U9 J9 V' x! F        }
1 z) u7 a" h, E& M& @" b5 @        if(time_led_sansuo)
" E3 Y. p, A2 y3 [        led_dis &= 0xbf;
. m! t* `8 ^+ N* S% ?- L, r8 F3 K9 [        else
5 W6 I% l) W; n* J9 k        led_dis |= 0x40;               
7 b' g( @# o% d( f        if(Count2>=100)                   //如果计数器2超过100; k9 U* d/ y! R  C1 A: ]
        {       
- Z) n% {4 @5 _+ R    time_run--;% x$ S8 ]- L% d, y$ J
        if(time_run==0)
6 Z) |, R' ~" c# b! ^* Y         {9 @$ J2 n6 k# Q1 ]8 @; h1 n
         ET0=0;                                                          //关定时器01 J* |( M) i. B' G# ]  s0 \! ^
         Time_on=2;: d$ u& v4 e) t2 {1 I  S1 A
         EX0=1;                                          //开外部0中断;
+ ^# N( B' y' c0 x7 w         }
& N1 j! q8 j- u        Count2=0;                      //计数器清零
2 P+ j  O- i0 |        }1 k* `2 z3 `8 N: p) S
* x% I  b8 b/ {
        TH0=0x28;                       //重置定时初值5 U/ I* v$ e' P! v8 R
        TL0=0x4b;
2 Q/ U! L/ g6 j" f }

点评

赞,这样就清除了。谢谢啦!  发表于 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-8-8 00:12 , Processed in 0.063178 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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