机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 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也是由单片机构成的。看看单片机的定时程序就明白了2 f) @* W3 d" A1 c. x( e
/****************************中断子程序_定时***************************************/
0 G4 g6 g, q  k( U2 T9 r3 R4 {void Timer0() interrupt 1
8 Y% O& F  S0 V! h1 N/ M& E7 } {2 K4 @: D0 j9 r! w! g
        static         Count1=0,Count2=0;          //静态变量计数器1
* n/ ^! O1 ^2 e/ h1 a% r        Count1++;                      //每次中断计数器加1+ D! u" D# k% g* I5 }1 c
        Count2++;                      //每次中断计数器加1' A0 s- M; T& N! p/ s+ B7 E* j
        if(Count1>=12)                   //如果计数器1超过12
5 x9 U4 b) B9 b/ g5 j' |1 l        {
3 o, }( [2 T* u6 x2 w0 X2 _        time_led_sansuo=!time_led_sansuo;
0 ~) Q% h; c( U1 H  K- u# e8 T+ M        Count1=0;
; T3 n, z4 i, ~        }5 B( r/ A0 ^" U7 C- G
        if(time_led_sansuo)
2 C6 w" |$ v. @* ^8 V( _        led_dis &= 0xbf;' E7 U, U2 t) e' z3 g- L2 P
        else
, u$ r* c+ a: S( m        led_dis |= 0x40;                  u& M) T: m9 h; T
        if(Count2>=100)                   //如果计数器2超过100
7 G9 z, {4 \4 }4 B/ F6 }        {        & Y4 o' c2 {0 {
    time_run--;3 M) R3 r% h$ U& w' _; c. N: {
        if(time_run==0)) ]) E- H  M- Y& M) M/ z
         {- p: R! d8 N# N7 z' t
         ET0=0;                                                          //关定时器02 I* i( _( y" I/ k- Z( x
         Time_on=2;+ j5 E) N, L6 {0 Y# T6 V5 e, \2 D
         EX0=1;                                          //开外部0中断;- h* ~; p0 T; n( O% A3 c' F
         }3 y- [  c" D/ h* F% T9 l1 U
        Count2=0;                      //计数器清零& ]" E/ U* y( z" p
        }
+ Z8 K9 U% W5 ^( U5 Q  y( o
: `1 S% @" n. p( g& X  a        TH0=0x28;                       //重置定时初值
: ^- h# L+ T2 p0 V; g/ @' r        TL0=0x4b;
+ B# L) ]5 x: z7 u% b }

点评

赞,这样就清除了。谢谢啦!  发表于 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-2-23 13:02 , Processed in 0.056013 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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