PLC主要是指数字运算操作电子系统的可编程逻辑控制器,用于控制机械的生产过程。也是公共有限公司、电源线车等的名称缩写。PLC可编程逻辑控制器,一种数字运算操作的电子系统,专为在工业环境应用而设计的。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。是工业控制的核心部分。
一、海为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不断循环计数。寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
二、没有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,如下图:
-
寄存器
+关注
关注
31文章
5377浏览量
121401 -
定时器
+关注
关注
23文章
3256浏览量
115533 -
可编程逻辑
+关注
关注
7文章
517浏览量
44202
发布评论请先 登录
相关推荐
labview如何获取当前时间毫秒数
请问ucos系统下怎么实现us级延时?
使用MCU内核寄存器实现毫秒级精确延时的方法
如何利用51单片机实现ms毫秒级
请问下rt-thread是否有更高定时器对象的实现
海为16us系统时钟用于高精度检测继电器从得电到闭合的时间
![海为<b class='flag-5'>16us</b><b class='flag-5'>系统</b>时钟用于高<b class='flag-5'>精度</b>检测继电器从得电到闭合的<b class='flag-5'>时间</b>](https://file.elecfans.com/web2/M00/49/F1/pYYBAGKhvHqAMQZlAAAeNUw2ugc832.png)
海为PLC正弦波输出
![海为PLC正弦波输出](https://file.elecfans.com/web2/M00/49/F2/pYYBAGKhvHuAWYlRAAAfuJFvRyU861.png)
海为PLC用于检测继电器从得电到闭合的时间的解决方案
CUBEMX实现微秒毫秒延迟
![CUBEMX<b class='flag-5'>实现</b>微秒<b class='flag-5'>毫秒</b>延迟](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32实现毫秒级精确延时的方法
![STM32<b class='flag-5'>实现</b><b class='flag-5'>毫秒</b><b class='flag-5'>级</b>精确延时的方法](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
评论