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文章
5426瀏覽量
123671 -
定時器
+關注
關注
23文章
3290瀏覽量
117441 -
可編程邏輯
+關注
關注
7文章
524瀏覽量
44630
發布評論請先 登錄
labview如何獲取當前時間毫秒數
【STM32L476 Nucleo試用體驗】SysTick微秒級延時函數的實現
請問ucos系統下怎么實現us級延時?
使用MCU內核寄存器實現毫秒級精確延時的方法
如何利用51單片機實現ms毫秒級
請問下rt-thread是否有更高定時器對象的實現
海為16us系統時鐘用于高精度檢測繼電器從得電到閉合的時間

海為PLC正弦波輸出

海為PLC用于檢測繼電器從得電到閉合的時間的解決方案
STM32實現毫秒級精確延時的方法

評論