找回密码
 注册会员

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也是由单片机构成的。看看单片机的定时程序就明白了
: N9 ]+ J6 r4 c /****************************中断子程序_定时***************************************/0 V% @0 v5 L# {* w
void Timer0() interrupt 1
  A- ~2 w1 U4 @ {
3 i+ t& p7 ?" i, m5 D% p         static         Count1=0,Count2=0;          //静态变量计数器1
( @- U9 h# D: b; F+ P        Count1++;                      //每次中断计数器加1
3 K8 i! p+ L3 ~7 P0 I/ y. S9 e$ e' c        Count2++;                      //每次中断计数器加1
2 J" `7 d8 F; f8 s        if(Count1>=12)                   //如果计数器1超过12
# f- t9 @" J- v& W        {
/ Q: _5 ~7 g* n' D8 D' ]' r1 r1 Q        time_led_sansuo=!time_led_sansuo;! i! K- l5 N' P) |$ _3 v; r1 b2 P
        Count1=0;
5 D6 l8 n6 Q, }- _1 i% S! `# ^% M        }
) K/ I1 R, X& }. J        if(time_led_sansuo); ]3 z- b$ M8 L
        led_dis &= 0xbf;
3 H" S+ n( X* A3 B7 }; `        else
9 t' j  k7 J* Y* X8 D- a% y  q9 x        led_dis |= 0x40;                9 H  h. U# M. Y$ P$ ^7 T/ q
        if(Count2>=100)                   //如果计数器2超过100$ ^5 v8 C; S8 |1 [4 b0 k
        {       
1 ~/ c" K/ I- f; _+ q. l; L    time_run--;
4 q8 _1 h# B4 V        if(time_run==0)" J; M& c2 K. M. e5 B4 C& U2 ^
         {* x2 ?% E6 k6 |
         ET0=0;                                                          //关定时器06 y. v) [2 H0 ]  n' j% e
         Time_on=2;
5 @+ n& G* L4 H  Z* O         EX0=1;                                          //开外部0中断;* ^" X6 N5 P) j; L
         }+ D5 L4 V' c* {- H0 U2 }# |& N8 H: ?  Y
        Count2=0;                      //计数器清零  d" t- `( B5 ^* w
        }
# S6 H5 N3 B9 p3 ]4 e) E: H; B
8 B# B# W# \! g; D        TH0=0x28;                       //重置定时初值0 \3 y7 n* e7 t1 h0 Q# r, z& j" V
        TL0=0x4b;: [  ^& s- F4 H, p0 \9 Q/ K5 O
}

点评

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

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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