机械社区

 找回密码
 注册会员

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也是由单片机构成的。看看单片机的定时程序就明白了5 T0 |' v" {9 V" m" {3 X5 \: @
/****************************中断子程序_定时***************************************/
3 o3 V" `1 l3 ?- u0 ^void Timer0() interrupt 1, v% \1 d& Y4 H$ _
{7 o4 W8 Q$ @0 N. k9 b0 @
        static         Count1=0,Count2=0;          //静态变量计数器1
$ e1 f4 S3 g6 p8 K5 V5 X$ K        Count1++;                      //每次中断计数器加1: v5 h( P3 ^% B4 v7 J
        Count2++;                      //每次中断计数器加1
6 q$ r" s8 T  W# _' v  x% ?, ?        if(Count1>=12)                   //如果计数器1超过12. U8 [  P8 l: f* m" d6 r& ^
        {3 ]( F6 R& w7 A  G( E( i
        time_led_sansuo=!time_led_sansuo;
. B" T! `) z+ n$ U# \- g/ y        Count1=0;
9 {; h) ]7 p6 b. a7 d; K4 T        }, u, |6 x5 {) V# [! B
        if(time_led_sansuo)
1 w. J  F8 ~& x6 B9 k0 i- {7 K0 z1 e+ Z9 l        led_dis &= 0xbf;7 h1 O# L$ _1 H
        else
' D7 p1 d) J% m7 l) U& A4 U, X! ]. N) j        led_dis |= 0x40;                0 x' H. o) B! X# q& n* C, ]
        if(Count2>=100)                   //如果计数器2超过100% D" h% d$ q+ H: F
        {       
$ D0 I& Y4 m6 n7 L- w    time_run--;! }! }: k% ^( u; x
        if(time_run==0)
9 {* ?8 W: m/ ^; ]0 a; I         {
8 N. \7 a& c$ `         ET0=0;                                                          //关定时器0
" ?5 R/ J/ |7 H& _- t         Time_on=2;
% ~: h- e0 V6 C, m: T         EX0=1;                                          //开外部0中断;
0 {  `5 h' }& u  S         }  r3 k* H6 O7 R1 ~  v1 z$ C2 s0 }/ y
        Count2=0;                      //计数器清零6 q% D8 _+ {6 e; @% O
        }* Z4 D4 X- F( N2 R. D4 e# n/ J4 ~2 M

+ V0 w$ ~; m: N3 }9 i        TH0=0x28;                       //重置定时初值
" O2 u  F( L) t! a: Y        TL0=0x4b;# _: C( l* k$ I  a% d3 z
}

点评

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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