海为PLC——巧用16us精度系统时间实现毫秒级控制 点击:510 | 回复:1



海为

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2008-08-14 13:27:05
楼主
海为PLC——巧用16us精度系统时间实现毫秒级控制
 
一、海为PLC——与时间相关的系统资源
1、定时器:时基分为10ms、100ms、1s,对每个定时器时基可以任意指定其中一种
2、系统实时时钟:实时时钟存储在SV12-SV18共7个寄存器中
        SV12:表示年(0-99
        SV13:表示月(1-12
        SV14:表示日(1-31
        SV15:表示时(0-23
        SV16:表示分(0-59
        SV17:表示秒(0-59
        SV18:表示星期(1-7
3、系统脉冲:
        SM3:10ms方波脉冲,5ms ON / 5ms OFF
        SM4:100ms方波脉冲,50ms ON / 50ms OFF
        SM5:1s方波脉冲,500ms ON / 500ms OFF
4海为PLC独有的16us精度系统时间
        SV49-SV50:32位寄存器,SV49-SV50为系统时间(单位16us), 系统自动循环计数, 当计数到最大值2147483647时归0不断循环计数
 
二、没有1ms定时器能够实现毫秒级控制吗?
利用16us精度系统时间完全能够实现毫秒级控制,本文例子实现一个12ms ON / 88ms OFF的脉冲。精度误差同普通定时器一样最大误差一个扫描周期,如下图:
12ms = 12000us = 750(16us),存放放在V2000-V2001中
88ms = 88000us = 5500(16us),存放放在V2002-V2003中
建立一个名称为“时间间隔初始值”的初始寄存器值表,将ON时间设定为750和OFF时间设定为5500(当然也可以不建立该表而选择在程序中初始化V2000-V2001及 V2002-V2003的值),如下图:
 
三、实现程序如下:
本程序扫描周期0.3ms,既误差0.3ms,如下图:
 



sdzzdwf

  • 精华:3帖
  • 求助:2帖
  • 帖子:22帖 | 66回
  • 年度积分:0
  • 历史总积分:305
  • 注册:2006年3月09日
发表于:2008-09-02 08:15:57
1楼

真是太好了,对sv49和sv 50还真的不了解,谢谢楼主赐帖。也希望海为把自己的产品

特点和优势都贴出来,使用户更多的了解海为、使用海为plc。

 


热门招聘
相关主题

官方公众号

智造工程师